커뮤니티

수식문의드립니다.

프로필 이미지
몬자
2013-04-17 19:34:01
2190
글번호 222324
답변완료
선물 신호로 스팟 옵션주문을 사용합니다. 여기서 제공하는 예제파일로 스팟주문을 사용하는데 반대신호가 나옵니다. 선물 매도신호 - > 풋옵션 매수 (이렇게 나와야 합니다) 그러나 선물 매도신호 - > 풋옵션 매도 (오늘 발생한 주문) 으로 인해 제법 손실을 봤습니다. 초보적인 실력이라 무엇이 잘못된 것인지 모르겠습니다. 부탁드립니다. // 아래는 스팟로직 입니다. var BStart; var SStart; var BuyCallCode; var BuyPutCode; var SellCallCode; var SellPutCode; function Main_OnStart() { Main.MessageLog("시작"); BStart = 0; SStart = 0; } function C1_OnRiseSignal(Signal) { Kind = Signal.signalKind; Main.MessageLog("신호완성/"+Kind); if (Signal.signalKind ==1)//선물차트에서 매수신호발생하면 콜 매수 { BStart = 1; BuyCallCode = Option.GetATMCallRecent(0); var BuyCallPrice = Option.GetBidByCode(BuyCallCode, 2); A1.OrderBuy(BuyCallCode, vol, BuyCallPrice, 0); Main.MessageLog("등가콜매수 : "+BuyCallCode); } if (Signal.signalKind ==3)//선물차트에서 매도신호발생하면 풋 매수 { SStart =1; BuyPutCode = Option.GetATMPutRecent(0); var BuyPutPrice = Option.GetBidByCode(BuyPutCode, 2); A1.OrderSell(BuyPutCode, vol, BuyPutPrice, 0); Main.MessageLog("등가풋매수 : "+BuyPutCode); } if (BStart == 1 && Signal.signalKind == 2)//선물차트 매수 청산신호발생하면 콜 매수 청산 { var BxCallPrice = Option.GetBidByCode(BuyCallCode, 2); A1.OrderSell(BuyCallCode, vol, BxCallPrice, 0); Main.MessageLog("등가콜청산 : "+BuyCallCode); } if (SStart == 1 && Signal.signalKind == 4)//선물차트 매도 청산신호발생하면 풋 매수 청산 { var BxPutPrice = Option.GetBidByCode(BuyPutCode, 2); A1.OrderSell(BuyPutCode, vol, BxPutPrice, 0); Main.MessageLog("등가풋청산 : "+BuyPutCode); } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-04-18 21:50:31

