커뮤니티

예스스팟 문의

프로필 이미지
송아지
2012-07-06 10:18:34
3469
글번호 221118
답변완료

첨부 이미지

안녕하세요? 먼저 감사드리며 예스스팟 제대로 작성된것인지 확인부탁드립니다. 1.c1 선물차트에서 매수신호나오면 등가 풋 매도 1계약, 매도신호나오면 등가콜 1계약 매도 2.청산신호나오면 청산하는 로직입니다. 3.시험적용 해봐도 되는것인지 알수가 없어서요(시험적용하면 예스스팟 모니터에 검정색 네모 아이콘상태임다) ================= function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 1) then { Main.OrderSell(A1.number, Option.GetATMPutRecent(0), 1, 0, 1); } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 3) then { Main.OrderBuy(A1.number, Option.GetATMCallRecent(0), 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 2) then { Main.OrderBuy(A1.number, Option.GetATMPutRecent(0), 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 4) then { Main.OrderSell(A1.number, Option.GetATMCallRecent(0), 1, 0, 1) } } ==============================
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-07-06 14:16:08

안녕하세요 예스스탁입니다. 작성하신 스팟전략 내용에 한가지 문제가 있습니다. 예를들면, 매수신호(buy)신호가 발생했을때 ATM등가풋으로 신호를 발생하면 청산신호(exitlong)신호가 발생했을때 진입종목과 같은 종목이 청산되어야 하는데 청산신호(exitlong)신호가 발생했을때의 atm등가풋은 다른 종목일 수 있습니다. 그러므로 진입신호가 발생했을때 주문종목을 저장하여 청산신호시 사용하셔야 합니다. 아래와 같이 변수를 전역변수로 지정하시고 진입시 ATM등가 종목의 종목코드를 저장해 사용하시면 됩니다. 스팟도움말에 예제중에 합성선물전략 보시면 진입시 종목코드 저장해 청산신호시에 사용하는 내용이 있습니다. var Buyentry; var SellEntry; function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 1) then { Buyentry = Option.GetATMPutRecent(0); Main.OrderSell(A1.number, Buyentry, 1, 0, 1); } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 3) then { SellEntry = Option.GetATMCallRecent(0); Main.OrderBuy(A1.number,SellEntry, 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 2) then { Main.OrderBuy(A1.number,Buyentry, 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 4) then { Main.OrderSell(A1.number, SellEntry, 1, 0, 1) } } 스팟전략은 충분히 테스트 후에 사용하셔야 합니다. 아래와 같이 주문함수 대신에 MessageLog를 이용해서 디버깅창에 신호발생시 메세지를 출력해 보시면서 식을 검증하시기 바랍니다. var Buyentry; var SellEntry; function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 1) then { Buyentry = Option.GetATMPutRecent(0); Main.MessageLog("Buy :"+Buyentry) //Main.OrderSell(A1.number, Buyentry, 1, 0, 1); } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 3) then { SellEntry = Option.GetATMCallRecent(0); Main.MessageLog("Sell :" +SellEntry) //Main.OrderBuy(A1.number,SellEntry, 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 2) then { Main.MessageLog("ExitLong :"+Buyentry) //Main.OrderBuy(A1.number,Buyentry, 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 4) then { Main.MessageLog("ExitShort :"+SellEntry) //Main.OrderSell(A1.number, SellEntry, 1, 0, 1) } } 즐거운 하루되세요 > 송아지 님이 쓴 글입니다. > 제목 : 예스스팟 문의 > 안녕하세요? 먼저 감사드리며 예스스팟 제대로 작성된것인지 확인부탁드립니다. 1.c1 선물차트에서 매수신호나오면 등가 풋 매도 1계약, 매도신호나오면 등가콜 1계약 매도 2.청산신호나오면 청산하는 로직입니다. 3.시험적용 해봐도 되는것인지 알수가 없어서요(시험적용하면 예스스팟 모니터에 검정색 네모 아이콘상태임다) ================= function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 1) then { Main.OrderSell(A1.number, Option.GetATMPutRecent(0), 1, 0, 1); } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 3) then { Main.OrderBuy(A1.number, Option.GetATMCallRecent(0), 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 2) then { Main.OrderBuy(A1.number, Option.GetATMPutRecent(0), 1, 0, 1) } } function c1::OnRiseSignal(Signal) { if (Signal.signalKind == 4) then { Main.OrderSell(A1.number, Option.GetATMCallRecent(0), 1, 0, 1) } } ==============================