커뮤니티

검토 부탁드립니다

프로필 이미지
theogo66
2018-05-16 13:27:29
141
글번호 118955
답변완료
당일 익절후 아래 시스템식으로 금일한 재진입금지를 하려고 하는데 잘 안되네요. 검토 부탁드립니다. 의도한 식의 개념 1) 분봉(현물_매도식은 없음)에서 일봉 이평선 20-60골든크로스 조건을 전제함. (알려주신 식을 도입) 2) 당일 09:30까지는 진입금지, 단 전일에서 over된 물량은 청산 조건 만족시 09:00에서부터 적용. 3) 검토요청부분: (1) 전일over분이나 금일 진입후 익절 된 이후는 금일限은 재진입금지식 요망. - 익절 method를 %,point로 설정한다면 setstopTarget을 이용하겠지만, 현재 사용식은 단순 청산식인 밴드상단 하향시 손절이나 익절인 경우 2개가 있겠으니, 그 중에서 익절인 경우에 금일 진입금지하는 식으로 만들고 싶습니다. (그 중에서 손절인 경우는 청산된 이후 당일 조건 만족시 진입함을 의도함) * IsExitName("EX",1)와 같이 이름을 단순히 적거나, Buy밑의 괄호를 제일 하단으로 옮겼더니 원하는 식이 되질 않네요. (2) 분봉에 일봉 이평선을 그리는 지표가 일봉차트에서 본 이평선과 다르게 나오네요. (일봉에선 20선이 60선 dead 상태인데, 분봉에선 골드로 나옴.) * 초보라서 하나를 알려줘도 하나를 응용하기가 쉽지 않네요.ㅠㅠ 항상 노고에 감사드립니다. < 아 래 > input: period(20),nsd(2.0),StopPer(3.0); input : P1(20),P2(60); vars: maV(0), bandup(0), banddn(0); var : count(0),sumV1(0),sumV2(0),dmav1(0),dmav2(0); sumV1 = 0; sumV2 = 0; for count = 0 to P2 { if count < P1 then sumV1 = sumV1+DayClose(count); if count < P2 then sumV2 = sumV2+DayClose(count); } dmaV1 = sumV1/P1; dmaV2 = sumV1/P2; maV = ma(close,period); bandup = BollBandUp(period,nsd); banddn = BollBandDown(period,nsd); Condition1 = ExitDate(1) == sdate and MarketPosition(1) == 1 and IsExitName("EX",1) == true; if Condition1 == false and Stime > 093000 and CrossUp(close , bandup) then { if dmaV1 > dmaV2 then Buy(); } if marketposition > 0 then exitlong("EX",AtStop,bandup); SetStopLoss(StopPer,PercentStop);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-05-17 11:49:13

안녕하세요 예스스탁입니다. 1 청산뒤 당일 진입금지를 이름이 아닌 포지션의 손익으로 지정하시면 됩니다. 당일에 청산이 발생하고 수익이면 당일 진입을 금지하게 수정했습니다 2 일간이평값계산에 문제가 있어 수정했습니다/ 3 수정한 식입니다. input: period(20),nsd(2.0),StopPer(3.0); input : P1(20),P2(60); var : maV(0), bandup(0), banddn(0); var : count(0),sumV1(0),sumV2(0),dmav1(0),dmav2(0); sumV1 = 0; sumV2 = 0; for count = 0 to P2 { if count < P1 then sumV1 = sumV1+DayClose(count); if count < P2 then sumV2 = sumV2+DayClose(count); } dmaV1 = sumV1/P1; dmaV2 = sumV2/P2; maV = ma(close,period); bandup = BollBandUp(period,nsd); banddn = BollBandDown(period,nsd); Condition1 = ExitDate(1) == sdate and MarketPosition(1) == 1 and PositionProfit(1) > 0; if Condition1 == false and Stime > 093000 and CrossUp(close , bandup) then { if dmaV1 > dmaV2 then Buy(); } if marketposition > 0 then exitlong("EX",AtStop,bandup); SetStopLoss(StopPer,PercentStop); 4 지표식입니다. input : P1(20),P2(60); var : count(0),sumV1(0),sumV2(0),dmav1(0),dmav2(0); sumV1 = 0; sumV2 = 0; for count = 0 to P2 { if count < P1 then sumV1 = sumV1+DayClose(count); if count < P2 then sumV2 = sumV2+DayClose(count); } dmaV1 = sumV1/P1; dmaV2 = sumV2/P2; plot1(Dmav1); plot2(Dmav2); 즐거운 하루되세요 > theogo66 님이 쓴 글입니다. > 제목 : 검토 부탁드립니다 > 당일 익절후 아래 시스템식으로 금일한 재진입금지를 하려고 하는데 잘 안되네요. 검토 부탁드립니다. 의도한 식의 개념 1) 분봉(현물_매도식은 없음)에서 일봉 이평선 20-60골든크로스 조건을 전제함. (알려주신 식을 도입) 2) 당일 09:30까지는 진입금지, 단 전일에서 over된 물량은 청산 조건 만족시 09:00에서부터 적용. 3) 검토요청부분: (1) 전일over분이나 금일 진입후 익절 된 이후는 금일限은 재진입금지식 요망. - 익절 method를 %,point로 설정한다면 setstopTarget을 이용하겠지만, 현재 사용식은 단순 청산식인 밴드상단 하향시 손절이나 익절인 경우 2개가 있겠으니, 그 중에서 익절인 경우에 금일 진입금지하는 식으로 만들고 싶습니다. (그 중에서 손절인 경우는 청산된 이후 당일 조건 만족시 진입함을 의도함) * IsExitName("EX",1)와 같이 이름을 단순히 적거나, Buy밑의 괄호를 제일 하단으로 옮겼더니 원하는 식이 되질 않네요. (2) 분봉에 일봉 이평선을 그리는 지표가 일봉차트에서 본 이평선과 다르게 나오네요. (일봉에선 20선이 60선 dead 상태인데, 분봉에선 골드로 나옴.) * 초보라서 하나를 알려줘도 하나를 응용하기가 쉽지 않네요.ㅠㅠ 항상 노고에 감사드립니다. < 아 래 > input: period(20),nsd(2.0),StopPer(3.0); input : P1(20),P2(60); vars: maV(0), bandup(0), banddn(0); var : count(0),sumV1(0),sumV2(0),dmav1(0),dmav2(0); sumV1 = 0; sumV2 = 0; for count = 0 to P2 { if count < P1 then sumV1 = sumV1+DayClose(count); if count < P2 then sumV2 = sumV2+DayClose(count); } dmaV1 = sumV1/P1; dmaV2 = sumV1/P2; maV = ma(close,period); bandup = BollBandUp(period,nsd); banddn = BollBandDown(period,nsd); Condition1 = ExitDate(1) == sdate and MarketPosition(1) == 1 and IsExitName("EX",1) == true; if Condition1 == false and Stime > 093000 and CrossUp(close , bandup) then { if dmaV1 > dmaV2 then Buy(); } if marketposition > 0 then exitlong("EX",AtStop,bandup); SetStopLoss(StopPer,PercentStop);