커뮤니티

예트 코드 올립니다.잘못된 주문이 나갑니다. 검토바랍니다.

프로필 이미지
typeb
2025-01-12 00:09:06
500
글번호 187144
답변완료

첨부 이미지

var : vEntryPrice(2232.9), vExitPrice(2345.9), vLossCutPrice(2188.2); // 매수진입부분 if C > vLossCutPrice and C <= vEntryPrice and MarketPosition == 0 Then Buy("매수", AtMarket); // 익절부분. 로직에따라 SetStopProfittarget 사용 if C >= vExitPrice and MarketPosition == 1 Then ExitLong("매수청산", AtMarket); // 손절매. 로직에따라 SetStopLoss 사용 if C <= vLossCutPrice and MarketPosition == 1 Then Sell("손절", AtMarket); 첨부한 1/9 매수가격 일시 이후에 실행했기에 매수는 이루어지지 않았습니다. (eFriend Force 스샷보시면 매수 없습니다) 그런데 첨부한 스샷처럼 1/10 같은 시간에 exitlong과 손절이 됐습니다. 1. MarketPosition이 1일때 주문하도록 조건이 들어갔는데 왜 매도 주문이 나갔을까요? 2. 왜 매도주문이 2개가 같은 시간에 동시에 나갔을까요? 추가 필요한 자료 있으면 올리겠습니다.
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2025-01-13 16:52:31

안녕하세요 예스스탁입니다. Buy는 매수진입, Sell은 매도진입함수입니다. 포지션 진입 후 청산신호만 발생하는 함수는 exitlong,exitshort입니다. 각 진입함수는 무포지션에서 발생하면 지정한 수량으로 진입만하고 반대포지션에서 발생하면 반대포지션을 청산하고 진입하게 됩니다. if C <= vLossCutPrice and MarketPosition == 1 Then Sell("손절", AtMarket); 위 내용은 매수포지션일 때, 종가가 vLossCutPrice값 이하이면 청산하고 매도로 진입하라는 내용이 됩니다. 즉 매도로 스위칭입니다. 청산만 하고자 하시면 exitlong함수를 이용하셔야 합니다. if C <= vLossCutPrice and MarketPosition == 1 Then exitlong("매수손절", AtMarket); 즐거운 하루되세요 > typeb 님이 쓴 글입니다. > 제목 : 예트 코드 올립니다.잘못된 주문이 나갑니다. 검토바랍니다. > var : vEntryPrice(2232.9), vExitPrice(2345.9), vLossCutPrice(2188.2); // 매수진입부분 if C > vLossCutPrice and C <= vEntryPrice and MarketPosition == 0 Then Buy("매수", AtMarket); // 익절부분. 로직에따라 SetStopProfittarget 사용 if C >= vExitPrice and MarketPosition == 1 Then ExitLong("매수청산", AtMarket); // 손절매. 로직에따라 SetStopLoss 사용 if C <= vLossCutPrice and MarketPosition == 1 Then Sell("손절", AtMarket); 첨부한 1/9 매수가격 일시 이후에 실행했기에 매수는 이루어지지 않았습니다. (eFriend Force 스샷보시면 매수 없습니다) 그런데 첨부한 스샷처럼 1/10 같은 시간에 exitlong과 손절이 됐습니다. 1. MarketPosition이 1일때 주문하도록 조건이 들어갔는데 왜 매도 주문이 나갔을까요? 2. 왜 매도주문이 2개가 같은 시간에 동시에 나갔을까요? 추가 필요한 자료 있으면 올리겠습니다.
프로필 이미지

typeb

2025-01-15 10:05:37

알려주신 사항 반영하여 잘 사용하겠습니다 (ExitLong, ExitShort 사용) 그런데 두가지 문의사항 있어 다시 질문 드립니다. 1. if C <= vLossCutPrice and MarketPosition == 1 Then Sell("손절", AtMarket); 이 코드에서 MarketPosion이 1인지 check하는데 위 조건에서는 작동하지 않는것이 맞을까요? 향후 거래 규모를 늘릴때 거래규모에따른 제한 조건이 작동하려면 어찌해야하는지 문의 드립니다. 2.이 부분은 더 이상합니다. // 익절부분. 로직에따라 SetStopProfittarget 사용 if C >= vExitPrice and MarketPosition == 1 Then ExitLong("매수청산", AtMarket); ExitLong이지만 기존 매수분이 없었습니다. 그래서 무포지션이 였는데 위 sell과 exitLong이 모두 작동한겁니다. 참조 자료 확인 부탁드립니다. 예스트레이더로 향후 거래 규모 늘리려는 계획이나 위 부분들이 적용에 너무 큰 부담이 됩니다. 기존 올렸던 자료와 함께 검토 부탁드립니다. 추가 필요자료 있으시면 요청 주십시요. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 예트 코드 올립니다.잘못된 주문이 나갑니다. 검토바랍니다. > 안녕하세요 예스스탁입니다. Buy는 매수진입, Sell은 매도진입함수입니다. 포지션 진입 후 청산신호만 발생하는 함수는 exitlong,exitshort입니다. 각 진입함수는 무포지션에서 발생하면 지정한 수량으로 진입만하고 반대포지션에서 발생하면 반대포지션을 청산하고 진입하게 됩니다. if C <= vLossCutPrice and MarketPosition == 1 Then Sell("손절", AtMarket); 위 내용은 매수포지션일 때, 종가가 vLossCutPrice값 이하이면 청산하고 매도로 진입하라는 내용이 됩니다. 즉 매도로 스위칭입니다. 청산만 하고자 하시면 exitlong함수를 이용하셔야 합니다. if C <= vLossCutPrice and MarketPosition == 1 Then exitlong("매수손절", AtMarket); 즐거운 하루되세요 > typeb 님이 쓴 글입니다. > 제목 : 예트 코드 올립니다.잘못된 주문이 나갑니다. 검토바랍니다. > var : vEntryPrice(2232.9), vExitPrice(2345.9), vLossCutPrice(2188.2); // 매수진입부분 if C > vLossCutPrice and C <= vEntryPrice and MarketPosition == 0 Then Buy("매수", AtMarket); // 익절부분. 로직에따라 SetStopProfittarget 사용 if C >= vExitPrice and MarketPosition == 1 Then ExitLong("매수청산", AtMarket); // 손절매. 로직에따라 SetStopLoss 사용 if C <= vLossCutPrice and MarketPosition == 1 Then Sell("손절", AtMarket); 첨부한 1/9 매수가격 일시 이후에 실행했기에 매수는 이루어지지 않았습니다. (eFriend Force 스샷보시면 매수 없습니다) 그런데 첨부한 스샷처럼 1/10 같은 시간에 exitlong과 손절이 됐습니다. 1. MarketPosition이 1일때 주문하도록 조건이 들어갔는데 왜 매도 주문이 나갔을까요? 2. 왜 매도주문이 2개가 같은 시간에 동시에 나갔을까요? 추가 필요한 자료 있으면 올리겠습니다.