커뮤니티

해외옵션 관련 에러수정

프로필 이미지
몬스터
2019-07-20 22:41:25
3230
글번호 224930
답변완료
안녕하세요. 아래의 시스템으로 선물 신호를 받아 해외 선물 옵션을 거래하려하는데, 에러가 발생합니다. 에러를 수정해주시면 감사하겠습니다. =============================================================================== /*스크립트시작-----------------------------------------------------*/ var Start; var BuyC1_code; var BuyC2_code; var BuyP1_code; var BuyP2_code; var SellC1_code; var SellC2_code; var SellP1_code; var SellP2_code; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function Chart1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); //Buy 신호발생 if (Signal.signalKind == 1 ) { Start = 1; BuyC2_code = Option.GetATMCallRecent(2,0); //콜 ATM+2 종목코드 BuyP2_code = Option.GetATMPutRecent(2,0); //풋 ATM+2 종목코드 SellP1_code = Option.GetATMPutRecent(0,0); //풋 ATM 종목코드 var BuyC2_price = Option.GetCurrent(BuyC2_code); var BuyP2_price = Option.GetCurrent(BuyP2_code); var SellP1_price = Option.GetCurrent(SellP1_code); var Vol = Signal.count; //신호수량 Account1.OrderBuy(BuyC2_code, Vol*2, BuyC2_price, 1); Account1.OrderBuy(BuyP2_code, Vol*2, BuyP2_price, 1); Account1.OrderSell(SellP1_code, Vol, SellP1_price, 1); Main.MessageLog("상방합성선물매수"); } //매수청산신호 if (Start == 1 && Signal.signalKind == 2 ) { //전체 종목수 var num = Account1.GetTheNumberOfBalances(); //전체 종목 중 옵션만 청산 for(var i = 0 ; i < num ; i++) { //잔고셋팅 Account1.SetBalance(i); //옵션함수로 해당 종목이 옵션인지 확인 if (Option.GetCurrent(Account1.Balance.code) > 0 && Account1.Balance.count > 0) { //종목코드 var cc = Account1.Balance.code; //잔고수량 var vv = Account1.Balance.count; //매도포지션이면 if (Account1.Balance.position == 1) { //청산 Account1.OrderBuy(cc, vv,0,1); } //매수포지션이면 if (Account1.Balance.position == 2) { //청산 Account1.OrderSell(cc, vv,0,1); } } Main.MessageLog("상방합성선물매수청산"); } } //Sell 신호발생 if (Signal.signalKind == 3 ) { Start = 1; BuyC2_code = Option.GetATMCallRecent(2,0); //콜 ATM+2 종목코드 SellC1_code = Option.GetATMCallRecent(0,0); //콜 ATM 종목코드 BuyP2_code = Option.GetATMPutRecent(2,0); //풋 ATM+2 종목코드 var BuyC2_price = Option.GetCurrent(BuyC2_code); var SellC1_price = Option.GetCurrent(SellC1_code); var BuyP2_price = Option.GetCurrent(BuyP2_code); var Vol = Signal.count; //신호수량 Account1.OrderBuy(BuyC2_code, Vol*2, BuyC2_price , 1); Account1.OrderSell(SellC1_code, Vol, SellC1_price , 1); Account1.OrderBuy(BuyP2_code, Vol*2, BuyP2_price, 1); Main.MessageLog("하방합성선물매도"); } //매도청산신호 if (Start == 1 && Signal.signalKind == 4 ) { //전체 종목수 var num = Account1.GetTheNumberOfBalances(); //전체 종목 중 옵션만 청산 for(var i = 0 ; i < num ; i++) { //잔고셋팅 Account1.SetBalance(i); //옵션함수로 해당 종목이 옵션인지 확인 if (Option.GetCurrent(Account1.Balance.code) > 0 && Account1.Balance.count > 0) { //종목코드 var cc = Account1.Balance.code; //잔고수량 var vv = Account1.Balance.count; //매도포지션이면 if (Account1.Balance.position == 1) { //청산 Account1.OrderBuy(cc, vv,0,1); } //매수포지션이면 if (Account1.Balance.position == 2) { //청산 Account1.OrderSell(cc, vv,0,1); } } Main.MessageLog("하방합성선물매도청산"); } } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-07-26 14:39:22

