커뮤니티

문의드립니다.

프로필 이미지
바바큰
2017-04-04 06:52:53
199
글번호 108447
답변완료

첨부 이미지

아래식으로 실전 매매를 하면 그림의 1번 Crossup에서 Buy 진입후 2번에서 청산만 되고 재진입(Sell)이 이루어 지지 않습니다. Crossup, Crossdown은 조건만족시 포지션이 있을경우 청산과 함께 반대 포지션으로 재진입 하는갓으로 알고있는데 어떤부분이(수식,설정,등) 문제일 수 있는지 문의드립니다. Input : P1(10), P2(60), 시작(070000), 종료(050000); Var : mav1(0), mav2(0); mav1 = Ma(C, P1); mav2 = Ma(C, p2); //시간 if 종료 <= sTime and sTime < 시작 then { if MarketPosition == 1 then{ ExitLong(); } if MarketPosition == -1 then{ ExitShort(); } } //진입 else { if CrossUp(mav1, mav2) Then Buy("Buy"); if CrossDown(mav1, mav2) Then Sell("Sell"); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-04-04 16:49:08

안녕하세요 예스스탁입니다. 수식에는 따로 문제가 없습니다. 또한 첨부된 그림에서 sell의 신호표시가 2개 뜨는 것으로 보아 정상적으로 스위칭 신호로 발생했습니다. 수식등에서는 처리할 부분이 없습니다. 반대방향 진입주문이 발생하지 않았다면 3가지 경우가 있습니다. 아래 3가지 경우 숙지하시고 사용자분이 어떤 부분으로 발생한 상황인지 확인하고 그에 맞게 처리하셔야 합니다. 1 주문이 발생했는데 미체결된 경우 이 부분은 따로 수식등에서 처리할 방법이 없습니다. 체결에 유리한 가격으로 주문가격을 설정하셔야 합니다. 2 신호가 발생했는데 주문이 거부된 경우 이 부분도 따로 수식등에서 처리할 방법이 없습니다. 스위칭신호가 발생하면 지정한 수량의 2배의 증거금이 필요하므로 거부사유가 증거금부족등이면 증거금을 확충하시거나 혹은 시스템 트레이딩 설정창의 부가기능에서 진입주문지연기능등으로 진입신호에 대해 몇초간 주문을 딜레이 하는 방법을 사용해야 합니다. 3 신호가 발생했는데 주문이 발생하지 않은 경우 이경우는 보통 주문시작신호의 설정 문제입니다. 주문시작신호가 진입신호인 상태에서 진입신호가 발생후 설정창을 열고 다시 재적용하면 다시 진입신호부터 주문이 발생하게 됩니다. 진입된 포지션에 대한 청산과 반대방향진입이 동시에 발생하면 청산을 건너뛰고 진입만 주문을 하게 됩니다. 이경우 진입만 주문되어 체결되면 잔고가 청산만 되므로 사용자는 청산된 되고 진입이 발생하지 않았다고 판단하게 됩니다. 즉 매수 ---> 매수청산(매도주문)과 매도진입(매도주문) 중 매도진입만 주문 이경우는 사용자문이 시스템 가동중에 주의롤 요하는 부분이입니다. 설정창을 다시 여셨으면 설정확인하고 설정창의 확인버튼 을 누르셔야 합니다. 진입이 정상적으로 주문된 이후에는 주문시작신호는 모든신호로 변경해고 다시 적용해야 합니다. 즐거운 하루되세요 > 바바큰 님이 쓴 글입니다. > 제목 : 문의드립니다. > 아래식으로 실전 매매를 하면 그림의 1번 Crossup에서 Buy 진입후 2번에서 청산만 되고 재진입(Sell)이 이루어 지지 않습니다. Crossup, Crossdown은 조건만족시 포지션이 있을경우 청산과 함께 반대 포지션으로 재진입 하는갓으로 알고있는데 어떤부분이(수식,설정,등) 문제일 수 있는지 문의드립니다. Input : P1(10), P2(60), 시작(070000), 종료(050000); Var : mav1(0), mav2(0); mav1 = Ma(C, P1); mav2 = Ma(C, p2); //시간 if 종료 <= sTime and sTime < 시작 then { if MarketPosition == 1 then{ ExitLong(); } if MarketPosition == -1 then{ ExitShort(); } } //진입 else { if CrossUp(mav1, mav2) Then Buy("Buy"); if CrossDown(mav1, mav2) Then Sell("Sell"); }