커뮤니티

수식 테스트 확인 부탁드립니다.

프로필 이미지
회원
2013-06-09 23:51:36
246
글번호 64120
답변완료
1. 미완성신호인 매수, 매도 신호는 잘 나오고 있습니다 그러나 완성신호인 매수청산, 매도청산 신호는 챠트에는 수없이 많이 신호가 나왔으나 예스스팟에는 한번도 나오지 않네요.. 무엇이 원인인지 테스트 부탁드립니다. - 아래 _ var cnt; var BID; var SID; var BXID; var SXID; function Main_OnStart() { Main.MessageLog("시작"); cnt = 0; } //봉완성(시가수신) 카운트 0로 초기화 function Chart1_OnBarAppended(nData) { if (nData == 1) cnt = 0; } //미완성 function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수 if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0) { BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0); //주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가) cnt = 1; Main.MessageList("미완성 매수신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0) { SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가) cnt = 1; Main.MessageList("미완성 매도신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 2 && Chart1.GetOpenContracts() >= 1) { Main.MessageList("완성 매수청산신호 발생"); BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (Signal.signalKind == 4 && Chart1.GetOpenContracts() <= -1) { Main.MessageList("완성 매도청산신호 발생"); SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BID ) { BNUM = OrderResponse.orderNum; Main.SetTimer(1, 60000); } if (OrderResponse.orderID == SID ) { SNUM = OrderResponse.orderNum; Main.SetTimer(2, 60000); } if (OrderResponse.orderID == BXID ) { BXNUM = OrderResponse.orderNum; Main.SetTimer(3, 60000); } if (OrderResponse.orderID == SXID ) { SXNUM = OrderResponse.orderNum; Main.SetTimer(4, 60000); } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); Account1.SetUnfillOrderNumber(BNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 2) { Main.KillTimer(2); Account1.SetUnfillOrderNumber(SNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 3) { Main.KillTimer(3); Account1.SetUnfillOrderNumber(BXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BXNUM); } } if (nEventID == 4) { Main.KillTimer(4); Account1.SetUnfillOrderNumber(SXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(SXNUM); } } }
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2013-06-10 15:07:38

안녕하세요 예스스탁입니다. 예스스팟이 장중에만 테스트가 되어 내일 답변을 드리도록 하겠습니다. 즐거운 하루되세요 > HI_lhj4610 님이 쓴 글입니다. > 제목 : 수식 테스트 확인 부탁드립니다. > 1. 미완성신호인 매수, 매도 신호는 잘 나오고 있습니다 그러나 완성신호인 매수청산, 매도청산 신호는 챠트에는 수없이 많이 신호가 나왔으나 예스스팟에는 한번도 나오지 않네요.. 무엇이 원인인지 테스트 부탁드립니다. - 아래 _ var cnt; var BID; var SID; var BXID; var SXID; function Main_OnStart() { Main.MessageLog("시작"); cnt = 0; } //봉완성(시가수신) 카운트 0로 초기화 function Chart1_OnBarAppended(nData) { if (nData == 1) cnt = 0; } //미완성 function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수 if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0) { BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0); //주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가) cnt = 1; Main.MessageList("미완성 매수신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0) { SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가) cnt = 1; Main.MessageList("미완성 매도신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 2 && Chart1.GetOpenContracts() >= 1) { Main.MessageList("완성 매수청산신호 발생"); BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (Signal.signalKind == 4 && Chart1.GetOpenContracts() <= -1) { Main.MessageList("완성 매도청산신호 발생"); SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BID ) { BNUM = OrderResponse.orderNum; Main.SetTimer(1, 60000); } if (OrderResponse.orderID == SID ) { SNUM = OrderResponse.orderNum; Main.SetTimer(2, 60000); } if (OrderResponse.orderID == BXID ) { BXNUM = OrderResponse.orderNum; Main.SetTimer(3, 60000); } if (OrderResponse.orderID == SXID ) { SXNUM = OrderResponse.orderNum; Main.SetTimer(4, 60000); } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); Account1.SetUnfillOrderNumber(BNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 2) { Main.KillTimer(2); Account1.SetUnfillOrderNumber(SNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 3) { Main.KillTimer(3); Account1.SetUnfillOrderNumber(BXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BXNUM); } } if (nEventID == 4) { Main.KillTimer(4); Account1.SetUnfillOrderNumber(SXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(SXNUM); } } }
프로필 이미지

예스스탁 예스스탁 답변

2013-06-11 09:55:29

