커뮤니티

아무리 해보아도 잘 안되어서 문의 합니다,,,

프로필 이미지
클레멘타인
2016-06-09 02:50:35
110
글번호 98876
답변완료
포지션 진입을 한 후에(자의로 진입하므로 포지션 진입가를 시스템에 입력가능하도록 함) 청산하려고 할 때 시스템 신호가 나오도록 하고 싶습니다 청산조건은 매수 포지션의 경우, 진입가 (본인이 진입후에 시스템에 입력함)보다 현재봉 이전의 10개봉을 진입가와 비교하여서 5개이상이 진입가보다 낮으면 청산하려 합니다. 이 때 비교하는 봉갯수는 시스템에 입력해서 조절이 가능하도록 하고 싶구요 물론 매도는 반대로 해야 되겠지요,,, 간단할 것 같은데 잘 안되어서 도움 요청 드립니다 감사합니다,,,
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-06-09 14:28:24

안녕하세요 예스스탁입니다. 시스템은 진입신호가 없으면 청산신호가 발생하지 않고 그러므로 진입신호가 없는 시스템은 차트에 적용이 되지를 않습니다. 진입은 수동으로 진입하고 청산만 자동으로 하기 위해서는 시스템 적용시점 이전의 과거봉에 진입신호를 내야 하고(과거봉이므로 주문은 나가지 않고 진입신호만 발생) 청산을 적용시점 이후부터 발생하도록 해야 합니다. 수식에서 적용시점은 알수가 없으므로 날짜와 시간을 지정해서 특정일 특정시간이후부터 청산이 발생하도록 해야 합니다. 아래식 참고하시기 바랍니다. input : 진입가(250); input : 포지션(1);#수동진입한 포지션 매수는1, 매도는 -1 input : 진입수량(1);#수량 input : 적용일(20160609); input : 적용시간(110000); var : cnt(0),upsum(0),dnsum(0); #포지션이 1이면 차트 첫봉에 매수진입신호를 발생 if 포지션 == 1 and index == 0 Then buy("b",OnClose,def,진입수량); #포지션이 -1이면 차트 첫봉에 매도진입신호를 발생 if 포지션 == -1 and index == 0 Then sell("s",OnClose,def,진입수량); if sdate == 적용일 and stime >= 적용시간 Then Condition1 = true; if Condition1 == true then{ upsum = 0; dnsum = 0; for cnt = 0 to 9{ if C[cnt] > 진입가 Then upsum = upsum+1; if C[cnt] < 진입가 Then dnsum = dnsum+1; } if MarketPosition == 1 and dnsum >= 5 Then exitlong("bx"); if MarketPosition == -1 and upsum >= 5 Then exitshort("sx"); } 즐거운 하루되세요 > 클레멘타인 님이 쓴 글입니다. > 제목 : 아무리 해보아도 잘 안되어서 문의 합니다,,, > 포지션 진입을 한 후에(자의로 진입하므로 포지션 진입가를 시스템에 입력가능하도록 함) 청산하려고 할 때 시스템 신호가 나오도록 하고 싶습니다 청산조건은 매수 포지션의 경우, 진입가 (본인이 진입후에 시스템에 입력함)보다 현재봉 이전의 10개봉을 진입가와 비교하여서 5개이상이 진입가보다 낮으면 청산하려 합니다. 이 때 비교하는 봉갯수는 시스템에 입력해서 조절이 가능하도록 하고 싶구요 물론 매도는 반대로 해야 되겠지요,,, 간단할 것 같은데 잘 안되어서 도움 요청 드립니다 감사합니다,,,