커뮤니티

Pivot (역추세)

프로필 이미지
nanum
2007-06-21 18:00:48
1249
글번호 12838
답변완료
안녕하십니까. 아래에 있는 로직은 CT- 7th 시스템트레이딩 에 있는 Pivot (역추세) 입니다. YT 로 전환해 주시면 고맙겠습니다. 수식 대신 글로 시스템내용을 올려보려하였으나, 저의 표현에 문제점도 있고 수식 옆에 주석도 있어 그냥 올려 봅니다. 감사합니다. --------------- input; len(3.2), method(1) 'method에 따른 피봇라인 설정 If method=1 Then Var10 = (HighD(1) + LowD(1) + closed(1)) / 3 '피봇 Var11= Var10 * 2 - LowD(1) '1차 저항 Var12= Var10 + HighD(1) - LowD(1) '2차저항 Var9= Var10 * 2 - HighD(1) '1차 지지 Var8= Var10 - HighD(1) + LowD(1) '2차지지 Else Var10 = (HighD(1) + LowD(1) + closed(1)+opend(1)) / 4 '피봇 Var11= Var10 * 2 - LowD(1) '1차 저항 Var12= Var10 + HighD(1) - LowD(1) '2차저항 Var9= Var10 * 2 - HighD(1) '1차 지지 Var8= Var10 - HighD(1) + LowD(1) '2차지지 End If '시가대비 영역별 지정가 돌파시 진입 If Var9 > opend And opend> Var8 Then '시가가 var9보다 작고 var8보다 크면 If TTIME<=1500 Then '15:00분 이전이라면 If position=0 And tdate<>entrydate(1) Then '하루에 한번만 진입 call buy("매수1", Atstop, Def, Var9) '지정가 상향돌파시 매수 Call sell("매도1", Atstop, Def, Var8) '지정가 하향돌파시 매도 End If End If End If If Var10 > opend And opend>=var9 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수2", Atstop, Def, Var10) Call sell("매도2", Atstop, Def, Var8) End If End If End if If Var11 > opend And opend>=var10 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수3", Atstop, Def, Var12) Call sell("매도3", Atstop, Def, Var10) End If End If End If If Var12 > opend And opend>=var11 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수4", Atstop, Def, Var12) Call sell("매도4", Atstop, Def, Var11) End If End If End If If opend>=var12 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수5", Atstop, Def, opend+(Var12-var11)) Call sell("매도5", Atstop, Def, Var12) End If End If End If If opend<=var8 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수6", Atstop, Def, Var8) Call sell("매도6", Atstop, Def, opend-(Var9-var8)) End If End If End if '청산 If position<>0 Then Call exitlong("매수청산", Atstop, hhv(1, high, barnumsinceentry+1)-atr(20)*len) Call exitshort("매도청산", Atstop, llv(1, low, barnumsinceentry+1)+atr(20)*len) End If If tdate<>tdate(1) Then Var50=currententrynum 'currententrynum -- 현재까지의 시장 진입 횟수 '(오픈포지션까지 포함) End If If currententrynum-var50 =1 Then '당일 매매가 한번 이루어진 경우 If entryname="매수2" Or entryname="매수3" Then '진입명칭이 매수2, 매수3인 경우 If highd>var12 And low>var11 Then Call sell("역매도", Atstop, Def, Var11) End If End If If entryname="매도2" Or entryname="매도3" Then '진입명칭이 매도2, 매도3인 경우 If lowd<var8 And high<var9 Then Call buy("역매수", Atstop, Def, Var9) End If End If End if
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2007-06-22 13:44:08