안녕하세요 예스스탁입니다. 청산신호가 발생하면 차트상 수량이 0이 되는데 1보다 크거나 작다로 작성해 드려 신호가 발생하지 않았습니다. 수정한 식입니다. var cnt; var BID; var SID; var BXID; var SXID; var Start; function Main_OnStart() { Main.MessageLog("시작"); cnt = 0; Start = 0; } //봉완성(시가수신) 카운트 0로 초기화 function Chart1_OnBarAppended(nData) { if (nData == 1) cnt = 0; } //미완성 function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수 if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0) { BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0); //주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가) cnt = 1; Start = 1; Main.MessageList("미완성 매수신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0) { SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가) cnt = 1; Start = 1; Main.MessageList("미완성 매도신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 2 && Start == 1 ) { Main.MessageList("완성 매수청산신호 발생"); BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (Signal.signalKind == 4 && Start == 1) { Main.MessageList("완성 매도청산신호 발생"); SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BID ) { BNUM = OrderResponse.orderNum; Main.SetTimer(1, 60000); } if (OrderResponse.orderID == SID ) { SNUM = OrderResponse.orderNum; Main.SetTimer(2, 60000); } if (OrderResponse.orderID == BXID ) { BXNUM = OrderResponse.orderNum; Main.SetTimer(3, 60000); } if (OrderResponse.orderID == SXID ) { SXNUM = OrderResponse.orderNum; Main.SetTimer(4, 60000); } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); Account1.SetUnfillOrderNumber(BNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 2) { Main.KillTimer(2); Account1.SetUnfillOrderNumber(SNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 3) { Main.KillTimer(3); Account1.SetUnfillOrderNumber(BXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BXNUM); } } if (nEventID == 4) { Main.KillTimer(4); Account1.SetUnfillOrderNumber(SXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(SXNUM); } } } 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 테스트 확인 부탁드립니다. > 안녕하세요 예스스탁입니다. 예스스팟이 장중에만 테스트가 되어 내일 답변을 드리도록 하겠습니다. 즐거운 하루되세요 > HI_lhj4610 님이 쓴 글입니다. > 제목 : 수식 테스트 확인 부탁드립니다. > 1. 미완성신호인 매수, 매도 신호는 잘 나오고 있습니다 그러나 완성신호인 매수청산, 매도청산 신호는 챠트에는 수없이 많이 신호가 나왔으나 예스스팟에는 한번도 나오지 않네요.. 무엇이 원인인지 테스트 부탁드립니다. - 아래 _ var cnt; var BID; var SID; var BXID; var SXID; function Main_OnStart() { Main.MessageLog("시작"); cnt = 0; } //봉완성(시가수신) 카운트 0로 초기화 function Chart1_OnBarAppended(nData) { if (nData == 1) cnt = 0; } //미완성 function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //차트가 무포지션이거나 매도포지션 상태일 때 Buy미완성신호 발생하면 매수 if (cnt == 0 && IncompleteSignal.signalKind == 1 && Chart1.GetOpenContracts() <= 0) { BID = Account1.OrderBuy(Main.GetOrderCode(IncompleteSignal.code),1,MarketData1.Ask(1),0); //주문수량,주문가격(Ask(1):매도1호가)),가격구분(1:시장가,0:지정가) cnt = 1; Main.MessageList("미완성 매수신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (cnt == 0 && IncompleteSignal.signalKind == 3 && Chart1.GetOpenContracts() <= 0) { SID = Account1.OrderSell(Main.GetOrderCode(IncompleteSignal.code), 1, MarketData1.Bid(1), 0);//주문수량,주문가격,가격구분(1:시장가,0:지정가) cnt = 1; Main.MessageList("미완성 매도신호 발생"); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Chart1_OnRiseSignal(Signal) { if (Signal.signalKind == 2 && Chart1.GetOpenContracts() >= 1) { Main.MessageList("완성 매수청산신호 발생"); BXID = Account1.OrderSell(Main.GetOrderCode(Signal.code), 1, MarketData1.Bid(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } if (Signal.signalKind == 4 && Chart1.GetOpenContracts() <= -1) { Main.MessageList("완성 매도청산신호 발생"); SXID = Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, MarketData1.Ask(1), 0); Main.PlaySound("C:₩예스트레이더₩data₩sound₩alert.wav"); } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BID ) { BNUM = OrderResponse.orderNum; Main.SetTimer(1, 60000); } if (OrderResponse.orderID == SID ) { SNUM = OrderResponse.orderNum; Main.SetTimer(2, 60000); } if (OrderResponse.orderID == BXID ) { BXNUM = OrderResponse.orderNum; Main.SetTimer(3, 60000); } if (OrderResponse.orderID == SXID ) { SXNUM = OrderResponse.orderNum; Main.SetTimer(4, 60000); } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); Account1.SetUnfillOrderNumber(BNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 2) { Main.KillTimer(2); Account1.SetUnfillOrderNumber(SNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BNUM); } } if (nEventID == 3) { Main.KillTimer(3); Account1.SetUnfillOrderNumber(BXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(BXNUM); } } if (nEventID == 4) { Main.KillTimer(4); Account1.SetUnfillOrderNumber(SXNUM); if (Account1.Unfill.count > 0) { Account1.OrderCancel(SXNUM); } } }