예스스탁
예스스탁 답변
2021-08-24 15:02:00
안녕하세요
예스스탁입니다.
아래 가이드 참고하셔서 수정보완해 사용하시기 바랍니다.
스크립트 객체설정
차트객체추가 --> 속성에서 객체명은 Chart1, 차트와 아이디 연결
좀옥객체추가 --> 속성에서 객체명은 MarketData1, 차트동일종목으로 지정
계좌객체추가 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정
해외선물과 국내종목이 주문함수의 매개변수가 다릅니다.
해외선물은 지정가 2, 시장가 1
국내종목은 지정가 0, 시장가 1 입니다.
아래수식은 이전문의 내용을 연결해서 해외선물 기준입니다.
만약 국내종목이면 OrderBuy,OrderSell 주문함수의 4번째 매개변수를 2가 아닌 0으로 변경하시면 됩니다.
var BEID,BTID,BXID,SEID,STID,SXID;
var BENUM,BTNUM,BXNUM,SENUM,STNUM,SXNUM;
function Main_OnStart()
{
Main.MessageList("Start");
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
BEID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price + MarketData1.GetTickSize()*10, 2);
BTID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price + MarketData1.GetTickSize()*15, 2);
}
if (Signal.signalKind == 2 )
{
if (Signal.name != "StopProfitTarget")
{
Account1.SetUnfill(BTNUM);
if (Account1.Unfill.count > 0 )
{
Account1.OrderCancel(BTMUN);
}
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
BXID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,Signal.price - MarketData1.GetTickSize()*10, 2)
}
}
}
if (Signal.signalKind == 3)
{
SEID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price - MarketData1.GetTickSize()*10, 2);
STID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price - MarketData1.GetTickSize()*15, 2);
}
if (Signal.signalKind == 4 )
{
if (Signal.name != "StopProfitTarget")
{
Account1.SetUnfill(STNUM);
if (Account1.Unfill.count > 0 )
{
Account1.OrderCancel(STMUN);
}
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
SXID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,Signal.price + MarketData1.GetTickSize()*15, 2)
}
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BEID)
{
BENUM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == BTID)
{
BTNUM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == BXID)
{
BXNUM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == SEID)
{
SENUM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == STID)
{
STNUM = OrderResponse.orderNum;
}
if (OrderResponse.orderID == SXID)
{
SXNUM = OrderResponse.orderNum;
}
}
즐거운 하루되세요
> 파인애플 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 아래와 같이
진입신호
청산신호
목표수익신호
3가지 신호로 된 예스스팟 가이드
시스템을 만들고 싶습니다
매수진입신호
신호가격 10틱 위로 매수주문
신호가격 15틱 위로 매도주문(목표수익신호미리주문)
매수목표수익신호
(매수진입신호시 미리 주문했기때문에 아무일없음)
매수청산신호
신호가격 10틱 아래로 매수청산주문
미체결 된 매수목표수익 주문취소
매도진입신호
신호가격 10틱 아래로 매도주문
신호가격 15틱 아래로 매수주문(목표수익신호미리주문)
매도목표수익신호
(매도진입신호시 미리 주문했기때문에 아무일없음)
매도청산신호
신호가격 10틱 위로 매도청산주문
미체결 된 매도목표수익 주문취소
감사합니다