커뮤니티

문의드립니다

프로필 이미지
파인애플
2021-08-09 11:14:51.0
2398
글번호 225522
답변완료
아래와 같이 진입신호 청산신호 목표수익신호 3가지 신호로 된 예스스팟 가이드 시스템을 만들고 싶습니다 매수진입신호 신호가격 10틱 위로 매수주문 신호가격 15틱 위로 매도주문(목표수익신호미리주문) 매수목표수익신호 (매수진입신호시 미리 주문했기때문에 아무일없음) 매수청산신호 신호가격 10틱 아래로 매수청산주문 미체결 된 매수목표수익 주문취소 매도진입신호 신호가격 10틱 아래로 매도주문 신호가격 15틱 아래로 매수주문(목표수익신호미리주문) 매도목표수익신호 (매도진입신호시 미리 주문했기때문에 아무일없음) 매도청산신호 신호가격 10틱 위로 매도청산주문 미체결 된 매도목표수익 주문취소 감사합니다
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-08-24 15:02:00.0

안녕하세요 예스스탁입니다. 아래 가이드 참고하셔서 수정보완해 사용하시기 바랍니다. 스크립트 객체설정 차트객체추가 --> 속성에서 객체명은 Chart1, 차트와 아이디 연결 좀옥객체추가 --> 속성에서 객체명은 MarketData1, 차트동일종목으로 지정 계좌객체추가 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정 해외선물과 국내종목이 주문함수의 매개변수가 다릅니다. 해외선물은 지정가 2, 시장가 1 국내종목은 지정가 0, 시장가 1 입니다. 아래수식은 이전문의 내용을 연결해서 해외선물 기준입니다. 만약 국내종목이면 OrderBuy,OrderSell 주문함수의 4번째 매개변수를 2가 아닌 0으로 변경하시면 됩니다. var BEID,BTID,BXID,SEID,STID,SXID; var BENUM,BTNUM,BXNUM,SENUM,STNUM,SXNUM; function Main_OnStart() { Main.MessageList("Start"); } function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { BEID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price + MarketData1.GetTickSize()*10, 2); BTID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price + MarketData1.GetTickSize()*15, 2); } if (Signal.signalKind == 2 ) { if (Signal.name != "StopProfitTarget") { Account1.SetUnfill(BTNUM); if (Account1.Unfill.count > 0 ) { Account1.OrderCancel(BTMUN); } Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { BXID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,Signal.price - MarketData1.GetTickSize()*10, 2) } } } if (Signal.signalKind == 3) { SEID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price - MarketData1.GetTickSize()*10, 2); STID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Signal.count,Signal.price - MarketData1.GetTickSize()*15, 2); } if (Signal.signalKind == 4 ) { if (Signal.name != "StopProfitTarget") { Account1.SetUnfill(STNUM); if (Account1.Unfill.count > 0 ) { Account1.OrderCancel(STMUN); } Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { SXID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,Signal.price + MarketData1.GetTickSize()*15, 2) } } } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BEID) { BENUM = OrderResponse.orderNum; } if (OrderResponse.orderID == BTID) { BTNUM = OrderResponse.orderNum; } if (OrderResponse.orderID == BXID) { BXNUM = OrderResponse.orderNum; } if (OrderResponse.orderID == SEID) { SENUM = OrderResponse.orderNum; } if (OrderResponse.orderID == STID) { STNUM = OrderResponse.orderNum; } if (OrderResponse.orderID == SXID) { SXNUM = OrderResponse.orderNum; } } 즐거운 하루되세요 > 파인애플 님이 쓴 글입니다. > 제목 : 문의드립니다 > 아래와 같이 진입신호 청산신호 목표수익신호 3가지 신호로 된 예스스팟 가이드 시스템을 만들고 싶습니다 매수진입신호 신호가격 10틱 위로 매수주문 신호가격 15틱 위로 매도주문(목표수익신호미리주문) 매수목표수익신호 (매수진입신호시 미리 주문했기때문에 아무일없음) 매수청산신호 신호가격 10틱 아래로 매수청산주문 미체결 된 매수목표수익 주문취소 매도진입신호 신호가격 10틱 아래로 매도주문 신호가격 15틱 아래로 매수주문(목표수익신호미리주문) 매도목표수익신호 (매도진입신호시 미리 주문했기때문에 아무일없음) 매도청산신호 신호가격 10틱 위로 매도청산주문 미체결 된 매도목표수익 주문취소 감사합니다