안녕하세요 예스스탁입니다. 즐거운 하루되세요 input : len(3.2), method(1) ; var : var11(0),var12(0),var50(0),MP(0),currententrynum(0); Mp = Marketposition(); if MP != 0 and Mp[1] == 0 then currententrynum = currententrynum+1; //method에 따른 피봇라인 설정 If method == 1 Then { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)) / 3 ; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); //'2차저항 Var9 = Var10 * 2 - dayHigh(1); //'1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1); // '2차지지 } Else { Var10 = (dayHigh(1) + dayLow(1) + dayclose(1)+dayopen(1)) / 4; //'피봇 Var11 = Var10 * 2 - dayLow(1); //'1차 저항 Var12 = Var10 + dayHigh(1) - dayLow(1); // '2차저항 Var9 = Var10 * 2 - dayHigh(1); // '1차 지지 Var8 = Var10 - dayHigh(1) + dayLow(1) ; // '2차지지 } //시가대비 영역별 지정가 돌파시 진입 If Var9 > dayopen() And dayopen() > Var8 Then { // '시가가 var9보다 작고 var8보다 크면 If sTIME <= 150000 Then { // '15:00분 이전이라면 If marketposition() == 0 And date <> entrydate(1) Then { //'하루에 한번만 진입 buy("매수1", Atstop, Var9); //'지정가 상향돌파시 매수 sell("매도1", Atstop,Var8); //'지정가 하향돌파시 매도 } } } If Var10 > dayopen() And dayopen() >= var9 Then{ If sTIME <= 150000 Then{ If marketposition()==0 And date<>entrydate(1) Then{ buy("매수2", Atstop, Var10); sell("매도2", Atstop, Var8); } } } If Var11 > dayopen() And dayopen() >= var10 Then{ If sTIME <= 150000 Then{ If marketposition() ==0 And date <> entrydate(1) Then{ buy("매수3", Atstop, Var12); sell("매도3", Atstop, Var10); } } } If Var12 > dayopen() And dayopen() >= var11 Then { If sTIME <= 150000 Then { If marketposition() ==0 And date <> entrydate(1) Then{ buy("매수4", Atstop, Var12); sell("매도4", Atstop, Var11); } } } If dayopen() >= var12 Then { If sTIME <= 150000 Then { If marketposition()==0 And date <> entrydate(1) Then { buy("매수5", Atstop, dayopen()+(Var12-var11)); sell("매도5", Atstop, Var12); } } } If dayopen() <= var8 Then { If sTIME <= 150000 Then{ If marketposition() == 0 And date <> entrydate(1) Then { buy("매수6", Atstop, Var8); sell("매도6", Atstop, dayopen()-(Var9-var8)); } } } //'청산 If marketposition() <> 0 Then { exitlong("매수청산", Atstop, nthhighest(1, high, barssinceentry()+1)-atr(20)*len); exitshort("매도청산", Atstop, nthlowest(1, low, barssinceentry()+1)+atr(20)*len); } If date <> date[1] Then { Var50=currententrynum; // 'currententrynum -- 현재까지의 시장 진입 횟수 // '(오픈포지션까지 포함) } If currententrynum-var50 == 1 Then{ ///'당일 매매가 한번 이루어진 경우 If isentryname("매수2") Or isentryname("매수3") Then {// '진입명칭이 매수2, 매수3인 경우 If dayhigh() > var12 And low > var11 Then { sell("역매도", Atstop, Var11); } } If isentryname("매도2") Or isentryname("매도3") Then {// '진입명칭이 매도2, 매도3인 경우 If daylow() < var8 And high < var9 Then{ buy("역매수", Atstop, Var9); } } } > nanum 님이 쓴 글입니다. > 제목 : Pivot (역추세) > 안녕하십니까. 아래에 있는 로직은 CT- 7th 시스템트레이딩 에 있는 Pivot (역추세) 입니다. YT 로 전환해 주시면 고맙겠습니다. 수식 대신 글로 시스템내용을 올려보려하였으나, 저의 표현에 문제점도 있고 수식 옆에 주석도 있어 그냥 올려 봅니다. 감사합니다. --------------- input; len(3.2), method(1) 'method에 따른 피봇라인 설정 If method=1 Then Var10 = (HighD(1) + LowD(1) + closed(1)) / 3 '피봇 Var11= Var10 * 2 - LowD(1) '1차 저항 Var12= Var10 + HighD(1) - LowD(1) '2차저항 Var9= Var10 * 2 - HighD(1) '1차 지지 Var8= Var10 - HighD(1) + LowD(1) '2차지지 Else Var10 = (HighD(1) + LowD(1) + closed(1)+opend(1)) / 4 '피봇 Var11= Var10 * 2 - LowD(1) '1차 저항 Var12= Var10 + HighD(1) - LowD(1) '2차저항 Var9= Var10 * 2 - HighD(1) '1차 지지 Var8= Var10 - HighD(1) + LowD(1) '2차지지 End If '시가대비 영역별 지정가 돌파시 진입 If Var9 > opend And opend> Var8 Then '시가가 var9보다 작고 var8보다 크면 If TTIME<=1500 Then '15:00분 이전이라면 If position=0 And tdate<>entrydate(1) Then '하루에 한번만 진입 call buy("매수1", Atstop, Def, Var9) '지정가 상향돌파시 매수 Call sell("매도1", Atstop, Def, Var8) '지정가 하향돌파시 매도 End If End If End If If Var10 > opend And opend>=var9 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수2", Atstop, Def, Var10) Call sell("매도2", Atstop, Def, Var8) End If End If End if If Var11 > opend And opend>=var10 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수3", Atstop, Def, Var12) Call sell("매도3", Atstop, Def, Var10) End If End If End If If Var12 > opend And opend>=var11 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수4", Atstop, Def, Var12) Call sell("매도4", Atstop, Def, Var11) End If End If End If If opend>=var12 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수5", Atstop, Def, opend+(Var12-var11)) Call sell("매도5", Atstop, Def, Var12) End If End If End If If opend<=var8 Then If TTIME<=1500 Then If position=0 And tdate<>entrydate(1) Then Call buy("매수6", Atstop, Def, Var8) Call sell("매도6", Atstop, Def, opend-(Var9-var8)) End If End If End if '청산 If position<>0 Then Call exitlong("매수청산", Atstop, hhv(1, high, barnumsinceentry+1)-atr(20)*len) Call exitshort("매도청산", Atstop, llv(1, low, barnumsinceentry+1)+atr(20)*len) End If If tdate<>tdate(1) Then Var50=currententrynum 'currententrynum -- 현재까지의 시장 진입 횟수 '(오픈포지션까지 포함) End If If currententrynum-var50 =1 Then '당일 매매가 한번 이루어진 경우 If entryname="매수2" Or entryname="매수3" Then '진입명칭이 매수2, 매수3인 경우 If highd>var12 And low>var11 Then Call sell("역매도", Atstop, Def, Var11) End If End If If entryname="매도2" Or entryname="매도3" Then '진입명칭이 매도2, 매도3인 경우 If lowd<var8 And high<var9 Then Call buy("역매수", Atstop, Def, Var9) End If End If End if
프로필 이미지

nanum

2007-06-22 19:48:00

nanum 님에 의해 삭제된 답변입니다.