커뮤니티

특정조건 특정시간 특정가격 옵션 현재가 매수

프로필 이미지
좌오비우오비
2024-11-15 09:51:50.0
625
글번호 225965
답변완료
특정조건과 시간대에 콜 0.05 체결이 실시간으로 발생하는 행사가를 찾아서 진입하는 수식을 요청드립니다. 1. 103000 이후 2. 코스피200 선물가격이 시초가 대비 2.5 포인트 마이너스 상태 3. 1,2조건을 동시에 만족하는 상황에서 콜옵션 행사가 중에서 0.05 체결이 실시간으로 발생하면 4. 체결이 발생한 행사가를 찾아서 0.05 콜매수 1개 주문 5. 가격이 0.50 되면 청산 6. endofday 143000 항상 고맙습니다.
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2024-04-18 14:33:03.0

안녕하세요 예스스탁입니다. 스팟수식은 가이드입니다. 아래 가이드 내용 참고하시기 바랍니다. 1 스크립트 객체설정 옵션객체 추가 --> 객체명 Option1, 월물선택 종목객체 추가 --> 객체명 MarketData1, 연결선물로 지정 계좌객체 추가 --> 객체명 Account1, 주문낼 계좌번호 지정 2 영문 업데이트가 게시판 금침어라 중간에 *이 삽입되어 있습니다. * 제거하시고 적용하셔야 합니다. 3 var BuyPrice = 0.05, ExitPrice = 0.5; var StartTime = 103000, EndTime = 142500; var List = [],MK = [],OD = []; var req, Exit, ReqCom; function Main_OnStart() { List = []; for (var i = -Option1.lowersATM; i <= Option1.uppersATM; i++) { List.push(Option1.GetATMCallRecent(i)); } Main.MessageList("콜옵션종목수:",List.length); req = 0; if (List.length > 0) { Main.MessageList("종목객체요청:",req,List.length); Main.ReqMarketData(List[req]); } Exit = false; ReqCom = false; } function Main_OnRcvMarketData(MarketData) { if (List[req] == MarketData.code) { Main.MessageList("종목객체생성:",req,MarketData.code); MK.push(MarketData); OD.push(0); req = req+1; if (req < List.length) { Main.MessageList("종목객체요청:",req,List[req]); var S = Main.ReqMarketData(List[req]); if (S == -1) { Main.SetTimer(1, 15000); Main.MessageList("종목객체생성 제한 --> 15초 뒤 다시 요청:"); } } else { Main.MessageList("종목객체생성완료"); ReqCom = true; } } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); Main.MessageList("종목객체 재요청:",req,List[req]); Main.ReqMarketData(List[req]); } } function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*제거 { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (HHMMSS >= StartTime && HHMMSS < EndTime && MarketData1.current <= MarketData1.open - 2.5 && ReqCom == true && Exit == false && lUp*dateID == 20001 )//*제거 { Main.MessageList(HHMMSS,Exit); for (var i = 0; i < MK.length; i++) { if (OD[i] == 0) { if (MK[i].current == BuyPrice) { OD[i] = 1; Account1.OrderBuy(MK[i].code, 1,MK[i].current,0); } } else { if (MK[i].current == ExitPrice) { OD[i] = 0; Account1.SetBalance(MK[i].code,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(MK[i].code, 1,MK[i].current,0); } } } } } if (HHMMSS >= EndTime && Exit == false) { Main.MessageList(HHMMSS,Exit); Exit = true; //미체결주문수 var UF = Account1.GetTheNumberOfUnfills(); Main.MessageList(HHMMSS,"미체결수",UF); if (UF > 0) { //모든 옵션 미체결 취소 for (var i = 0; i < UF; i++) { Account1.SetUnfill(i) if (Account1.Unfill.code != MarketData1.code && Account1.Unfill.count > 0) { Account1.OrderCancel(Account1.Unfill.orderNum); Main.MessageList(HHMMSS,"OrderCancel",Account1.Unfill.orderNum); } } } //보유종목수 var BB = Account1.GetTheNumberOfBalances() Main.MessageList(HHMMSS,"보유종목수",BB); if (BB > 0) { //잔고의 모든 옵션매수청산 for (var i = 0; i < BB; i++) { Account1.SetBalance(i); if (Account1.Balance.code != MarketData1.code && Account1.Balance.count > 0 && Account1.Balance.position == 2) { //매수3호가로 잔고잔량 매수청산(매도주문) Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,Option1.GetBid(Account1.Balance.code, 5) ,0); Main.MessageList(HHMMSS,"OrderSell",Account1.Balance.code); } } } } } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 문의 > 특정조건과 시간대에 콜 0.05 체결이 실시간으로 발생하는 행사가를 찾아서 진입하는 수식을 요청드립니다. 1. 103000 이후 2. 코스피200 선물가격이 시초가 대비 2.5 포인트 마이너스 상태 3. 1,2조건을 동시에 만족하는 상황에서 콜옵션 행사가 중에서 0.05 체결이 실시간으로 발생하면 4. 체결이 발생한 행사가를 찾아서 0.05 콜매수 1개 주문 5. 가격이 0.50 되면 청산 6. endofday 143000 항상 고맙습니다.
프로필 이미지

좌오비우오비

2024-04-19 14:06:48.0

좌오비우오비 님에 의해 삭제된 답변입니다.