예스스탁
예스스탁 답변
2014-09-12 17:16:45
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
예제와 같이 첫매수는 스팟이 시작할때 발생합니다.
ATM 콜/풋을 매수하고 체결될때 까지 60초 마다 정정하는 식입니다.
var CallID,CallNum;
var PutID, PutNum;
var CallCode, PutCode;
function Main_OnStart()
{
//최초 ATM콜/풋을 매도1호가로 주문
CallCode = Option.GetATMCallRecent(0, 0);
PutCode = Option.GetATMPutRecent(0, 0);
CallID = A1.OrderBuy(CallCode, 1, Option.GetAsk(CallCode, 1), 0);
PutID = A1.OrderBuy(PutCode, 1, Option.GetAsk(PutCode, 1), 0);
}
function Main_OnOrderResponse(OrderResponse)
{
//콜매수 주문응답
if (OrderResponse.orderID == CallID)
{
//주문번호 저장
CallNum = OrderResponse.orderNum;
//타이머 셋팅(1번타이머, 60초)
Main.SetTimer(1, 60000);
}
//풋매수 주문응답
if (OrderResponse.orderID == PutID)
{
//주문번호 저장
PutNum = OrderResponse.orderNum;
//타이머 셋팅(2번타이머,60초)
Main.SetTimer(2, 60000);
}
}
function Main_OnTimer(nEventID)
{
//1번 타이머 동작
if (nEventID == 1)
{
//미체결 셋팅
A1.SetUnfill(CallNum);
//미체결 잔량이 있고 해당종목 매도2호가가 직전 주문가격과 다른면 정정주문
if (A1.Unfill.count > 0 && Option.GetAsk(CallCode, 2) != A1.Unfill.price)
CallID = A1.OrderReplacePrice(CallNum,Option.GetAsk(CallCode, 2));
}
//2번 타이머 동작
if (nEventID == 1)
{
//미체결 셋팅
A1.SetUnfill(PutNum);
//미체결 잔량이 있고 해당종목 매도2호가가 직전 주문가격과 다른면 정정주문
if (A1.Unfill.count > 0 && Option.GetAsk(PutCode, 2) != A1.Unfill.price)
PutID = A1.OrderReplacePrice(PutNum,Option.GetAsk(PutCode, 1));
}
}
function Main_OnNotifyFill(NotifyFill)
{
//콜매수 체결응답 수신되면 1번 타이머 종료
if (NotifyFill.orderNum == CallNum)
Main.KillTimer(1);
//풋매수 체결응답 수신되면 2번 타이머 종료
if (NotifyFill.orderNum == PutNum)
Main.KillTimer(2);
}
즐거운 하루되세요
> 대가북극곰 님이 쓴 글입니다.
> 제목 : 옵션 합성전략 1분뒤 매수정정 주문
> YesSpot 매뉴얼에 예제로 나와 있는 내용인데, 이게 하나의 종목이 아니라,
옵션 합성전략(Ex 스트래들 매수)을 이용하면 수식을 어떻게 변형해야 하는지 알려주시면
감사하겠습니다.
늘 성실한 답변 감사드립니다.