커뮤니티

피보나치 수식 점검 부탁드립니다.

프로필 이미지
승부사1
2018-06-19 21:54:28
163
글번호 119880
답변완료
아래의 수식에서 피보나치 0.618을 하향 이탈한 3거래일 이후부터 음봉종가에 매수 시그널이 발생하지 않습니다. 예를들어서 일봉챠트를 기준으로 3월1일날 피보나치 0.618을 하향 이탈하였고 3월5일까지 반등을 못한다면 3월5일 이후에 발생하는 음봉종가(150000)에는 매수시그널이 발생되도록 만들고 싶습니다. 점검 한번 부탁드립니다. - 아 래 - input : n(120); input : 지정일(20180605); var : 매수금액(3000000); var : hh(0),ll(0),rr(0),cnt(0),EL(0),EH(0),dd(0),d1(0);; if bdate != bdate[1] Then dd = dd+1; if DayHigh(n) > 0 and DayLow(n) > 0 and sdate >= 지정일 then{ hh = dayhigh(1); ll = daylow(1); for cnt = 1 to n { if dayhigh(cnt) > hh Then hh = DayHigh(cnt); if daylow(cnt) < ll Then ll = daylow(cnt); } rr = hh-ll; var1 = hh; var2 = hh - rr*0.236; var3 = hh - rr*0.382; var4 = hh - rr*0.500; var5 = hh - rr*0.618; var6 = hh - rr*0.700; var7 = ll; if MarketPosition == 0 and (crossup(c,var4)) and ExitDate(1) != sdate Then Buy("매수0.5",OnClose,def,Floor(매수금액/C)); if MarketPosition == 0 and (crossup(c,var5)) and ExitDate(1) != sdate Then Buy("매수0.618",OnClose,def,Floor(매수금액/C)); if CurrentContracts > CurrentContracts and MaxEntries == 1 Then d1 = dd; if dd >= d1+4 and C < HH-RR*0.618 and MaxEntries >= 2 and MaxEntries < 4 and stime >= 150000 and stime[1] < 150000 and c < dayopen Then Buy("추매",OnClose,def,Floor(매수금액/C)); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { EH = H; EL = L; if H > EH Then EH = H; if L < EL Then EL = L; } if MarketPosition == 1 and C > AvgEntryPrice Then ExitLong("수익",Atlimit,EntryPrice*1.10); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-06-20 13:48:01

안녕하세요 예스스탁입니다. 식을 수정했습니다. 2번째 진입에 문제가 있어 추매가 발동하지 않았습니다. input : n(120); input : 지정일(20180605); var : 매수금액(3000000); var : hh(0),ll(0),rr(0),cnt(0),EL(0),EH(0),dd(0),d1(0);; if bdate != bdate[1] Then dd = dd+1; if DayHigh(n) > 0 and DayLow(n) > 0 and sdate >= 지정일 then{ hh = dayhigh(1); ll = daylow(1); for cnt = 1 to n { if dayhigh(cnt) > hh Then hh = DayHigh(cnt); if daylow(cnt) < ll Then ll = daylow(cnt); } rr = hh-ll; var1 = hh; var2 = hh - rr*0.236; var3 = hh - rr*0.382; var4 = hh - rr*0.500; var5 = hh - rr*0.618; var6 = hh - rr*0.700; var7 = ll; if MarketPosition == 0 and (crossup(c,var4)) and ExitDate(1) != sdate Then Buy("매수0.5",OnClose,def,Floor(매수금액/C)); if MarketPosition == 1 and MaxEntries == 1 and (crossup(c,var5)) Then Buy("매수0.618",OnClose,def,Floor(매수금액/C)); if CurrentContracts > CurrentContracts and MaxEntries == 1 Then d1 = dd; if dd >= d1+4 and C < HH-RR*0.618 and MaxEntries >= 2 and MaxEntries < 4 and stime >= 150000 and stime[1] < 150000 and c < dayopen Then Buy("추매",OnClose,def,Floor(매수금액/C)); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { EH = H; EL = L; if H > EH Then EH = H; if L < EL Then EL = L; } if MarketPosition == 1 and C > AvgEntryPrice Then ExitLong("수익",Atlimit,EntryPrice*1.10); } } 즐거운 하루되세요 > 승부사1 님이 쓴 글입니다. > 제목 : 피보나치 수식 점검 부탁드립니다. > 아래의 수식에서 피보나치 0.618을 하향 이탈한 3거래일 이후부터 음봉종가에 매수 시그널이 발생하지 않습니다. 예를들어서 일봉챠트를 기준으로 3월1일날 피보나치 0.618을 하향 이탈하였고 3월5일까지 반등을 못한다면 3월5일 이후에 발생하는 음봉종가(150000)에는 매수시그널이 발생되도록 만들고 싶습니다. 점검 한번 부탁드립니다. - 아 래 - input : n(120); input : 지정일(20180605); var : 매수금액(3000000); var : hh(0),ll(0),rr(0),cnt(0),EL(0),EH(0),dd(0),d1(0);; if bdate != bdate[1] Then dd = dd+1; if DayHigh(n) > 0 and DayLow(n) > 0 and sdate >= 지정일 then{ hh = dayhigh(1); ll = daylow(1); for cnt = 1 to n { if dayhigh(cnt) > hh Then hh = DayHigh(cnt); if daylow(cnt) < ll Then ll = daylow(cnt); } rr = hh-ll; var1 = hh; var2 = hh - rr*0.236; var3 = hh - rr*0.382; var4 = hh - rr*0.500; var5 = hh - rr*0.618; var6 = hh - rr*0.700; var7 = ll; if MarketPosition == 0 and (crossup(c,var4)) and ExitDate(1) != sdate Then Buy("매수0.5",OnClose,def,Floor(매수금액/C)); if MarketPosition == 0 and (crossup(c,var5)) and ExitDate(1) != sdate Then Buy("매수0.618",OnClose,def,Floor(매수금액/C)); if CurrentContracts > CurrentContracts and MaxEntries == 1 Then d1 = dd; if dd >= d1+4 and C < HH-RR*0.618 and MaxEntries >= 2 and MaxEntries < 4 and stime >= 150000 and stime[1] < 150000 and c < dayopen Then Buy("추매",OnClose,def,Floor(매수금액/C)); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { EH = H; EL = L; if H > EH Then EH = H; if L < EL Then EL = L; } if MarketPosition == 1 and C > AvgEntryPrice Then ExitLong("수익",Atlimit,EntryPrice*1.10); } }