답변완료
시간별 청산
안녕하세요
다음 수식 수정 부탁드립니다
1) 위크리만기일 14시30분~14시35분 기준으로, 계좌잔고를 체크하여
위크리옵션 잔고가 없다면 계좌의 월물옵션 전량 청산하고,
위크리옵션 잔고가 있다면 2)번 수식으로 진행
2) 위크리만기일 15시30분~15시35분 기준으로 계좌잔고를 체크하여
월물옵션 전량 청산 ---> 위크리 만기일이므로 위크리옵션 잔량은 관련없음
---------------------------
MarketData1 연결선물
Option1 월물옵션
Option2 위크리옵션
function Main_OnStart()
{
if (Option2.GetRemainDays(0,0) == 1)
{
Main.MessageLog("Weekly 만기일 : "+Option2.GetRemainDays(0, 0)+" / 최종청산일");
Main.SetTimer(1, 5000);
}
else
{
Main.MessageLog("Weekly 잔존일 : "+Option2.GetRemainDays(0, 0));
}
}
function Main_OnTimer(nEventID)
{
if (MarketData1.time >= 1430000000 && MarketData1.time <= 1435000000)
{
var num = Account1.GetTheNumberOfBalances();
for (var i = 0; i < num; i++)
{
Account1.SetBalance(i);
if (Account1.Balance.count>0 && Option2.GetCurrent(Account1.Balance.code)==0)
{
if (Account1.Balance.position == 1)
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, Option1.GetAsk(Account1.Balance.code, 5), 0);
}
if (Account1.Balance.position == 2)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, Option1.GetBid(Account1.Balance.code, 5), 0);
}
}
}
}
if (MarketData1.time >= 1530000000 && MarketData1.time <= 1535000000)
{
Main.KillTimer(1);
var num = Account1.GetTheNumberOfBalances();
for (var i = 0; i < num; i++)
{
Account1.SetBalance(i);
if (Account1.Balance.count>0 && Option2.GetCurrent(Account1.Balance.code)>0)
{
if (Account1.Balance.position == 1)
{
Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count, Option1.GetAsk(Account1.Balance.code, 5), 0);
}
if (Account1.Balance.position == 2)
{
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, Option1.GetBid(Account1.Balance.code, 5), 0);
}
}
}
Main.MessageLog("Weekly 월물마감청산 완료");
}
}
감사합니다 !!
2020-01-06
3074
글번호 225131