static void InitNodeInputs(STR_Test_PB_Fut_HTS strategy, STR_Test_PB_HTSInput input) { SweeperCollectionDefault sweeperLeaf = new SweeperCollectionDefault(); StrategyNode node = new StrategyNode(); node.InitRoot_1(strategy); node.InitEnterLimit_2(new EnterConditionLimit( Util.ConvertFormatStringToInt64(input.Root_MaxLiveSweepCount), Util.ConvertFormatStringToInt64(input.Root_MaxNewSweepCount))); DateTime dtStart = DateUtil.GetTodayDateTime(9 + Const.kHourAdjustment_Start, 0, 0); DateTime dtEnd = DateUtil.GetTodayDateTime(12 + 3 + Const.kHourAdjustment_End, 4, 30); if (KospiFutureUtil.Ins().GetFutureMaturityRemainDays(DateTime.Now) == 0) { // 만기일에는 오후 2시 45분 30초까지만 하도록 한다. dtEnd = DateUtil.GetTodayDateTime(12 + 2 + Const.kHourAdjustment_End, 45, 30); } node.InitMonitorTimeLimit_3(new MonitorLimit_Time(dtStart, dtEnd)); node.InitSweeperCollection_4(new SweeperCollectionDefault()); node.InitMonitorEnter_5(new Test_PB_HTS_MonitorEnter(node)); strategy.AddNode(node); }
public Test_PB_HTSSweeper( POrder o, Account accountFO, STR_Test_PB_Fut_HTS parent) { _parent = parent; InitSweepUnit_FO(o, accountFO); }
public static STR_Test_PB_Fut_HTS Build(String inputJson, String strategyName) { STR_Test_PB_HTSInput input = GetInput(inputJson); STR_Test_PB_Fut_HTS strategy = new STR_Test_PB_Fut_HTS(strategyName); InitRootInputs(strategy, input); InitNodeInputs(strategy, input); //TODO return strategy; }
public Test_PB_HTS_MonitorEnter(StrategyNode node) { this.IsPermissionOK = false; this._node = node; this._monitorLimit = new MonitorLimit_LastUpdatedRmd(); String fut1 = KospiFutureUtil.Ins().KFSI.FutureCode1; _referenceRmdFut1 = RmdManager.Ins().GetData(fut1); _referenceRmdFut1List = new List<RawMarketData>(); _referenceRmdFut1List.Add(_referenceRmdFut1); _root = node.Root as STR_Test_PB_Fut_HTS; _futureAccount = _root.FutureAccount; }
static void InitRootInputs(STR_Test_PB_Fut_HTS strategy, STR_Test_PB_HTSInput input) { // 1.2. Account strategy.InitAccount_1(input.Root_FutureAccountName); // 1.3. Agent strategy.InitAgent_2(); // 1.4. OrderLimit strategy.InitFutureOrderLimit_3(input.Root_MaxFutureNotionalPerOnce); // 1.5. EnterLimit strategy.InitEnterLimit_6(input.Root_MaxLiveSweepCount, input.Root_MaxNewSweepCount); // 1.6. MonitorLimit strategy.InitMonitorLimitWithMarketDataAccount_7(); // 1.7. Validate init strategy.ValidateInits_8(); }