커뮤니티

미완성신호 주문

프로필 이미지
새로운세상
2015-06-03 08:24:36
1557
글번호 223485
답변완료
안녕하세요~ 다음 내용과 같이 수식 변경 부탁드립니다. -------------------- < 현재 수식 내용 > 1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우 2) 매수신호시 : 현재가격이 시초가-0.3 의 가격에 도달하면 5호가 매수 매도신호시 : 현재가격이 시초가+0.3 의 가격에 도달하면 5호가 매도 3) 변수 incompleteN, BuyID, BuyFill, SellID, SellFill function Main_OnStart() { Main.MessageLog("시작"); incompleteN = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //09시52초 이전 if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000) { if (incompleteN == 0 && IncompleteSignal.signalKind == 1 && MarketData1.current <= MarketData1.open-0.3) //시초가대비 0.3이상 하락하면 5호가 매수 { BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Ask(5),0); incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정 BuyFill = 0; } if (incompleteN == 0 && IncompleteSignal.signalKind == 3 && MarketData1.current >= MarketData1.open+0.3) //시초가대비 0.3이상 상승하면 5호가 매도 { SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Bid(5),0); incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정 SellFill = 0; } } < 변경요청 내용 > 1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우 2) 위의 방식은 atlimit의 개념이어서 다음과 같이 선주문 방식으로 변경 --> 미완성신호가 발생하는 즉시 매수신호시 : 시초가-0.3 에 주문 매도신호시 : 시초가+0.3 에 주문 --> 주문체결이 되면 incompleteN = 1; (체결이 안되면 0 유지) 3) 주어진 09:00:52 까지 2)의 주문이 미체결시, 09:00:54 해당주문 5호가로 정정 (즉, incompleteN = 1 이 아니면 5호가 정정주문) 4) 기존 변수는 다른 수식과 연관되어 있어 그대로 사용 //미완성신호 선주문 ..... ... ....... //09시54초 --> 09시52초까지 미체결시 if (MarketData1.time >= 0900540000 && 미완성신호 Buy주문 미체결시) { 해당 매수주문 5호가 정정 } if (MarketData1.time >= 0900540000 && 미완성신호 Sell주문 미체결시) { 해당 매도주문 5호가 정정 } ------------------------- 이상입니다. 그럼 활기찬 시간되시기를 바라며, 감사합니다 !!
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-06-03 19:15:00

안녕하세요 예스스탁입니다. 영문 업데이트에 *가 있습니다. 제거하시기 바랍니다. var BuyID,SellID,BuyNum,SellNum; var incompleteN; var Sig; function Main_OnStart() { Main.MessageLog("시작"); incompleteN = 0; Sig = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //09시52초 이전 if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000) { if (Sig == 0 && incompleteN == 0 && IncompleteSignal.signalKind == 1 ) { BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.open-0.3,0); incompleteN = 0; BuyFill = 0; Sig = 1; } if (Sig == 0 && incompleteN == 0 && IncompleteSignal.signalKind == 3 ) { SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.open+0.3,0); incompleteN = 0; SellFill = 0; Sig = -1; } } } function Main_OnOrderResponse(OrderResponse) { if (BuyID == OrderResponse.orderID) { BuyNum = OrderResponse.orderNum; } if (SellID == OrderResponse.orderID) { SellNum = OrderResponse.orderNum; } } function Main_OnNotifyFill(NotifyFill) { if (NotifyFill.orderNum == BuyNum) { incompleteN = 1; } if (NotifyFill.orderNum == BuyNum) { incompleteN = 1; } } function Main_OnUp*dateMarket(sItemCode, lUp*dateID) { if (lUp*dateID == 20001) { if (MarketData1.time >= 0900540000 && Sig == 1 && incompleteN == 0) { Account1.SetUnfillOrderNumber(BuyNum) if (Account1.Unfill.count > 0) { Account1.OrderReplacePrice(BuyNum, MarketData1.Ask(5)); } } if (MarketData1.time >= 0900540000 && Sig == -1 && incompleteN == 0) { Account1.SetUnfillOrderNumber(SellNum) if (Account1.Unfill.count > 0) { Account1.OrderReplacePrice(SellNum, MarketData1.Bid(5)); } } } } 즐거운 하루되세요 > 새로운세상 님이 쓴 글입니다. > 제목 : 미완성신호 주문 > 안녕하세요~ 다음 내용과 같이 수식 변경 부탁드립니다. -------------------- < 현재 수식 내용 > 1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우 2) 매수신호시 : 현재가격이 시초가-0.3 의 가격에 도달하면 5호가 매수 매도신호시 : 현재가격이 시초가+0.3 의 가격에 도달하면 5호가 매도 3) 변수 incompleteN, BuyID, BuyFill, SellID, SellFill function Main_OnStart() { Main.MessageLog("시작"); incompleteN = 0; } function Chart1_OnRiseIncompleteSignal(IncompleteSignal) { //09시52초 이전 if (MarketData1.time >= 0900000000 && MarketData1.time < 0900520000) { if (incompleteN == 0 && IncompleteSignal.signalKind == 1 && MarketData1.current <= MarketData1.open-0.3) //시초가대비 0.3이상 하락하면 5호가 매수 { BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Ask(5),0); incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정 BuyFill = 0; } if (incompleteN == 0 && IncompleteSignal.signalKind == 3 && MarketData1.current >= MarketData1.open+0.3) //시초가대비 0.3이상 상승하면 5호가 매도 { SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Vol,MarketData1.Bid(5),0); incompleteN = 1; // 체결이 되면 1 --> 현재5호가 주문 100% 체결되어 1로 설정 SellFill = 0; } } < 변경요청 내용 > 1) 09:00~09:00:52 시간에 미완성신호가 발생할 경우 2) 위의 방식은 atlimit의 개념이어서 다음과 같이 선주문 방식으로 변경 --> 미완성신호가 발생하는 즉시 매수신호시 : 시초가-0.3 에 주문 매도신호시 : 시초가+0.3 에 주문 --> 주문체결이 되면 incompleteN = 1; (체결이 안되면 0 유지) 3) 주어진 09:00:52 까지 2)의 주문이 미체결시, 09:00:54 해당주문 5호가로 정정 (즉, incompleteN = 1 이 아니면 5호가 정정주문) 4) 기존 변수는 다른 수식과 연관되어 있어 그대로 사용 //미완성신호 선주문 ..... ... ....... //09시54초 --> 09시52초까지 미체결시 if (MarketData1.time >= 0900540000 && 미완성신호 Buy주문 미체결시) { 해당 매수주문 5호가 정정 } if (MarketData1.time >= 0900540000 && 미완성신호 Sell주문 미체결시) { 해당 매도주문 5호가 정정 } ------------------------- 이상입니다. 그럼 활기찬 시간되시기를 바라며, 감사합니다 !!