안녕하세요 예스스탁입니다. 올려주신 수식 모의투자로 실행해 봤지만 문법상으로 오류같은 부분은 발생하는 부분이 없습니다. 어떤 오류가 발생하시는지 파악이 되지 않습니다. 즐거운 하루되세요 > 몬스터 님이 쓴 글입니다. > 제목 : 해외옵션 관련 에러수정 > 안녕하세요. 아래의 시스템으로 선물 신호를 받아 해외 선물 옵션을 거래하려하는데, 에러가 발생합니다. 에러를 수정해주시면 감사하겠습니다. =============================================================================== /*스크립트시작-----------------------------------------------------*/ var Start; var BuyC1_code; var BuyC2_code; var BuyP1_code; var BuyP2_code; var SellC1_code; var SellC2_code; var SellP1_code; var SellP2_code; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function Chart1_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); //Buy 신호발생 if (Signal.signalKind == 1 ) { Start = 1; BuyC2_code = Option.GetATMCallRecent(2,0); //콜 ATM+2 종목코드 BuyP2_code = Option.GetATMPutRecent(2,0); //풋 ATM+2 종목코드 SellP1_code = Option.GetATMPutRecent(0,0); //풋 ATM 종목코드 var BuyC2_price = Option.GetCurrent(BuyC2_code); var BuyP2_price = Option.GetCurrent(BuyP2_code); var SellP1_price = Option.GetCurrent(SellP1_code); var Vol = Signal.count; //신호수량 Account1.OrderBuy(BuyC2_code, Vol*2, BuyC2_price, 1); Account1.OrderBuy(BuyP2_code, Vol*2, BuyP2_price, 1); Account1.OrderSell(SellP1_code, Vol, SellP1_price, 1); Main.MessageLog("상방합성선물매수"); } //매수청산신호 if (Start == 1 && Signal.signalKind == 2 ) { //전체 종목수 var num = Account1.GetTheNumberOfBalances(); //전체 종목 중 옵션만 청산 for(var i = 0 ; i < num ; i++) { //잔고셋팅 Account1.SetBalance(i); //옵션함수로 해당 종목이 옵션인지 확인 if (Option.GetCurrent(Account1.Balance.code) > 0 && Account1.Balance.count > 0) { //종목코드 var cc = Account1.Balance.code; //잔고수량 var vv = Account1.Balance.count; //매도포지션이면 if (Account1.Balance.position == 1) { //청산 Account1.OrderBuy(cc, vv,0,1); } //매수포지션이면 if (Account1.Balance.position == 2) { //청산 Account1.OrderSell(cc, vv,0,1); } } Main.MessageLog("상방합성선물매수청산"); } } //Sell 신호발생 if (Signal.signalKind == 3 ) { Start = 1; BuyC2_code = Option.GetATMCallRecent(2,0); //콜 ATM+2 종목코드 SellC1_code = Option.GetATMCallRecent(0,0); //콜 ATM 종목코드 BuyP2_code = Option.GetATMPutRecent(2,0); //풋 ATM+2 종목코드 var BuyC2_price = Option.GetCurrent(BuyC2_code); var SellC1_price = Option.GetCurrent(SellC1_code); var BuyP2_price = Option.GetCurrent(BuyP2_code); var Vol = Signal.count; //신호수량 Account1.OrderBuy(BuyC2_code, Vol*2, BuyC2_price , 1); Account1.OrderSell(SellC1_code, Vol, SellC1_price , 1); Account1.OrderBuy(BuyP2_code, Vol*2, BuyP2_price, 1); Main.MessageLog("하방합성선물매도"); } //매도청산신호 if (Start == 1 && Signal.signalKind == 4 ) { //전체 종목수 var num = Account1.GetTheNumberOfBalances(); //전체 종목 중 옵션만 청산 for(var i = 0 ; i < num ; i++) { //잔고셋팅 Account1.SetBalance(i); //옵션함수로 해당 종목이 옵션인지 확인 if (Option.GetCurrent(Account1.Balance.code) > 0 && Account1.Balance.count > 0) { //종목코드 var cc = Account1.Balance.code; //잔고수량 var vv = Account1.Balance.count; //매도포지션이면 if (Account1.Balance.position == 1) { //청산 Account1.OrderBuy(cc, vv,0,1); } //매수포지션이면 if (Account1.Balance.position == 2) { //청산 Account1.OrderSell(cc, vv,0,1); } } Main.MessageLog("하방합성선물매도청산"); } } }