커뮤니티

수식확인 부탁드립니다

프로필 이미지
Jason
2010-08-26 10:18:35
688
글번호 31864
답변완료
(현물 분봉기준) 주가가 5일 이평선을 상향 돌파하거나, 위에 있을 때 매수, 5일 이평선을 하향 돌파하거나 20일 이평선을 하향 돌파할 때 매수 청산이며, 진입과 매수청산은 단 한차례로 끝나는 경우입니다. 아래 식이 맞나요? (예외조건) 3일 이동평균선과 5일 이동평균선이 서로 격차를 5%이상 벌리게 되면, 주가가 3일 이평선을 하향 이탈 할 때 매도 (나머지 매도 조건은 동일합니다) var1 = ma(C,5); if sdate >= start and TotalTrades == 0 and MarketPosition == 0 and (crossup(c,var1) or C > var1) Then buy("b"); if MarketPosition == 1 Then { if max(ma(c,3),ma(c,5)) <= min(ma(c,3),ma(c,5))*1.05 Then{ if CrossDown(c,ma(c,5)) Then exitlong(); } if max(ma(c,3),ma(c,5)) > min(ma(c,3),ma(c,5))*1.05 Then{ if CrossDown(c,ma(c,3)) Then exitlong(); } if CrossDown(c,ma(c,20)) Then exitlong(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-08-26 17:08:24

안녕하세요 예스스탁입니다. 분봉에서 일봉이평이시면 식을 아래와 같이 작성하셔여 합니다. input : start(20100826), P1(3),P2(5),P3(20); var : sumV1(0),maV1(0),count(0),sumV2(0), maV2(0),sumV3(0), maV3(0); sumV1 = 0; sumV2 = 0; sumV3 = 0; for count = 0 to P3{ if count < P1 Then sumV1 = sumV1+DayClose(count); if count < P2 Then sumV2 = sumV2+DayClose(count); if count < P3 Then sumV3 = sumV3+DayClose(count); } maV1 = sumV1 / P1; maV2 = sumV2 / P2; maV3 = sumV3 / P3; if sdate >= start and TotalTrades == 0 and MarketPosition == 0 and (crossup(c,maV2) or C > maV2) Then buy("b"); if MarketPosition == 1 Then { if max(maV1,maV2) <= min(maV1,maV2)*1.05 Then{ if CrossDown(c,maV2) Then exitlong(); } if max(maV1,maV2) > min(maV1,maV2)*1.05 Then{ if CrossDown(c,maV1) Then exitlong(); } if CrossDown(c,maV3) Then 즐거운 하루되세요 > Jason 님이 쓴 글입니다. > 제목 : 수식확인 부탁드립니다 > (현물 분봉기준) 주가가 5일 이평선을 상향 돌파하거나, 위에 있을 때 매수, 5일 이평선을 하향 돌파하거나 20일 이평선을 하향 돌파할 때 매수 청산이며, 진입과 매수청산은 단 한차례로 끝나는 경우입니다. 아래 식이 맞나요? (예외조건) 3일 이동평균선과 5일 이동평균선이 서로 격차를 5%이상 벌리게 되면, 주가가 3일 이평선을 하향 이탈 할 때 매도 (나머지 매도 조건은 동일합니다) var1 = ma(C,5); if sdate >= start and TotalTrades == 0 and MarketPosition == 0 and (crossup(c,var1) or C > var1) Then buy("b"); if MarketPosition == 1 Then { if max(ma(c,3),ma(c,5)) <= min(ma(c,3),ma(c,5))*1.05 Then{ if CrossDown(c,ma(c,5)) Then exitlong(); } if max(ma(c,3),ma(c,5)) > min(ma(c,3),ma(c,5))*1.05 Then{ if CrossDown(c,ma(c,3)) Then exitlong(); } if CrossDown(c,ma(c,20)) Then exitlong(); }