커뮤니티

수정요청

프로필 이미지
회원
2015-03-31 09:54:12
184
글번호 84603
답변완료
적용해보니 진입이 수도없이 많이 나오네요 스위칭 포함 1 일 2회진입으로 부탁합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 3 일간 최고가,최저가 돌파 > 안녕하세요 예스스탁입니다. 1번 2번 추가한 식입니다. 주석 참고하시기 바랍니다. input : N(3); var : HH(0),LL(0),cnt(0),Bcount(0),Scount(0); #직전 N일간 최고/최저가 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); } #당일 매수매도 진입횟수 Bcount = 0; Scount = 0; for cnt = 0 to 20{ if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then Bcount = Bcount+1; if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then Scount = Scount+1; } #시가가 직전 최고가~최저가 사이 if HH >= dayopen and dayopen >= LL Then{ if Bcount < 1 and crossup(C,HH) Then buy(); if Scount < 1 and CrossDown(C,LL) Then sell(); } #시가가 직전 최고가와 최저가 밖 if dayopen > HH or LL > dayopen Then{ if Bcount < 1 and crossup(C,dayopen+1) Then buy(); if Scount < 1 and CrossDown(C,dayopen-1) Then sell(); } #매수 후 if MarketPosition == 1 Then{ #진입가 대비 1포인트 이상 상승 후 최고가에서 0.5 하락하면 청산 if highest(H,BarsSinceEntry) >= EntryPrice+1 Then ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-0.5); #진입가 대비 1포인트 이상 상승하지 못하고 진입가로 하락하면 매도로 스위칭 if highest(H,BarsSinceEntry) < EntryPrice+1 Then sell("bs",AtStop,EntryPrice); } if MarketPosition == -1 Then{ #진입가 대비 1포인트 이상 하락 후 최저가에서 0.5 상승하면 청산 if lowest(L,BarsSinceEntry) <= EntryPrice-1 Then ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+0.5); #진입가 대비 1포인트 이상 하락하지 못하고 진입가로 상승하면 매수로 스위칭 if lowest(L,BarsSinceEntry) > EntryPrice-1 Then buy("sb",AtStop,EntryPrice); } 즐거운 하루되세요
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-03-31 10:48:40

안녕하세요 예스스탁입니다. 스위칭 포함 매수/매도진입을 각 2회까지만 되게 수정했습니다. input : N(3); var : HH(0),LL(0),cnt(0),Bcount(0),Scount(0); #직전 N일간 최고/최저가 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); } #당일 매수매도 진입횟수 Bcount = 0; Scount = 0; for cnt = 0 to 20{ if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then Bcount = Bcount+1; if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then Scount = Scount+1; } #시가가 직전 최고가~최저가 사이 if HH >= dayopen and dayopen >= LL Then{ if Bcount < 1 and crossup(C,HH) Then buy(); if Scount < 1 and CrossDown(C,LL) Then sell(); } #시가가 직전 최고가와 최저가 밖 if dayopen > HH or LL > dayopen Then{ if Bcount < 1 and crossup(C,dayopen+1) Then buy(); if Scount < 1 and CrossDown(C,dayopen-1) Then sell(); } #매수 후 if MarketPosition == 1 Then{ #진입가 대비 1포인트 이상 상승 후 최고가에서 0.5 하락하면 청산 if highest(H,BarsSinceEntry) >= EntryPrice+1 Then ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-0.5); #진입가 대비 1포인트 이상 상승하지 못하고 진입가로 하락하면 매도로 스위칭 if highest(H,BarsSinceEntry) < EntryPrice+1 and Scount < 2 Then sell("bs",AtStop,EntryPrice); } if MarketPosition == -1 Then{ #진입가 대비 1포인트 이상 하락 후 최저가에서 0.5 상승하면 청산 if lowest(L,BarsSinceEntry) <= EntryPrice-1 Then ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+0.5); #진입가 대비 1포인트 이상 하락하지 못하고 진입가로 상승하면 매수로 스위칭 if lowest(L,BarsSinceEntry) > EntryPrice-1 and Bcount < 2 Then buy("sb",AtStop,EntryPrice); } 즐거운 하루되세요 > HI_SE****** 님이 쓴 글입니다. > 제목 : 수정요청 > 적용해보니 진입이 수도없이 많이 나오네요 스위칭 포함 1 일 2회진입으로 부탁합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 3 일간 최고가,최저가 돌파 > 안녕하세요 예스스탁입니다. 1번 2번 추가한 식입니다. 주석 참고하시기 바랍니다. input : N(3); var : HH(0),LL(0),cnt(0),Bcount(0),Scount(0); #직전 N일간 최고/최저가 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); } #당일 매수매도 진입횟수 Bcount = 0; Scount = 0; for cnt = 0 to 20{ if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then Bcount = Bcount+1; if MarketPosition(cnt) == 1 and sdate == EntryDate(cnt) Then Scount = Scount+1; } #시가가 직전 최고가~최저가 사이 if HH >= dayopen and dayopen >= LL Then{ if Bcount < 1 and crossup(C,HH) Then buy(); if Scount < 1 and CrossDown(C,LL) Then sell(); } #시가가 직전 최고가와 최저가 밖 if dayopen > HH or LL > dayopen Then{ if Bcount < 1 and crossup(C,dayopen+1) Then buy(); if Scount < 1 and CrossDown(C,dayopen-1) Then sell(); } #매수 후 if MarketPosition == 1 Then{ #진입가 대비 1포인트 이상 상승 후 최고가에서 0.5 하락하면 청산 if highest(H,BarsSinceEntry) >= EntryPrice+1 Then ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-0.5); #진입가 대비 1포인트 이상 상승하지 못하고 진입가로 하락하면 매도로 스위칭 if highest(H,BarsSinceEntry) < EntryPrice+1 Then sell("bs",AtStop,EntryPrice); } if MarketPosition == -1 Then{ #진입가 대비 1포인트 이상 하락 후 최저가에서 0.5 상승하면 청산 if lowest(L,BarsSinceEntry) <= EntryPrice-1 Then ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+0.5); #진입가 대비 1포인트 이상 하락하지 못하고 진입가로 상승하면 매수로 스위칭 if lowest(L,BarsSinceEntry) > EntryPrice-1 Then buy("sb",AtStop,EntryPrice); } 즐거운 하루되세요