안녕하세요. 항상 감사드립니다.
예스스팟을 사용해본적 없는 초보라서 기본적인 예제를 부탁드립니다.
전략실행차트명을 "T1"이라고 설정하고
이걸 예스스팟으로 주문내는 방법을 예제로 부탁드립니다.
답변 1
예스스탁
예스스탁 답변
2021-02-26 16:58:17
안녕하세요
예스스탁입니다.
아래 가이스식 참고하셔서 수정보완해 사용하시기 바랍니다.
차트에서 진입신호 발생하면 주문하고
청산시 진입에 미체결 수량이 있으면 취소하고 잔고에 있는 수량만큼만 청산주문이 실행됩니다.
스크립트 객체화면 설정
차트객체 Chart1, 속성에서 시스템이 적용된 차트와 동일아이디 부여
계좌객체 Account1 , 주문낼 계좌번호
종목객체 MarketData1, 차트와 동일종목으로 지정
var BID,SID,BNum,SNum;
function Main_OnStart()
{
Main.MessageList("Start")
}
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
BID = Account1.OrderBuy(Main.GetOrderCode(Signal.code),2,MarketData1.Bid(1),0);
}
if (Signal.signalKind == 2)
{
Account1.SetUnfill(BNum);
if ( Account1.Unfill.count > 0 )
{
Account1.OrderCancel(Bnum);
}
Account1.SetBalance(Main.GetOrderCode(Signal.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
Account1.OrderSell(Main.GetOrderCode(Signal.code),Account1.Balance.count,MarketData1.Ask(1),0)
}
}
if (Signal.signalKind == 3)
{
SID = Account1.OrderSell(Main.GetOrderCode(Signal.code),2,MarketData1.Ask(1),0);
}
if (Signal.signalKind == 4)
{
Account1.SetUnfill(SNum);
if ( Account1.Unfill.count > 0)
{
Account1.OrderCancel(Snum);
}
Account1.SetBalance(Main.GetOrderCode(Signal.code), 0);
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
Account1.OrderBuy(Main.GetOrderCode(Signal.code),Account1.Balance.count,MarketData1.Bid(1),0)
}
}
}
function Main_OnOrderResponse(OrderResponse)
{
if (OrderResponse.orderID == BID)
{
BNum = OrderResponse.orderNum;
}
if (OrderResponse.orderID == SID)
{
SNum = OrderResponse.orderNum;
}
}
즐거운 하루되세요
> 탄탄시스템 님이 쓴 글입니다.
> 제목 : 시스템문의
> 안녕하세요. 항상 감사드립니다.
예스스팟을 사용해본적 없는 초보라서 기본적인 예제를 부탁드립니다.
전략실행차트명을 "T1"이라고 설정하고
이걸 예스스팟으로 주문내는 방법을 예제로 부탁드립니다.