안녕하세요 예스스탁입니다. 주문함수가 반대로 되어 있습니다. 아래는 수정한 식입니다. var BStart; var SStart; var BuyCallCode; var BuyPutCode; var SellCallCode; var SellPutCode; function Main_OnStart() { Main.MessageLog("시작"); BStart = 0; SStart = 0; } function C1_OnRiseSignal(Signal) { Kind = Signal.signalKind; Main.MessageLog("신호완성/"+Kind); //선물차트에서 매수신호발생하면 콜 매수 if (Signal.signalKind ==1) { BStart = 1; BuyCallCode = Option.GetATMCallRecent(0);//ATM콜 종목코드 var BuyCallPrice = Option.GetBidByCode(BuyCallCode, 2);//ATM콜 매수2호가 A1.OrderBuy(BuyCallCode, vol, BuyCallPrice, 0); Main.MessageLog("등가콜매수 : "+BuyCallCode); } //선물차트에서 매도신호발생하면 풋 매수 if (Signal.signalKind ==3) { SStart =1; BuyPutCode = Option.GetATMPutRecent(0);//ATM풋 종목코드 var BuyPutPrice = Option.GetBidByCode(BuyPutCode, 2);//ATM풋 매수 2호가 A1.OrderBuy(BuyPutCode, vol, BuyPutPrice, 0); Main.MessageLog("등가풋매수 : "+BuyPutCode); } if (BStart == 1 && Signal.signalKind == 2)//선물차트 매수 청산신호발생하면 콜 매수 청산 { var BxCallPrice = Option.GetBidByCode(BuyCallCode, 2); A1.OrderSell(BuyCallCode, vol, BxCallPrice, 0); Main.MessageLog("등가콜청산 : "+BuyCallCode); } if (SStart == 1 && Signal.signalKind == 4)//선물차트 매도 청산신호발생하면 풋 매수 청산 { var BxPutPrice = Option.GetBidByCode(BuyPutCode, 2); A1.OrderSell(BuyPutCode, vol, BxPutPrice, 0); Main.MessageLog("등가풋청산 : "+BuyPutCode); } } 위식은 차트에서 매수(buy)신호 발생하면 콜을 매수하고 매도(Sell)신호 발생하면 풋을 매수하는데 각 주문가격이 매수2호가로 되어 있습니다. 각 매수주문시에 매도2호가로 주문하고자 하시면 var BuyCallPrice = Option.GetBidByCode(BuyCallCode, 2);//ATM콜 매수2호가 를 var BuyCallPrice = Option.GetAskByCode(BuyCallCode, 2);//ATM콜 매도2호가 로 변경하시면 되며 var BuyPutPrice = Option.GetBidByCode(BuyPutCode, 2);//ATM풋 매수 2호가 는 var BuyPutPrice = Option.GetAskByCode(BuyPutCode, 2);//ATM풋 매도 2호가 로 변경하시면 됩니다. 즐거운 하루되세요 > 몬자 님이 쓴 글입니다. > 제목 : 수식문의드립니다. > 선물 신호로 스팟 옵션주문을 사용합니다. 여기서 제공하는 예제파일로 스팟주문을 사용하는데 반대신호가 나옵니다. 선물 매도신호 - > 풋옵션 매수 (이렇게 나와야 합니다) 그러나 선물 매도신호 - > 풋옵션 매도 (오늘 발생한 주문) 으로 인해 제법 손실을 봤습니다. 초보적인 실력이라 무엇이 잘못된 것인지 모르겠습니다. 부탁드립니다. // 아래는 스팟로직 입니다. var BStart; var SStart; var BuyCallCode; var BuyPutCode; var SellCallCode; var SellPutCode; function Main_OnStart() { Main.MessageLog("시작"); BStart = 0; SStart = 0; } function C1_OnRiseSignal(Signal) { Kind = Signal.signalKind; Main.MessageLog("신호완성/"+Kind); if (Signal.signalKind ==1)//선물차트에서 매수신호발생하면 콜 매수 { BStart = 1; BuyCallCode = Option.GetATMCallRecent(0); var BuyCallPrice = Option.GetBidByCode(BuyCallCode, 2); A1.OrderBuy(BuyCallCode, vol, BuyCallPrice, 0); Main.MessageLog("등가콜매수 : "+BuyCallCode); } if (Signal.signalKind ==3)//선물차트에서 매도신호발생하면 풋 매수 { SStart =1; BuyPutCode = Option.GetATMPutRecent(0); var BuyPutPrice = Option.GetBidByCode(BuyPutCode, 2); A1.OrderSell(BuyPutCode, vol, BuyPutPrice, 0); Main.MessageLog("등가풋매수 : "+BuyPutCode); } if (BStart == 1 && Signal.signalKind == 2)//선물차트 매수 청산신호발생하면 콜 매수 청산 { var BxCallPrice = Option.GetBidByCode(BuyCallCode, 2); A1.OrderSell(BuyCallCode, vol, BxCallPrice, 0); Main.MessageLog("등가콜청산 : "+BuyCallCode); } if (SStart == 1 && Signal.signalKind == 4)//선물차트 매도 청산신호발생하면 풋 매수 청산 { var BxPutPrice = Option.GetBidByCode(BuyPutCode, 2); A1.OrderSell(BuyPutCode, vol, BxPutPrice, 0); Main.MessageLog("등가풋청산 : "+BuyPutCode); } }