Пример #1
0
 public STR_EDoor(
     EDoorInput input,
     String strategyName,
     Account elwAccount,
     Account optionAccount,
     MonitorLimit_Time_And_MarketData monitorLimit)
 {
     InitDefaultInfos(input, strategyName, elwAccount, optionAccount, monitorLimit);
     InitController();
 }
Пример #2
0
        public IStrategy CreateStrategy(String inputJson, String strategyName)
        {
            EDoorInput input = Util.GetJsonObject(typeof(EDoorInput), inputJson) as EDoorInput;

            Account elwAccount = StrategyManager.Ins().GetAccount(input.ElwAccountName);
            Account optionAccount = StrategyManager.Ins().GetAccount(input.OptionAccountName);

            MonitorLimit_Time_And_MarketData monitorLimit = new MonitorLimit_Time_And_MarketData(
                DateUtil.GetTodayDateTime(9 + Const.kHourAdjustment_Start, 0, 0),
                DateUtil.GetTodayDateTime(12 + 3 + Const.kHourAdjustment_End, 0, 0));

            STR_EDoor strategy = new STR_EDoor(
                input,
                strategyName,
                elwAccount,
                optionAccount,
                monitorLimit);

            return strategy;
        }
Пример #3
0
        void InitDefaultInfos(
            EDoorInput input,
            String strategyName,
            Account elwAccount,
            Account optionAccount,
            MonitorLimit_Time_And_MarketData monitorLimit)
        {
            // 1. set member variables
            this.Input = input;
            this._accountNames.Add(elwAccount.AccountName);
            this._accountNames.Add(optionAccount.AccountName);

            this._strategyName = strategyName;
            this.ElwAccount = elwAccount;
            this.OptionAccount = optionAccount;
            this.MonitorLimit = monitorLimit;

            List<Account> accounts = new List<Account>();
            accounts.Add(this.ElwAccount);
            accounts.Add(this.OptionAccount);

            // 2. Set Agent
            this._agent = new Agent(this, accounts);

            // 3. Set Order Limit
            IOrderLimit orderLimitFO = CreateOrderLimit_FO();
            IOrderLimit orderLimitELW = CreateOrderLimit_ELW();

            this.OptionAccount.SetOrderLimit(orderLimitFO);
            this.OptionAccount.SetOrderLimitEmptyRMD(orderLimitFO);

            this.ElwAccount.SetOrderLimit(orderLimitELW);
            this.ElwAccount.SetOrderLimitEmptyRMD(orderLimitELW);

            // 4. Create Center Data.
            this._centerData = new EDoorCenterData(input, this);
        }