커뮤니티

예스 스팟 관련문의

프로필 이미지
송아지
2012-07-06 16:38:48
3375
글번호 221125
답변완료
다음 식을 수정 부탁드립니다. 한다고 해보는데.... 에러가 나고 안되내요 미리 감사드립니다 ================ /*선물 매수신호시 등가옵션 콜매수 선물 매도 신호시 등가옵션 풋 매수 청산신호시 해당옵션 청산*/ var Start; var BuyC_Code; var BuyP_Code; var SellC_Code; var SellP_Code; function Main::OnStart() { Main.MessageLog("시작"); Start = 0; } function c1::OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); } if (Signal.signalKind == 1)//선물챠트에서 매수신호발생하면 콜 매수 { Start = 1; BuyC_code = Option.GetATMCallRecent(0); var BuyC_price = Option.GetBidByCode(BuyC_Code, 2); A1.OrderBuy(BuyC_Code, vol, BuyC_price, 1); Main.MessageLog("등가콜매수"); } if (Signal.signalKind == 3)//선물챠트에서 매도신호발생하면 풋 매수 { Start = 1; BuyP_code = Option.GetATMPutRecent(0); var BuyP_price = Option.GetBidByCode(BuyP_Code, 2); A1.OrderSell(BuyP_Code, vol, BuyP_price, 1); Main.MessageLog("등가풋매수"); } if (Start = 1 && Signal.signalKind == 2) //선물챠트 매수 청산신호발생하면 콜 매수 청산 { var BxC_price = Option.GetBidByCode(BuyC_Code, 2); A1.OrderSell(BuyC_Code, vol, BxC_price, 1); Main.MessageLog("등가콜청산"); } if (Start = 1 && Signal.signalKind == 4) //선물챠트 매도청산신호발생하면 풋 매수 청산 { var BxP_price = Option.GetBidByCode(BuyP_Code, 2); A1.OrderSell(BuyP_Code, vol, BxP_price, 1); Main.MessageLog("등가풋청산"); } /*장중 청산 없을시 3시 15분 동시호가 청산*/ function getTime4Ending() { var d = new Date(); if ((d.getHours() == 15) && (d.getMinutes() > 11)) return true; else return false; } if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (Signal.signalKind == 1)) { Main.OrderSell(A1.number, Option.GetATMCallRecent(0), 1, 0, 1) } if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (Signal.signalKind == 3)) { Main.OrderSell(A1.number, Option.GetATMPutRecent(0), 1, 0, 1) }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-07-06 17:07:06

안녕하세요 예스스탁입니다. 이벤트 { 실행 } 중괄호에 문제가 있었습니다. 실행해야 할 모든 내용은 이벤트 안에 입력하셔야 합니다. 추가로 시그널종류(Signal.signalKind)는 이벤트 발생시 인지가 되고 휘발성입니다. 그러므로 OnRiseSignal시그널 발생시에 처리되는 내용이 아니라면 변수에 최근 발생한 시그널종류를 저장하고 이용하셔야 합니다. 아래식 참고하시기 바랍니다.' var Start; var BuyC_Code; var BuyP_Code; var SellC_Code; var SellP_Code; var kind; function Main::OnStart() { Main.MessageLog("시작"); Start = 0; } function c1::OnRiseSignal(Signal) { Kind = Signal.signalKind Main.MessageLog("신호완성/"+Signal.signalKind); if (Signal.signalKind == 1)//선물챠트에서 매수신호발생하면 콜 매수 { Start = 1; BuyC_code = Option.GetATMCallRecent(0); var BuyC_price = Option.GetBidByCode(BuyC_Code, 2); A1.OrderBuy(BuyC_Code, vol, BuyC_price, 1); Main.MessageLog("등가콜매수"); } if (Signal.signalKind == 3)//선물챠트에서 매도신호발생하면 풋 매수 { Start = 1; BuyP_code = Option.GetATMPutRecent(0); var BuyP_price = Option.GetBidByCode(BuyP_Code, 2); A1.OrderSell(BuyP_Code, vol, BuyP_price, 1); Main.MessageLog("등가풋매수"); } if (Start = 1 && Signal.signalKind == 2) //선물챠트 매수 청산신호발생하면 콜 매수 청산 { var BxC_price = Option.GetBidByCode(BuyC_Code, 2); A1.OrderSell(BuyC_Code, vol, BxC_price, 1); Main.MessageLog("등가콜청산"); } if (Start = 1 && Signal.signalKind == 4) //선물챠트 매도청산신호발생하면 풋 매수 청산 { var BxP_price = Option.GetBidByCode(BuyP_Code, 2); A1.OrderSell(BuyP_Code, vol, BxP_price, 1); Main.MessageLog("등가풋청산"); } } /*장중 청산 없을시 3시 15분 동시호가 청산*/ function getTime4Ending() { var d = new Date(); if ((d.getHours() == 15) && (d.getMinutes() > 11)) return true; else return false; if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (kind == 1)) { Main.OrderSell(A1.number, Option.GetATMCallRecent(0), 1, 0, 1) } if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (kind == 3)) { Main.OrderSell(A1.number, Option.GetATMPutRecent(0), 1, 0, 1) } } 즐거운 하루되세요 > 송아지 님이 쓴 글입니다. > 제목 : 예스 스팟 관련문의 > 다음 식을 수정 부탁드립니다. 한다고 해보는데.... 에러가 나고 안되내요 미리 감사드립니다 ================ /*선물 매수신호시 등가옵션 콜매수 선물 매도 신호시 등가옵션 풋 매수 청산신호시 해당옵션 청산*/ var Start; var BuyC_Code; var BuyP_Code; var SellC_Code; var SellP_Code; function Main::OnStart() { Main.MessageLog("시작"); Start = 0; } function c1::OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); } if (Signal.signalKind == 1)//선물챠트에서 매수신호발생하면 콜 매수 { Start = 1; BuyC_code = Option.GetATMCallRecent(0); var BuyC_price = Option.GetBidByCode(BuyC_Code, 2); A1.OrderBuy(BuyC_Code, vol, BuyC_price, 1); Main.MessageLog("등가콜매수"); } if (Signal.signalKind == 3)//선물챠트에서 매도신호발생하면 풋 매수 { Start = 1; BuyP_code = Option.GetATMPutRecent(0); var BuyP_price = Option.GetBidByCode(BuyP_Code, 2); A1.OrderSell(BuyP_Code, vol, BuyP_price, 1); Main.MessageLog("등가풋매수"); } if (Start = 1 && Signal.signalKind == 2) //선물챠트 매수 청산신호발생하면 콜 매수 청산 { var BxC_price = Option.GetBidByCode(BuyC_Code, 2); A1.OrderSell(BuyC_Code, vol, BxC_price, 1); Main.MessageLog("등가콜청산"); } if (Start = 1 && Signal.signalKind == 4) //선물챠트 매도청산신호발생하면 풋 매수 청산 { var BxP_price = Option.GetBidByCode(BuyP_Code, 2); A1.OrderSell(BuyP_Code, vol, BxP_price, 1); Main.MessageLog("등가풋청산"); } /*장중 청산 없을시 3시 15분 동시호가 청산*/ function getTime4Ending() { var d = new Date(); if ((d.getHours() == 15) && (d.getMinutes() > 11)) return true; else return false; } if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (Signal.signalKind == 1)) { Main.OrderSell(A1.number, Option.GetATMCallRecent(0), 1, 0, 1) } if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (Signal.signalKind == 3)) { Main.OrderSell(A1.number, Option.GetATMPutRecent(0), 1, 0, 1) }