예스스팟에서 주문 중 일부가 처음 체결 된지 10분이 지난 후에 혹 잔량이 남았을 때 그 잔량을 취소하는 수식 작성법을 알려주시면 감사하겠습니다.
답변 1
예스스탁
예스스탁 답변
2014-08-22 18:27:59
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
1. 주문접수후에 10분뒤 취소이시면 아래내용과 같이 작성하시면 됩니다.
var ID,OrderVol,FillVol;
//매수주문
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
OrderVol = 5;
FillVol = 0;
ID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), OrderVol, MarketData1.current, 0);
}
}
//주문응답
function Main_OnOrderResponse(OrderResponse)
{
if (ID == OrderResponse.orderID)
{
//주문번호 저장
Num = OrderResponse.orderNum;
//타이머셋팅
Main.SetTimer(1, 600000)//600초
}
}
//체결응답
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == Num)
{
FillVol = FillVol + NotifyFill.fillCount;
//누적체결수량이 주문수량과 같으면
//타이머 종료
if (FillVol == OrderVol)
{
Main.KillTimer(1);
}
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//타이머종료
Main.KillTimer(1);
//미체결잔고셋팅
Account1.SetUnfillOrderNumber(Num);
//남은 수량이 있으면 취소주문
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(Num);
}
}
}
2.
일부체결이 된 이후에 10분뒤 취소이시면
아래와 같이 체결응답에서 일부체결 확인하고 타이머를 걸어주시면 됩니다.
var ID,OrderVol,FillVol,FillCnt;
//매수주문
function Chart1_OnRiseSignal(Signal)
{
if (Signal.signalKind == 1)
{
OrderVol = 5;
FillVol = 0;
FillCnt = 0;
ID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), OrderVol, MarketData1.current, 0);
}
}
//주문응답
function Main_OnOrderResponse(OrderResponse)
{
if (ID == OrderResponse.orderID)
{
//주문번호 저장
Num = OrderResponse.orderNum;
}
}
//체결응답
function Main_OnNotifyFill(NotifyFill)
{
if (NotifyFill.orderNum == Num)
{
FillVol = FillVol + NotifyFill.fillCount;
FillCnt = FillCnt+1;
//주문 후 첫 체결시세를 받았는데 일부만 체결되었다면
if (FillCnt == 1 && FillVol < OrderVol)
{
//타이머셋팅
Main.SetTimer(1, 600000)//600초
}
//누적체결수량이 주문수량과 같으면(전량체결)
if (FillVol == OrderVol)
{
Main.KillTimer(1);
}
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//타이머종료
Main.KillTimer(1);
//미체결잔고셋팅
Account1.SetUnfillOrderNumber(Num);
//남은 수량이 있으면 취소주문
if (Account1.Unfill.count > 0)
{
Account1.OrderCancel(Num);
}
}
}
즐거운 하루되세요
> 대가북극곰 님이 쓴 글입니다.
> 제목 : 예스스팟 10분 뒤 매수주문 취소
> 예스스팟에서 주문 중 일부가 처음 체결 된지 10분이 지난 후에 혹 잔량이 남았을 때 그 잔량을 취소하는 수식 작성법을 알려주시면 감사하겠습니다.