예스스탁
예스스탁 답변
2026-02-10 13:29:39
/안녕하세요
예스스탁입니다.
//옵션객체추가 -> 속성에서 객체명 Option1, 종목선택
//종목객체추가 -> 속성에서 객체명 MarketData1, 연결선물종목선택
//계좌객체추가 -> 속성에서 객체명 Account1, 주문낼 계좌 선택
var step,CT;
var 시초가ATM콜, 시초가ATM풋, Sum행사가콜,Sum행사가풋;
var Sum행사가콜저가, Sum행사가풋저가;
function Main_OnStart()
{
step = 1;
Main.MessageList(step,"|시작");
}
function Main_OnUpdateMarket(itemcode, updateID, exchangeKind)
{
if (updateID == 20001 && MarketData1.open > 0 && step == 1)
{
step = 2;
var 시초가ATM = Math.floor(MarketData1.open/2.5)*2.5;
var 시초가ATM차이 = MarketData1.open - 시초가ATM;
if (시초가ATM차이 >= 1.25)
{
시초가ATM = 시초가ATM+2.5;
}
Main.MessageList("|선물시초가:",MarketData1.open,"|시초가ATM",시초가ATM);
시초가ATM콜 = Option1.GetCodeByExercisePrice(0, 시초가ATM);
시초가ATM풋 = Option1.GetCodeByExercisePrice(1, 시초가ATM);
시초가ATM양합 = Option1.GetCurrent(시초가ATM콜)+Option1.GetCurrent(시초가ATM풋);
Main.MessageList("|시가ATM콜:",시초가ATM콜,"|시가ATM풋",시초가ATM풋,"|시초가ATM양합",시초가ATM양합);
var Sum = 시초가ATM+시초가ATM양합;
var Sum행사가 = Math.floor(Sum/2.5)*2.5;
var SumDiff = Sum - Sum행사가;
if (SumDiff >= 1.25)
{
Sum행사가 = Sum행사가+2.5;
}
Sum행사가콜 = Option1.GetCodeByExercisePrice(0, Sum행사가);
Sum행사가풋 = Option1.GetCodeByExercisePrice(1, Sum행사가);
Main.MessageList("|Sum:",Sum,"|Sum행사가:",Sum행사가);
Main.MessageList("|Sum행사가콜:",Sum행사가콜,"|Sum행사가풋:",Sum행사가풋);
var item1= {code:시초가ATM콜, marketKind:CHART_MARKET_CMPLX}
var ChartSet = new ReqChartItem(item1,5,CHART_PERIOD_DAILY,300, CHART_REQCOUNT_BAR, false, false);
var item2 = {code:시초가ATM풋, marketKind:CHART_MARKET_CMPLX}
var item3 = {code:Sum행사가콜, marketKind:CHART_MARKET_CMPLX}
var item4 = {code:Sum행사가풋, marketKind:CHART_MARKET_CMPLX}
var Data2 = new ReqChartItem(item2,5,CHART_PERIOD_DAILY,300,CHART_REQCOUNT_BAR,false,false)
var Data3 = new ReqChartItem(item3,5,CHART_PERIOD_DAILY,300,CHART_REQCOUNT_BAR,false,false)
var Data4 = new ReqChartItem(item4,5,CHART_PERIOD_DAILY,300,CHART_REQCOUNT_BAR,false,false)
var RefSet = new Array(Data2,Data3,Data4);
Main.ReqChartEx(ChartSet, null,null,RefSet);
}
}
function Main_OnRcvChartEx(ChartEx)
{
CT = ChartEx;
step = 3;
Main.SetTimer(1, 10000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
var d = new Date();
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMSS < 132500)
{
Sum행사가콜저가 = Option1.GetLow(Sum행사가콜);
Sum행사가풋저가 = Option1.GetLow(Sum행사가풋);
step = 4;
}
else
{
if (step == 4 && Option1.GetCurrent(Sum행사가콜) < Sum행사가콜저가)
{
step = 5;
Account1.OrderBuy(시초가ATM풋, 1, Option1.GetAsk(시초가ATM풋, 3), 0)
}
if (step == 4 && Option1.GetCurrent(Sum행사가풋) < Sum행사가풋저가)
{
step = 5;
Account1.OrderBuy(시초가ATM콜, 1, Option1.GetAsk(시초가ATM콜, 3), 0)
}
}
Main.MessageList(step, Sum행사가콜저가, Sum행사가풋저가);
}
}
새해 복 많이 받으시고 즐거운 명절 보내시기 바랍니다.