예스스탁
예스스탁 답변
2016-05-23 18:17:58
안녕하세요
예스스탁입니다.
스팟을 같이 사용하시려면
시스템은 차트에 시험적용으로 적용하고
스팟에서 모든 주문이 집행되게 하셔야 합니다.
차트에서 주문따로 스팟에서 주문따로 할수가 없습니다.
아래 내용 참고하셔서 주문가격 지정하시기 바랍니다.
스크립트 객체화면설정
차트객체 추가 --> 속성에서 객체명은 Chart1, 차트아이디 연결
종목객체 추가 --> 속성에서 객체명은 MarketData1, 차트와 동일종목으로 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 계좌지정
function Main_OnStart()
{
Main.MessageLog("시작");
T = 0;
}
function Chart1_OnRiseSignal(Signal)
{
//Buy신호 발생
if (Signal.signalKind == 1)
{
T = 1;
//차트종목, 신호수량으로 현재가로 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.current, 0);
}
if (T == 1 && Signal.signalKind == 2)
{
T = 0;
//청산신호별 주문가격지정
if (Signal.name == "StopProfitTarget")//익절은 현재가
Account1.OrderSell(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.current, 0);
else if (Signal.name == "StopLoss") //손절은 시장가
Account1.OrderSell(Main.GetOrderCode(Signal.code), Signal.count, 0, 1);
else//익절이나 손절이 아닌주문은 현재가-1틱
Account1.OrderSell(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.current-MarketData1.GetTickSize(), 0);
}
//Sell신호 발생
if (Signal.signalKind == 3)
{
T = -1;
//차트종목, 신호수량으로 현재가로 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.current, 0);
}
if (T == -1 && Signal.signalKind == 4)
{
T = 0;
//청산신호별 주문가격지정
if (Signal.name == "StopProfitTarget")//익절은 현재가
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.current, 0);
else if (Signal.name == "StopLoss") //손절은 시장가
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Signal.count, 0, 1);
else//익절이나 손절이 아닌주문은 현재가+1틱
Account1.OrderBuy(Main.GetOrderCode(Signal.code), Signal.count, MarketData1.current+MarketData1.GetTickSize(), 0);
}
}
즐거운 하루되세요
> 하우즐영 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 수식작성 게시판에 문의드렸더니 예스스팟을 안내해 주네요.
예스스팟은 처음이어서 설명서를 다운 받아서 보니 잘 이해가
가지 않습니다.
예스트레이더 편집창과 비교해 생소해서 무작정 아래 사항을
부탁드립니다. 하나 작성해 주시면 그걸 기초해서 공부해 나가겠습니다.
예스트레이더도 그렇게 해서 공부한 경험이 있어서요.
자동매매를 진행하면서 슬리피지가 예상외로 커서 고민이 큽니다.
현재 운영하는 시스템이 수익청산은 목표가(지정가)방식이고 손절은 수식에 위한
손절식을 사용하고 있습니다.
현재는 청산시 무조건 체결 시키기 위해서 현재가+-1 방법이나 예스자동정정을
사용하고 있습니다. 그런데 목표가가 0.3 내외밖에 안되는데, 여기서 진입슬리피지
1틱과 청산 슬리피지 1틱을 빼면 0.2밖에 되지 않습니다.
손절식에 위한 손절은 0.3~0.5 사이에서 형성이 됩니다. 승률은 75% 전후입니다.
이게 슬리피지만 아니면 승률이 높아서 꾸준히 하면 수익이 누적이 될텐데
슬리피지 때문에 2번 먹어야 1번 손절하면 무산이 되고 맙니다.
그러다보니 슬리피지를 없애려고 청산을 현재가로 하면 가끔씩 청산이 안되서
손실이 크게 나곤 합니다.
그래서 제가 원하는 것은 목표가 방식은 현재가로, 손절식은 시장가나 현재가+-1
처럼 할 수 있는 방법은 없을까요?
참고로 현재 목표가는 setstopprofitrarget 방식을 쓰고 있습니다.
만약에 목표가 방식 청산식은 a, 손절식은 b로 구분해서
예스스팟으로 청산시에 a는 목표가로, 손절식은 시장가나 현재가+-1
방식으로 부탁드립니다.