커뮤니티

수식 수정 부탁드립니다.

프로필 이미지
dandy
2016-09-13 10:31:47
157
글번호 101946
답변완료

첨부 이미지

안녕하세요. 당일청산 연결선물 신호로 아래 당일 시가진입식을 예스스팟을 이용 미니선물로 매매시 "가격 제한폭 초과" 진입오류가 발생 합니다. 확인 수정 부탁 드립니다. 감사합니다. 연결선물 진입수식 if NextBarSdate != Sdate and NextBarOpen > C Then Buy("BY",AtMarket); if NextBarSdate != Sdate and NextBarOpen < C Then Sell("SL",AtMarket); 예스스팟수식 //차트에서 신호발생 function Chart1_OnRiseSignal(Signal) { //매수진입신호 발생 if (Signal.signalKind == 1) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } //매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 진입신호 발생 if (Signal.signalKind == 3) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 포지션 청산신호 발생 if (Signal.signalKind == 4) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } }
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2016-09-13 18:55:44

안녕하세요 예스스탁입니다. 해당 메세지는 지정한 가격으로 주문을 접수했는데 해당 가격이 지정한 폭을넘어 발생하는 내용입니다. 만약 주문가격으로 지정한 호가가 없으면 값이 0 되어 범위초과로 됩니다. 아래 수식과 같이 사용해 보시기 바랍니다. 매수주문은 매도1~6 호가 중 가격이 있는 가장 높은 호가를 찾아 주문 매도주문은 매수1~5 호가 중 가격이 있는 가장 낮은 호가를 찾아 주문합니다. 해당 내용으로 적용해 보시고 의도와 다르시면 추석이후에 전화주시기 바랍니다. function Chart1_OnRiseSignal(Signal) { //매수진입신호 발생 if (Signal.signalKind == 1) { //MarketData1종목을 매도5호가로 1계약 매수주문 Main.MessageList("Buy신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5)); var Pr; if (MarketData1.Ask(1) > 0) Pr = MarketData1.Ask(1); if (MarketData1.Ask(2) > 0) Pr = MarketData1.Ask(2); if (MarketData1.Ask(3) > 0) Pr = MarketData1.Ask(3); if (MarketData1.Ask(4) > 0) Pr = MarketData1.Ask(4); if (MarketData1.Ask(5) > 0) Pr = MarketData1.Ask(5); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, Pr, 0); } //매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //MarketData1종목을 매수5호가로 1계약 매도주문 Main.MessageList("Exitlong신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5)); var Pr; if (MarketData1.Bid(1) > 0) Pr = MarketData1.Bid(1); if (MarketData1.Bid(2) > 0) Pr = MarketData1.Bid(2); if (MarketData1.Bid(3) > 0) Pr = MarketData1.Bid(3); if (MarketData1.Bid(4) > 0) Pr = MarketData1.Bid(4); if (MarketData1.Bid(5) > 0) Pr = MarketData1.Bid(5); Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 진입신호 발생 if (Signal.signalKind == 3) { //MarketData1종목을 매수5호가로 1계약 매도주문 Main.MessageList("Sell신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5)); var Pr; if (MarketData1.Bid(1) > 0) Pr = MarketData1.Bid(1); if (MarketData1.Bid(2) > 0) Pr = MarketData1.Bid(2); if (MarketData1.Bid(3) > 0) Pr = MarketData1.Bid(3); if (MarketData1.Bid(4) > 0) Pr = MarketData1.Bid(4); if (MarketData1.Bid(5) > 0) Pr = MarketData1.Bid(5); Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 포지션 청산신호 발생 if (Signal.signalKind == 4) { //MarketData1종목을 매도5호가로 1계약 매수주문 Main.MessageList("ExitShort신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5)); var Pr; if (MarketData1.Ask(1) > 0) Pr = MarketData1.Ask(1); if (MarketData1.Ask(2) > 0) Pr = MarketData1.Ask(2); if (MarketData1.Ask(3) > 0) Pr = MarketData1.Ask(3); if (MarketData1.Ask(4) > 0) Pr = MarketData1.Ask(4); if (MarketData1.Ask(5) > 0) Pr = MarketData1.Ask(5); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } } 즐거운 명절되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식 수정 부탁드립니다. > 안녕하세요. 당일청산 연결선물 신호로 아래 당일 시가진입식을 예스스팟을 이용 미니선물로 매매시 "가격 제한폭 초과" 진입오류가 발생 합니다. 확인 수정 부탁 드립니다. 감사합니다. 연결선물 진입수식 if NextBarSdate != Sdate and NextBarOpen > C Then Buy("BY",AtMarket); if NextBarSdate != Sdate and NextBarOpen < C Then Sell("SL",AtMarket); 예스스팟수식 //차트에서 신호발생 function Chart1_OnRiseSignal(Signal) { //매수진입신호 발생 if (Signal.signalKind == 1) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } //매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 진입신호 발생 if (Signal.signalKind == 3) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 포지션 청산신호 발생 if (Signal.signalKind == 4) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } }
프로필 이미지

예스스탁 예스스탁 답변

2016-09-19 09:40:55

안녕하세요 예스스탁입니다. 주문을 매수는 현재가에 +5틱. 매도는 -5틱이 되게 지정했습니다. function Chart1_OnRiseSignal(Signal) { //매수진입신호 발생 if (Signal.signalKind == 1) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current + MarketData1.GetTickSize()*5, 0); } //매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current - MarketData1.GetTickSize()*5, 0); } //매도 진입신호 발생 if (Signal.signalKind == 3) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current - MarketData1.GetTickSize()*5, 0); } //매도 포지션 청산신호 발생 if (Signal.signalKind == 4) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.current + MarketData1.GetTickSize()*5, 0); } } 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 수정 부탁드립니다. > 안녕하세요 예스스탁입니다. 해당 메세지는 지정한 가격으로 주문을 접수했는데 해당 가격이 지정한 폭을넘어 발생하는 내용입니다. 만약 주문가격으로 지정한 호가가 없으면 값이 0 되어 범위초과로 됩니다. 아래 수식과 같이 사용해 보시기 바랍니다. 매수주문은 매도1~6 호가 중 가격이 있는 가장 높은 호가를 찾아 주문 매도주문은 매수1~5 호가 중 가격이 있는 가장 낮은 호가를 찾아 주문합니다. 해당 내용으로 적용해 보시고 의도와 다르시면 추석이후에 전화주시기 바랍니다. function Chart1_OnRiseSignal(Signal) { //매수진입신호 발생 if (Signal.signalKind == 1) { //MarketData1종목을 매도5호가로 1계약 매수주문 Main.MessageList("Buy신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5)); var Pr; if (MarketData1.Ask(1) > 0) Pr = MarketData1.Ask(1); if (MarketData1.Ask(2) > 0) Pr = MarketData1.Ask(2); if (MarketData1.Ask(3) > 0) Pr = MarketData1.Ask(3); if (MarketData1.Ask(4) > 0) Pr = MarketData1.Ask(4); if (MarketData1.Ask(5) > 0) Pr = MarketData1.Ask(5); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, Pr, 0); } //매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //MarketData1종목을 매수5호가로 1계약 매도주문 Main.MessageList("Exitlong신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5)); var Pr; if (MarketData1.Bid(1) > 0) Pr = MarketData1.Bid(1); if (MarketData1.Bid(2) > 0) Pr = MarketData1.Bid(2); if (MarketData1.Bid(3) > 0) Pr = MarketData1.Bid(3); if (MarketData1.Bid(4) > 0) Pr = MarketData1.Bid(4); if (MarketData1.Bid(5) > 0) Pr = MarketData1.Bid(5); Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 진입신호 발생 if (Signal.signalKind == 3) { //MarketData1종목을 매수5호가로 1계약 매도주문 Main.MessageList("Sell신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Bid(5)); var Pr; if (MarketData1.Bid(1) > 0) Pr = MarketData1.Bid(1); if (MarketData1.Bid(2) > 0) Pr = MarketData1.Bid(2); if (MarketData1.Bid(3) > 0) Pr = MarketData1.Bid(3); if (MarketData1.Bid(4) > 0) Pr = MarketData1.Bid(4); if (MarketData1.Bid(5) > 0) Pr = MarketData1.Bid(5); Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 포지션 청산신호 발생 if (Signal.signalKind == 4) { //MarketData1종목을 매도5호가로 1계약 매수주문 Main.MessageList("ExitShort신호발생",Main.GetOrderCode(MarketData1.code),MarketData1.Ask(5)); var Pr; if (MarketData1.Ask(1) > 0) Pr = MarketData1.Ask(1); if (MarketData1.Ask(2) > 0) Pr = MarketData1.Ask(2); if (MarketData1.Ask(3) > 0) Pr = MarketData1.Ask(3); if (MarketData1.Ask(4) > 0) Pr = MarketData1.Ask(4); if (MarketData1.Ask(5) > 0) Pr = MarketData1.Ask(5); Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } } 즐거운 명절되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식 수정 부탁드립니다. > 안녕하세요. 당일청산 연결선물 신호로 아래 당일 시가진입식을 예스스팟을 이용 미니선물로 매매시 "가격 제한폭 초과" 진입오류가 발생 합니다. 확인 수정 부탁 드립니다. 감사합니다. 연결선물 진입수식 if NextBarSdate != Sdate and NextBarOpen > C Then Buy("BY",AtMarket); if NextBarSdate != Sdate and NextBarOpen < C Then Sell("SL",AtMarket); 예스스팟수식 //차트에서 신호발생 function Chart1_OnRiseSignal(Signal) { //매수진입신호 발생 if (Signal.signalKind == 1) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } //매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 진입신호 발생 if (Signal.signalKind == 3) { //MarketData1종목을 매수5호가로 1계약 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0); } //매도 포지션 청산신호 발생 if (Signal.signalKind == 4) { //MarketData1종목을 매도5호가로 1계약 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0); } }