Example #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();  //參數設定完成之後才初始化下單元件
			}
		}