커뮤니티

안녕하세요

프로필 이미지
1000djr
2026-02-04 14:16:40
75
글번호 230325
답변완료

안녕하세요 오랜만에 왔습니다

옵션을 다시 하려고 하는데  잘 안되서 도움을 받고자 이렇게 글을 올려봅니다


옵션의 진입 행사가 구하기

아침 8시45분 선물기준 등가콜풋을 추출

그두등가옵션 시가를 합한 양합구하기등가기준 행사가를 찾는다(예를 들면 선물이 781.30이다 이러면 증권사에서 지정하는 등가 기준 양합  콜이 등가가780이면 콜 시가는 12.50 풋780시가는 13.50 이러면 두개를 더한합 16 그러면 등가 기준780+16=796 그러니까 796이란 행사가는 없으니 795나 797두행사가의 저가를 저장

그다음 9시10분 기준 등가 기준 옵션의 등가 기준 저가를 깨는놈 반대쪽으로 포지션 구축 단 먼저 구했던 변동폭(16) 기준 행사가 콜풋을 진입 이런식으로 전략을 짜려고 합니다


전일 중심구하기

1전일 주야통합 고가,저가, 종가,가져오며 전일 중심기록

2 전일 중심을 (고가+저가)/2 하나랑(고가+저가+종가)/2


지표추가

1.60분봉 adx 추가 스톡캐스틱 추가



너무너무 감사합니다

답변 2
프로필 이미지

예스스탁 예스스탁 답변

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행사가풋저가); } } 새해 복 많이 받으시고 즐거운 명절 보내시기 바랍니다.
프로필 이미지

1000djr

2026-02-10 14:36:02

항상 친절하게 상담해주시고 도움주셔서 감사합니다 늘 행복하세요
새해 복 많이 받으시고 즐거운 명절 보내세요