커뮤니티

수식 질문드립니다.

프로필 이미지
캣피쉬
2022-07-13 15:41:09
1357
글번호 160715
답변완료
예전에 청산식 질문 답변해주신적이 있는데, 추가 질문 드려봅니다. 예스렝기지 시험가동으로 아래의 신호를 받아다가, if stime>=153400 and stime<153500 then { buy(); } 예스스팟에서, k200 선물 + k200 미니선물 두종목 기준으로 현재 포지션을 죄다 청산하고 싶습니다. 구현가능하다면, 수정좀 부탁드립니다. 종종 증거금을 넘어서서 주문이 들어가면 주문거부로 포지션이 꼬이는 경우가 발생해서 꼭 필요할듯합니다. 감사합니다. !! //연계차트에서 신호발생 function Chart1_OnRiseSignal(Signal) { //매수청산신호발생 if (Signal.signalKind == 2 ) { //잔고 종목수 var num = Account1.GetTheNumberOfBalances(); //1종목 이상 if (num > 0) { for (var i = 0; i < num; i++ ) { //종목별로 잔고셋팅 Account1.SetBalance(i); //수량이 1이상이고 매수포지션이고 옵션종목이면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2 && Option1.GetCurrent(Account1.Balance,code) > 0 ) { //매수3호가로 잔고수량 잔량 매도 Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,Option1.GetBid(Account1.Balance,code,3),0) } } } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-07-14 13:28:43

안녕하세요 예스스탁입니다. 종목객체 MarketData1,MarketData2에 KP200연결선물과 KP200미니 연결선물 데이타를 지정하고 아래와 같이 작성해 사용하시면 됩니다. //연계차트에서 신호발생 function Chart1_OnRiseSignal(Signal) { //매수청산신호발생 if (Signal.signalKind == 1) { //잔고 종목수 var num = Account1.GetTheNumberOfBalances(); //1종목 이상 if (num > 0) { for (var i = 0; i < num; i++ ) { //종목별로 잔고셋팅 Account1.SetBalance(i); //수량이 1이상이고 매수포지션이고 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { //잔고종목이 MarketData1 종목이면 if (Account1.Balance.code == Main.GetOrderCode(MarketData1.code)) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,MarketData1.Bid(3),0); } //잔고종목이 MarketData2 종목이면 if (Account1.Balance.code == Main.GetOrderCode(MarketData2.code)) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,MarketData2.Bid(3),0); } } } } } } 즐거운 하루되세요 > 캣피쉬 님이 쓴 글입니다. > 제목 : 수식 질문드립니다. > 예전에 청산식 질문 답변해주신적이 있는데, 추가 질문 드려봅니다. 예스렝기지 시험가동으로 아래의 신호를 받아다가, if stime>=153400 and stime<153500 then { buy(); } 예스스팟에서, k200 선물 + k200 미니선물 두종목 기준으로 현재 포지션을 죄다 청산하고 싶습니다. 구현가능하다면, 수정좀 부탁드립니다. 종종 증거금을 넘어서서 주문이 들어가면 주문거부로 포지션이 꼬이는 경우가 발생해서 꼭 필요할듯합니다. 감사합니다. !! //연계차트에서 신호발생 function Chart1_OnRiseSignal(Signal) { //매수청산신호발생 if (Signal.signalKind == 2 ) { //잔고 종목수 var num = Account1.GetTheNumberOfBalances(); //1종목 이상 if (num > 0) { for (var i = 0; i < num; i++ ) { //종목별로 잔고셋팅 Account1.SetBalance(i); //수량이 1이상이고 매수포지션이고 옵션종목이면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2 && Option1.GetCurrent(Account1.Balance,code) > 0 ) { //매수3호가로 잔고수량 잔량 매도 Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,Option1.GetBid(Account1.Balance,code,3),0) } } } } }