Beispiel #1
0
		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...");
		}