커뮤니티

프로그램 작성 문의드립니다.

프로필 이미지
으그흐흐
2016-08-02 19:59:04
93
글번호 100646
답변완료
안녕하세요. 항상 친절한 답변 감사드립니다. 일봉이 10일 이평선을 아래로 깬 날 매수하여, 매수한 다음날 3% 상승 시 매도하는 프로그램을 짜고 있는데요. (3% 상승 실패 시 매수 7일 후 매도) 1. 이상하게 매수 다음날 매도되지 않고... 2일째 되는날 매도됩니다;;; 2. 종가 기준이라 그런지 종가에만 매도가 되는데 정확히 3%에서 팔 수 있도록 짤 수 있을까요?? 3. 윗꼬리가 달린 경우(종가는 3% 상승 실패했으나 그날의 고가는 3%이상)에도 동작하도록 짤 수 있을까요?? 아래는 짜놓은 프로그램입니다. 감사합니다. -------------------------------------------------------------- var : Dayx(0); var : buyday(0), buyprice(0), CDCav10dday(0); if date != date[1] Then Dayx = Dayx+1; if CrossDown(C, Ema(c,10)) Then { CDCav10dday = dayx; } if MarketPosition == 0 and CDCav10dday == dayx Then{ Buy("10일선 dead"); buyday = dayx; buyprice = C; } if MarketPosition == 1 and buyday+1 == dayx Then { ExitLong("매도3%", AtLimit, buyprice*1.03); } if MarketPosition == 1 and buyday+7 == dayx Then { ExitLong("매도"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-08-03 09:33:15

안녕하세요 예스스탁입니다. MarketPosition은 신호 확정후 부터 감지가 됩니다. 작성하신 식의 진입은 Onclose이고 해당 타입은 봉완성(다음봉시가수신)시에 진입이 확정이 됩니다. MarketPosition이 신호표시봉 다음봉 부터 감시가 되고 청산에 사용한 atlimit은 봉완성시 가격을 세팅하고 다음봉에서 셋팅한 가격과 현재가를 비교해 신호가 발생하므로 진입신호봉 다음다음봉에 신호가 발생합니다. 사용하시는 차트의 주기가 일봉이므로 아래와 같이 매수시점에 동시에 다음봉(다음날봉)을 감시하는 내용으로 수정하시면 됩니다. var : Dayx(0); var : buyday(0), buyprice(0), CDCav10dday(0); if date != date[1] Then Dayx = Dayx+1; if MarketPosition == 0 and CrossDown(C, Ema(c,10)) Then { Buy("10일선 dead"); buyday = dayx; ExitLong("_매도3%", AtLimit, C*1.03); } if MarketPosition == 1 and buyday+7 == dayx Then { ExitLong("매도"); } 즐거운 하루되세요 > 으그흐흐 님이 쓴 글입니다. > 제목 : 프로그램 작성 문의드립니다. > 안녕하세요. 항상 친절한 답변 감사드립니다. 일봉이 10일 이평선을 아래로 깬 날 매수하여, 매수한 다음날 3% 상승 시 매도하는 프로그램을 짜고 있는데요. (3% 상승 실패 시 매수 7일 후 매도) 1. 이상하게 매수 다음날 매도되지 않고... 2일째 되는날 매도됩니다;;; 2. 종가 기준이라 그런지 종가에만 매도가 되는데 정확히 3%에서 팔 수 있도록 짤 수 있을까요?? 3. 윗꼬리가 달린 경우(종가는 3% 상승 실패했으나 그날의 고가는 3%이상)에도 동작하도록 짤 수 있을까요?? 아래는 짜놓은 프로그램입니다. 감사합니다. -------------------------------------------------------------- var : Dayx(0); var : buyday(0), buyprice(0), CDCav10dday(0); if date != date[1] Then Dayx = Dayx+1; if CrossDown(C, Ema(c,10)) Then { CDCav10dday = dayx; } if MarketPosition == 0 and CDCav10dday == dayx Then{ Buy("10일선 dead"); buyday = dayx; buyprice = C; } if MarketPosition == 1 and buyday+1 == dayx Then { ExitLong("매도3%", AtLimit, buyprice*1.03); } if MarketPosition == 1 and buyday+7 == dayx Then { ExitLong("매도"); }