커뮤니티

문의 드립니다.

프로필 이미지
옵티머스
2014-12-16 16:05:50
1653
글번호 223270
답변완료
아래 식 문의드립니다. 종목 : 콜옵션 종목 선택 : 장 시작 시가 기준으로 1.5 포인트에 가장 근사치인 옵션 종목. 진입식 : 9시 00분 30초 양봉 매수, 음봉 매도 청산식 : 9시 01분 청산(매수보유면 매수청산, 매도보유면 매도청산) 3틱 이익 청산 6틱 손실 청산 부탁드립니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-01-13 16:46:25

안녕하세요 예스스탁입니다. 아래 내용 참고하시기 바랍니다. 올려주신 내용 시간을 확인해야 하는데 수식에서 시간은 컴퓨터시간과 종목객체의 수신받는 데이터의 시간 중 하나를 사용해야 합니다. 아래예제에는 종목객체의 시간을 이용합니다. 컴퓨터의 시간은 정확치 않으므로 거래되는 종목은 아니지만 종목객체를 선물로 지정하시고 수신되는 데이터로 시간을 확인해서 옵션종목에 주문되게 작성했습니다. 수식중 게시판 금칙어가 있습니다. 영문 업데이트가 Up*date로 처리가 되어 있습니다 *제거하시기 바랍니다. 스크립트 객체화면 설정 옵션객체 추가 종목객체 추가 --> 객체명 MarketData1, 종목명 연결선물 계좌객체 추가 --> 객체명 Account1 var Entry,Exit,Fill; function Main_OnStart() { Entry = 0; Exit = 0; Fill = 0; if (MarketData1.time > 900300000) { Entry = -1; Exit = -1; } } function Main_OnUp*dateMarket(sItemCode, lUp*dateID) //* 제거 { if (Entry == 0 && MarketData1.open > 0 && MarketData1.time >= 900300000) { Entry = 1; var LL = 9999999; var Code = ""; for (var i = -Option.lowersATM; i <= Option.uppersATM; i++) { if (Math.abs(1.5 - Option.GetCurrent(0,i)) < LL) { LL = Math.abs(1.5 - Option.GetCurrent(0,i)); Code = Option.GetATMCallRecent(i, 0); } } if (LL <9999999 ) { Fill = 0; if (Option.GetCurrent(Code) > Option.GetOpen(Code)) { Entry = 21; ID = Account1.OrderBuy(Code, 1, Option.GetAsk(Code, 5), 0); } if (Option.GetCurrent(Code) < Option.GetOpen(Code)) { Entry = 22; ID = Account1.OrderSell(Code, 1, Option.GetBid(Code, 5), 0); } } } if (Fill > 0 && Exit == 0 && MarketData1.time >= 901000000) { Exit = 1; Account1.SetBalanceItem(Code, 0); if (Entry == 21) { if (Account1.Balance.position == 2) { Account1.OrderSell(Code, 1, Option.GetBid(Code, 5), 0); } } if (Entry == 22) { if (Account1.Balance.position == 1) { Account1.OrderBuy(Code, 1, Option.GetAsk(Code, 5), 0); } } } if (Fill > 0) { Account1.SetBalanceItem(Code, 0) if (Account1.Balance.position == 2 && Entry == 21) { if (Option.GetCurrent(Code) >= Fill+0.03) { Account1.OrderSell(Code, 1, Option.GetBid(Code, 5), 0); } if (Option.GetCurrent(Code) <= Fill-0.06) { Account1.OrderSell(Code, 1, Option.GetBid(Code, 5), 0); } } if (Account1.Balance.position == 1 && Entry == 22) { if (Option.GetCurrent(Code) >= Fill+0.06) { Account1.OrderBuy(Code, 1, Option.GetAsk(Code, 5), 0); } if (Option.GetCurrent(Code) <= Fill-0.03) { Account1.OrderBuy(Code, 1, Option.GetAsk(Code, 5), 0); } } } } function Main_OnOrderResponse(OrderResponse) { if (ID == OrderResponse.orderID && Entry >= 21) Num = OrderResponse.orderNum; } function Main_OnNotifyFill(NotifyFill) { if (Num == NotifyFill.orderNum && Entry >= 21) Fiil = NotifyFill.fillPrice; } 즐거운 하루되세요 > 옵티머스 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 아래 식 문의드립니다. 종목 : 콜옵션 종목 선택 : 장 시작 시가 기준으로 1.5 포인트에 가장 근사치인 옵션 종목. 진입식 : 9시 00분 30초 양봉 매수, 음봉 매도 청산식 : 9시 01분 청산(매수보유면 매수청산, 매도보유면 매도청산) 3틱 이익 청산 6틱 손실 청산 부탁드립니다.