답변완료
수정부탁드려요.
안녕하세요. 2가지 질문드립니다.
1. 아래는 3.0이하의 델타가 0.5근접하는 콜, 풋 종목입니다.
만기주가 아니라면 근월물, 만기주에는 차월물(가격 3.0 이하, 델타0.5)을 주문할 수 있도록
GetRemainDays 또는 GetRemainDaysByCode 함수를 이용하여 수식을 수정 부탁드립니다.
//3.0 이하의 콜옵션종목 찾기
for (var i = -LNum; i <= UNum; i++)
{
if (Option.GetCurrent(0, i) > 1.0 && Option.GetCurrent(0, i) < 3.0 && Option.GetDelta(0,i) != 0)
{
CallPrice[i+LNum] = Math.abs(0.5 - Math.abs(Option.GetDelta(0,i)));
CallCode[i+LNum] = Option.GetATMCallRecent(i);
}
else
{
CallPrice[i+LNum] = 999999;
CallCode[i+LNum] = 999999;
}
}
//3.0 이하의 콜옵션종목중 델타가 0.5에 근접하는 종목 찾기
CC = 999999;
CallOrderCode = 999999;
for (var ii = -LNum; ii <= UNum; ii++)
{
if (CallPrice[ii+LNum] < CC)
{
CC = CallPrice[ii+LNum];
CallOrderCode = CallCode[ii+LNum]
}
}
//3.0 이하의 풋옵션종목 찾기
for (var iii = -UNum; iii <= LNum; iii++)
{
if (Option.GetCurrent(1, iii) > 1.0 && Option.GetCurrent(1, iii) < 3.0 && Option.GetDelta(1,iii) != 0 )
{
PutPrice[iii+UNum] = Math.abs(0.5 - Math.abs(Option.GetDelta(1,iii)));
PutCode[iii+UNum] = Option.GetATMPutRecent(iii);
}
else
{
PutPrice[iii+UNum] = 999999;
PutCode[iii+UNum] = 999999;
}
}
//3.0 이하의 풋옵션종목중 델타가 0.5에 근접하는 종목 찾기
PP = 999999;
PutOrderCode = 999999;
for (var iiii = -UNum; iiii <= LNum; iiii++)
{
if (PutPrice[iiii+UNum] < PP)
{
PP = PutPrice[iiii+UNum];
PutOrderCode = PutCode[iiii+UNum];
}
}
2. 체결을 보장하기위해, 보통은 매도시 매수5호가, 매수시 매도5호가로 주문하고 있는데,
양매도 전략에서는 콜풋 동시에 매도진입시 각각 매도1호가에 지정가 주문후 둘 중 하나가 전량체결되면 나머지 주문은 시장가(또는 상대5호가)로 수정주문.
환매수시에도 마찬가지로 각각 매수1호가에 지정가 주문후 둘 중 하나가 전량체결되면 시장가(또는 상대5호가)로 수정주문할 수 있도록 아래의 수식을 수정부탁드립니다.
Account1.OrderSell(SellCallCode, SellCallCount, Option.GetBidByCode(SellCallCode, 5), 0);
Account1.OrderSell(SellPutCode, SellPutCount, Option.GetBidByCode(SellPutCode, 5), 0);
Account1.OrderBuy(SellCallCode, SellCallCount, Option.GetAskByCode(SellCallCode, 5), 0);
Account1.OrderBuy(SellPutCode, SellPutCount, Option.GetAskByCode(SellPutCode, 5), 0);
2015-05-29
1630
글번호 223492