커뮤니티
옵션 종목 자동으로 불러오기
2026-02-05 16:03:46
100
글번호 230374
안녕하세요.
제가 지금 차트에
주종목을 연결선물챠트로 열고
참조 종목을 위클리 콜옵션 등가에서 5섯 행사가 불러오고
위클리 풋옵션 등가에서 5섯 행사가 불러오고 있습니다.
장중에 등락이 심할경우 등가가 바뀌기 때문에
등가가 2호가 이상 바뀌면 다시 위클리 콜옵션과 풋옵션을 다시 불러 옵니다.
이렇게 수동으로 불러와서 번거러워서
이걸 예스스팟에서 자동으로 옵션을 불러오는 방법이 있을까요
그리고 월요일물과 목요일물이 바뀌는것도 자동으로 바뀌게 가능할까요?
예스스팟을 사용해 본적이 없어서 자세한 설명 부탁 드립니다.
답변 2
예스스탁 예스스탁 답변
2026-02-12 15:36:55
안녕하세요
예스스탁입니다.
1
일반 전략실행차트의 종목을 스팟으로 변경이 가능하지 않습니다.

2
스팟에서 종목을 지정해 차트를 생성하고 사용은 가능하지만
데이터를 확인할 수 있는 간이 차트로만 표시됩니다.
예스스팟 화면에서 보기버튼을 클릭해 열어보실 수 있습니다.
다만 이 차트도 종목을 선정해서 만들면 종목을 변경할 수는 없어서
방법이라면 삭제하고 새로운 차트로 다시 만들고 해야하는데
새로운 차트를 만들면 위 보기버튼을 클릭해 다시 열어주셔야 합니다.
만약 위 형태로 사용을 하고자 하시면
다음주 연휴 이후에 전화를 주시기 바랍니다.
02-3453-1060
새해 복 많이 받으시고 즐거운 명절 보내시기 바랍니다.
예스스탁 예스스탁 답변
2026-02-13 14:27:32
안녕하세요
예스스탁입니다.
아래식 예제수식 참고하시기 바랍니다.
Monthly와 weekly 중에 만기일이 가장 상품을 선택애서
ATM기준으로 차트를 생성하고 ATM이 2단계 변경되면
삭제하고 새로 차트를 생성합니다.
스크립트 객체화면
옵션객체추가 -> 객체명 Option1, 코스피200 옵션으로 지정
옵션객체추가 -> 객체명 Option2, (M)코스피200 Weekly옵션으로 지정
옵션객체추가 -> 객체명 Option3, (T)코스피200 Weekly옵션으로 지정
var ATM변경 = 2; //2행사가 변경
var OP,ATM,CT;
var F;
var C1,C2,C3,C4,C5;
var P1,P2,P3,P4,P5;
function Main_OnStart()
{
var D1 = Option1.GetRemainDays(0, 0);
var D2 = Option2.GetRemainDays(0, 0);
var D3 = Option3.GetRemainDays(0, 0);
Main.MessageList("Month",D1);
Main.MessageList("Week월",D2);
Main.MessageList("Week목",D3);
OP = 1;
if (D2 < D1)
OP = 2;
if (D3 < D1)
OP = 3;
ATM = 0;
Main.MessageList("OP",OP);
Main.SetTimer(1,5000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
var Change = false;
if (OP == 1)
{
curATM = Option1.GetExercisePrice(0,2);
if (curATM >= ATM+(2.5*ATM변경) || curATM <= ATM-(2.5*ATM변경))
{
Main.MessageList("ATM변경",curATM,ATM);
ATM = curATM;
Change = true;
F = "00000000";
C1 = Option1.GetCodeByExercisePrice(0,ATM);
C2 = Option1.GetCodeByExercisePrice(0,ATM+2.5);
C3 = Option1.GetCodeByExercisePrice(0,ATM+5.0);
C4 = Option1.GetCodeByExercisePrice(0,ATM+7.5);
C5 = Option1.GetCodeByExercisePrice(0,ATM+10.0);
P1 = Option1.GetCodeByExercisePrice(1,ATM);
P2 = Option1.GetCodeByExercisePrice(1,ATM-2.5);
P3 = Option1.GetCodeByExercisePrice(1,ATM-5.0);
P4 = Option1.GetCodeByExercisePrice(1,ATM-7.5);
P5 = Option1.GetCodeByExercisePrice(1,ATM-10.0);
Main.MessageList("OP1",C1,C2,C3,C4,C5);
Main.MessageList("OP1",P1,P2,P3,P4,P5);
}
}
if (OP == 2)
{
curATM = Option2.GetExercisePrice(0,2);
if (curATM >= ATM+(2.5*ATM변경) || curATM <= ATM-(2.5*ATM변경))
{
Main.MessageList("ATM변경",curATM,ATM,ATM+2.5,ATM+5.0,ATM+7.5);
ATM = curATM;
Change = true;
F = "00000000";
C1 = Option2.GetCodeByExercisePrice(0,ATM);
C2 = Option2.GetCodeByExercisePrice(0,ATM+2.5);
C3 = Option2.GetCodeByExercisePrice(0,ATM+5.0);
C4 = Option2.GetCodeByExercisePrice(0,ATM+7.5);
C5 = Option2.GetCodeByExercisePrice(0,ATM+10.0);
P1 = Option2.GetCodeByExercisePrice(1,ATM);
P2 = Option2.GetCodeByExercisePrice(1,ATM-2.5);
P3 = Option2.GetCodeByExercisePrice(1,ATM-5.0);
P4 = Option2.GetCodeByExercisePrice(1,ATM-7.5);
P5 = Option2.GetCodeByExercisePrice(1,ATM-10.0);
Main.MessageList("OP2",C1,C2,C3,C4,C5);
Main.MessageList("OP2",P1,P2,P3,P4,P5);
}
}
if (OP == 3)
{
curATM = Option3.GetExercisePrice(0,2);
if (curATM >= ATM+(2.5*ATM변경) || curATM <= ATM-(2.5*ATM변경))
{
Main.MessageList("ATM변경",curATM,ATM);
ATM = curATM;
Change = true;
F = "00000000";
C1 = Option3.GetCodeByExercisePrice(0,ATM);
C2 = Option3.GetCodeByExercisePrice(0,ATM+2.5);
C3 = Option3.GetCodeByExercisePrice(0,ATM+5.0);
C4 = Option3.GetCodeByExercisePrice(0,ATM+7.5);
C5 = Option3.GetCodeByExercisePrice(0,ATM+10.0);
P1 = Option3.GetCodeByExercisePrice(1,ATM);
P2 = Option3.GetCodeByExercisePrice(1,ATM-2.5);
P3 = Option3.GetCodeByExercisePrice(1,ATM-5.0);
P4 = Option3.GetCodeByExercisePrice(1,ATM-7.5);
P5 = Option3.GetCodeByExercisePrice(1,ATM-10.0);
Main.MessageList("OP3",C1,C2,C3,C4,C5);
Main.MessageList("OP3",P1,P2,P3,P4,P5);
}
}
if (Change == true)
{
if (CT != null)
{
var a = Main.RemoveObject(CT);
Main.MessageList("차트삭제:",a);
}
Main.MessageList(C1,C2,C3,C4,C5);
Main.MessageList(P1,P2,P3,P4,P5);
//기본종목셋팅(연결선물 주간장,5분 5000개, 갭보정안함, 수정주가처리 안함)
var data1 = new ReqChartItem(F,5,CHART_PERIOD_MINUTE, 5000, CHART_REQCOUNT_BAR, false, false);
//참조데이터 셋팅(ReqChartItem를 이용해 종목과 주기등지정)
//data2종목
var Data2 = new ReqChartItem(C1,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data3종목
var Data3 = new ReqChartItem(C2,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data3종목
var Data4 = new ReqChartItem(C3,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data4종목
var Data5 = new ReqChartItem(C4,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data5종목
var Data6 = new ReqChartItem(C5,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data6종목
var Data7 = new ReqChartItem(P1,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data7종목
var Data8 = new ReqChartItem(P2,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data8종목
var Data9 = new ReqChartItem(P3,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data9종목
var Data10 = new ReqChartItem(P4,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//data10종목
var Data11 = new ReqChartItem(P5,5,CHART_PERIOD_MINUTE,5000,CHART_REQCOUNT_BAR,false,false)
//참조 데이터는 복수로 지정이 가능하므로 Array에 담아 지정
var RefSet = new Array(Data2,Data3,Data4,Data5,Data6,Data7,Data8,Data9,Data10,Data11);
//차트 셋팅 제외하고 시스템,자표, 참조데이터는 생략가능, 생략하면 null로 지정
var A = Main.ReqChartEx(data1, null, null, RefSet);
Main.MessageList("차트재생성",A);
}
}
}
function Main_OnRcvChartEx(ChartEx)
{
CT = ChartEx;
}
새해 복 많이 받으시고 즐거운 명절 보내시기 바랍니다.
이전글