커뮤니티

시스템식 보완좀 부탁드립니다.

프로필 이미지
혁시운
2012-04-10 10:00:51
358
글번호 49894
답변완료
다름이 아니라 (20.2) 엔벨롭 하단선에 닿을때 매수, 매수시점에서 4%하락시 추가매수 이방법으로 시스템식을 짜주셨는데, 시스템식을 돌려보니 해당 봉의 종가가 엔벨롭 하단선 이하에 위치해야 매수신호가 발생하더군요. 해당 봉의 종가가 형성이 되어야 되는것이 아니라 해당조건, 즉 20.2엔벨롭 하단선에 닿는 즉시 매수되게 할수는 없을까요? 그리고 매도 역시 종가가 해당조건에 맞아야 되는것이 아니라 조건을 만족하는 즉시 매도되게 할수 없을까요? 부탁드립니다. 밑은 현재 시스템식입니다. input : 투입금액(5000000); if CodeCategory == 1 Then{ #코스피 if BasePrice < 50000 Then Var1 = int(int(투입금액/C)/10)*10; Else Var1 = int(투입금액/C); } if CodeCategory == 2 Then#코스닥 Var1 = int(투입금액/C); value1 = EnvelopeDown(20,2); if MarketPosition == 0 and CrossDown(c,value1) Then buy("b1",OnClose,def,var1); if MarketPosition == 1 and CurrentEntries == 1 Then buy("b2",Atlimit,EntryPrice*0.96); if MarketPosition == 1 and MaxEntries == 1 Then{ exitlong("bx11",atlimit,EntryPrice*1.013); if crossup(c,ma(c,20)) Then exitlong("bx12"); } if MarketPosition == 1 and MaxEntries == 2 Then{ exitlong("bx21",atlimit,AvgEntryPrice*1.003); if crossup(c,ma(c,20)) Then exitlong("bx22"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-04-10 15:05:30

안녕하세요 예스스탁입니다. 문의하신 내용은 봉완성시로만 가능합니다. 수식에서 봉미완성일때 신호가 발생할 수 있는 타입으로 atstop과 atlimit이 있습니다. 이 두개의 타입은 현재봉에서 계산되는 특정값과 현재시세를 서로 비교해서는 신호를 발생할 수 없고 항상 최근 완성된봉(직전봉)에서 특정 값을 셋팅한 후에 현재시세와 비교해서 신호를 발생할 수 있습니다. 문의하신 내용으로는 현재봉에서 계산하는 엔벨로프값과 현재가를 비교해야 하는데 해당 내용으로는 봉미완성시가 가능하지 않습니다. 즐거운 하루되세요 > 혁시운 님이 쓴 글입니다. > 제목 : 시스템식 보완좀 부탁드립니다. > 다름이 아니라 (20.2) 엔벨롭 하단선에 닿을때 매수, 매수시점에서 4%하락시 추가매수 이방법으로 시스템식을 짜주셨는데, 시스템식을 돌려보니 해당 봉의 종가가 엔벨롭 하단선 이하에 위치해야 매수신호가 발생하더군요. 해당 봉의 종가가 형성이 되어야 되는것이 아니라 해당조건, 즉 20.2엔벨롭 하단선에 닿는 즉시 매수되게 할수는 없을까요? 그리고 매도 역시 종가가 해당조건에 맞아야 되는것이 아니라 조건을 만족하는 즉시 매도되게 할수 없을까요? 부탁드립니다. 밑은 현재 시스템식입니다. input : 투입금액(5000000); if CodeCategory == 1 Then{ #코스피 if BasePrice < 50000 Then Var1 = int(int(투입금액/C)/10)*10; Else Var1 = int(투입금액/C); } if CodeCategory == 2 Then#코스닥 Var1 = int(투입금액/C); value1 = EnvelopeDown(20,2); if MarketPosition == 0 and CrossDown(c,value1) Then buy("b1",OnClose,def,var1); if MarketPosition == 1 and CurrentEntries == 1 Then buy("b2",Atlimit,EntryPrice*0.96); if MarketPosition == 1 and MaxEntries == 1 Then{ exitlong("bx11",atlimit,EntryPrice*1.013); if crossup(c,ma(c,20)) Then exitlong("bx12"); } if MarketPosition == 1 and MaxEntries == 2 Then{ exitlong("bx21",atlimit,AvgEntryPrice*1.003); if crossup(c,ma(c,20)) Then exitlong("bx22"); }