커뮤니티

수식문의드립니다

프로필 이미지
쩜상쩜하
2016-12-15 15:40:01
2076
글번호 224064
답변완료
예전에 깔짝 프로그래밍 배운걸로는 아무리 봐도 모르겠네요 그당시도 아니고 10여년이 지나서.. 20틱 차트에서 파라볼릭af0.1 maxAF0.1 상향돌파시 신호나오자마자 -3틱에 바로 주문신호들어가고 체결시 신호가에서+3틱에 바로 청산신호들어가게요 이게 예스랭귀지에서는 신호가 오면 그때 주문이 들어가는거라고하는데 -3틱으로 밀리는 신호가와야 그때서야 주문이 들어간다고하더라구요 반대로 매도 신호가 떠도 같은식으로 신호가 나온후에 5분간 체결이 안되면 취소가 되는함수도부탁드립니다 그외에는 자동으로 바뀌면 청산후 다시 매도도 가능하게요 나름 찾아보고 공부하려고했는데 너무 방대하네요 가이드좀 잘부탁드립니다
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-12-21 16:43:32

안녕하세요 예스스탁입니다. 아래 가이드 내용 참고하셔서 수정보완해 사용하시기 바랍니다. 스크립트 설정 차트객체 --> 객체명 Chart1, 차트와 아이디 연결 종목객체 --> 객체명 MarketData1, 차트와 같은 종목으로 지정 계좌객체 --> 객체명 Account1, 주문낼 계좌번호 지정 var BP,SP,BID,SID,Bnum,Snum; function Chart1_OnRiseSignal(Signal) { //buy신호 발생 if (Signal.signalKind == 1) { //신호가 BP = Signal.price; //신호가 -3틱에 매수주문 BID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, BP-MarketData1.GetTickSize()*3,0); Main.SetTimer(1, 300000);//타이머셋팅-(1번타이머 5분,1초가 1000) } //Sell신호 발생 if (Signal.signalKind == 3) { //신호가 SP = Signal.price; //신호가 +3틱에 매도주문 SID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, BP+MarketData1.GetTickSize()*3,0); Main.SetTimer(2, 300000);//타이머셋팅-(2번타이머 5분,1초가 1000) } } //주문응답수신 function Main_OnOrderResponse(OrderResponse) { //BID와 같은 아이디의 주문응답이면 Bnum에 주문번호 저장 if (OrderResponse.orderID == BID) { BNum = OrderResponse.orderNum; } //SID와 같은 아이디의 주문응답이면 Snum에 주문번호 저장 if (OrderResponse.orderID == SID) { SNum = OrderResponse.orderNum; } } function Main_OnNotifyFill(NotifyFill) { //Bnum과 같은 체결응답이면 if (NotifyFill.orderNum == BNum) { //신호가+3틱으로 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code), NotifyFill.fillCount, BP+MarketData1.GetTickSize()*3,0); } //Snum과 같은 체결응답이면 if (NotifyFill.orderNum == SNum) { //신호가-3틱으로 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), NotifyFill.fillCount, SP-MarketData1.GetTickSize()*3,0); } } function Main_OnTimer(nEventID) { //1번 타이머 동작 if (nEventID == 1) { //1번 타이머 종료 Main.KillTimer(1); //Bnum 주문번호 미체결 객체 셋팅 Account1.SetUnfill(Bnum); //미체결수량이 있으면 if (Account1.Unfill.count > 0) { //Bnum주문번호 취소주문 Account1.OrderCancel(Bnum); } } //2번 타이머 동작 if (nEventID == 2) { //2번 타이머 종료 Main.KillTimer(2); //Snum 주문번호 미체결 객체 셋팅 Account1.SetUnfill(Snum); //미체결수량이 있으면 if (Account1.Unfill.count > 0) { //Snum주문번호 취소주문 Account1.OrderCancel(Snum); } } } 즐거운 하루되세요 > 쩜상쩜하 님이 쓴 글입니다. > 제목 : 수식문의드립니다 > 예전에 깔짝 프로그래밍 배운걸로는 아무리 봐도 모르겠네요 그당시도 아니고 10여년이 지나서.. 20틱 차트에서 파라볼릭af0.1 maxAF0.1 상향돌파시 신호나오자마자 -3틱에 바로 주문신호들어가고 체결시 신호가에서+3틱에 바로 청산신호들어가게요 이게 예스랭귀지에서는 신호가 오면 그때 주문이 들어가는거라고하는데 -3틱으로 밀리는 신호가와야 그때서야 주문이 들어간다고하더라구요 반대로 매도 신호가 떠도 같은식으로 신호가 나온후에 5분간 체결이 안되면 취소가 되는함수도부탁드립니다 그외에는 자동으로 바뀌면 청산후 다시 매도도 가능하게요 나름 찾아보고 공부하려고했는데 너무 방대하네요 가이드좀 잘부탁드립니다