커뮤니티

신호 문의

프로필 이미지
라떼처럼
2019-08-02 11:21:48
3492
글번호 224944
답변완료
단순히 예스트레이더의 한 전략창의 신호(진입명,청산명)를 받아서 스팟으로 신호명을 이용하여 매매를 하고 싶습니다 예제를 하나주시면 공부하겠습니다 감사합니다
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-08-08 14:39:37

안녕하세요 예스스탁입니다. 아래 내용수식 내용 참고하셔서 수정보완해 사용하시기 바랍니다. 차트에서 신호발생할때 특정이름만 주문을 발생하는 내용입니다. 스크립트 객체설정 계좌객체 추가 --> 객체명 Account1, 주문계좌번호 지정 차트객체 추가 --> 객체명 Chart1, 차트와 아이디 연결 종목객체 추가 --> 객체명 MarketData1, 차트와 같은 종목으로 지정 var : BID,Bnum,SID,Snum; function Main_OnStart() { Main.MessageList("Spot Start"); } function Chart1_OnRiseSignal(Signal) { //차트에서 매수신호 발생하고 이름이 "매수1" 이면 if (Signal.signalKind == 1 && Signal.name == "매수1") { Main.MessageList("Buy신호 발생"); //매도3호가로 매수주문 후 주문아이디를 BID에 저장 BID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 2); } //차트에서 매수청산신호 발생하고 이름이 "매수청산1" 이면 if (Signal.signalKind == 2 && Signal.name == "매수청산1") { //Bnum주문번호 미체결 셋팅 Account1.SetUnfill(Bnum); //미체결이 있으면] if (Account1.Unfill.count > 0) { //취소 Account1.OrderCancel(Bnum); } //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); //매수포지션 수량이 있으면 전량 매수3호가로 청산(매도주문) if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,MarketData1.Bid(3),2); } } //차트에서 매도신호 발생하고 이름이 "매도1" 이면 if (Signal.signalKind == 3 && Signal.name == "매도1") { Main.MessageList("Sell신호 발생"); //매수3호가로 매도주문 후 주문아이디를 SID에 저장 SID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 2); } //차트에서 매도청산신호 발생하고 이름이 "매도청산1" 이면 if (Signal.signalKind == 4 && Signal.name == "매도청산1") { //Snum주문번호 미체결 셋팅 Account1.SetUnfill(Snum); //미체결이 있으면] if (Account1.Unfill.count > 0) { //취소 Account1.OrderCancel(Snum); } //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); //매도포지션 수량이 있으면 전량 매수3호가로 청산(매수주문) if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code, Account1.Balance.count,MarketData1.Ask(3),0); } } } function Main_OnOrderResponse(OrderResponse) { //주문응답 아이디가 BID와 같으면 if (OrderResponse.orderID == BID) { //주문이 정상접수 됐으면 Bnum에 주문번호 저장 if (OrderResponse.isNormal == true) { Bnum = OrderResponse.orderNum; } } //주문응답 아이디가 SID와 같으면 Snum에 주문번호 저장 if (OrderResponse.orderID == SID) { //주문이 정상접수 됐으면 Snum에 주문번호 저장 if (OrderResponse.isNormal == true) { Snum = OrderResponse.orderNum; } } } 즐거운 하루되세요 > 라떼처럼 님이 쓴 글입니다. > 제목 : 신호 문의 > 단순히 예스트레이더의 한 전략창의 신호(진입명,청산명)를 받아서 스팟으로 신호명을 이용하여 매매를 하고 싶습니다 예제를 하나주시면 공부하겠습니다 감사합니다