internal override void CStudyInitialize() { if (__cProperty.OrderSource != null) { if (__cOrderService != null) { //如果之前已經建立下單服務元件 __cOrderService.Dispose(); //釋放下單服務元件 } string sOrderSource = __cProperty.OrderSource; __cOrderService = OrderManager.Manager.CreateOrderService(sOrderSource); __cOrderService.onResponse += OrderService_onResponse; __cOrderService.SetInstrument(this.Instruments[0]); __cOrderService.SetDefaultContracts(__cProperty.DefaultContracts); this.OrderCreator = __cOrderService as IOrderCreator; if (log.IsInfoEnabled) log.InfoFormat("[SignalObject.SetOrderSource] Set \"{0}\" and create...", sOrderSource); } List<InputAttribute> cParameters = new List<InputAttribute>(); cParameters.AddRange(InputAttribute.GetParameters(this)); if (__cOrderService != null) { cParameters.AddRange(InputAttribute.GetParameters(__cOrderService)); } ScriptParametersEvent cScriptParametersEvent = new ScriptParametersEvent(); cScriptParametersEvent.SetOrderService(__cOrderService); cScriptParametersEvent.SetScriptParameters(cParameters); OnScriptParameters(cScriptParametersEvent); if (__cOrderService != null) { __cOrderService.Initialize(); //參數設定完成之後才初始化下單元件 } }
private void CreateOrderService(Instrument buyBars, Instrument sellBars) { if(__cOrderService1 != null) { __cOrderService1.Dispose(); } #if __SIMULATE __cOrderService1 = OrderManager.Manager.CreateOrderService("Netwings.OrderService;Netwings.SimulateOrderService"); #else __cOrderService1 = OrderManager.Manager.CreateOrderService("Netwings.OrderService;Netwings.RealOrderService"); SetPipeNumber(InputAttribute.GetParameters(__cOrderService1), 1, 1); #endif __cOrderService1.onResponse += OrderService_onResponse; __cOrderService1.SetInstrument(buyBars); __cOrderService1.SetDefaultContracts(1); __cOrderService1.Initialize(); IOrderCreator cOrderCreator1 = __cOrderService1 as IOrderCreator; __cBOrderO = cOrderCreator1.MarketThisBar(new SOrderParameters(Contracts.UserSpecified, "CALL_BUY", EOrderAction.Buy, OrderExit.FromAll)); __cBOrderC = cOrderCreator1.MarketThisBar(new SOrderParameters(Contracts.Default, "CALL_CLOSE", EOrderAction.Sell, OrderExit.FromAll)); if (log.IsInfoEnabled) log.Info("[CreateOrderService] Set BUY \"Netwings.OrderService;Netwings.SimulateOrderService\" and create..."); if(__cOrderService2 != null) { __cOrderService2.Dispose(); } #if __SIMULATE __cOrderService2 = OrderManager.Manager.CreateOrderService("Netwings.OrderService;Netwings.SimulateOrderService"); #else __cOrderService2 = OrderManager.Manager.CreateOrderService("Netwings.OrderService;Netwings.RealOrderService"); SetPipeNumber(InputAttribute.GetParameters(__cOrderService2), 1, 2); #endif __cOrderService2.onResponse += OrderService_onResponse; __cOrderService2.SetInstrument(sellBars); __cOrderService2.SetDefaultContracts(1); __cOrderService2.Initialize(); IOrderCreator cOrderCreator2 = __cOrderService2 as IOrderCreator; __cSOrderO = cOrderCreator2.MarketThisBar(new SOrderParameters(Contracts.UserSpecified, "PUT_SELL", EOrderAction.SellShort, OrderExit.FromAll)); __cSOrderC = cOrderCreator2.MarketThisBar(new SOrderParameters(Contracts.Default, "PUT_CLOSE", EOrderAction.BuyToCover, OrderExit.FromAll)); if (log.IsInfoEnabled) log.Info("[CreateOrderService] Set SELL \"Netwings.OrderService;Netwings.SimulateOrderService\" and create..."); }