public EntityMonitorOrder Insert(EntityMonitorOrder data) { try { MonitorOrders dataNew = new MonitorOrders() { PK_MonitorOrdersID = data.VisitID, FK_OrderID = data.OrderID, FK_StatusVisitID = data.StatusVisitID, FK_StatusOrderID = data.StatusOrderID, FK_CauseOrderID = data.CauseOrderID, SequenceVisit = data.SequenceVisit, StartVisitDate = data.StartVisitDate, EndVisitDate = data.EndVisitDate, StartOrderDate = data.StartOrderDate, EndOrderDate = data.EndOrderDate, StartServiceDate = data.StartServiceDate, EndServiceDate = data.EndServiceDate, LatitudeStartVisit = data.LatitudeStartVisit, LogitudeStartVisit = data.LogitudeStartVisit, LatitudeEndVisit = data.LatitudeEndVisit, LogitudeEndVisit = data.LogitudeEndVisit, LatitudeStartOrder = data.LatitudeStartOrder, LogitudeStartOrder = data.LogitudeStartOrder, LatitudeEndOrder = data.LatitudeEndOrder, LogitudeEndOrder = data.LogitudeEndOrder, DurationVisit = data.DurationVisit, DurationOrder = data.DurationOrder, DurationExecute = data.DurationExecute, DurationTransport = data.DurationTransport, NoteVisit = data.NoteVisit, NoteOrder = data.NoteOrder, Status = data.Status, CreateDate = data.CreateDate, ModifyDate = data.ModifyDate }; base.DataContext.MonitorOrders.Add(dataNew); base.DataContext.SaveChanges(); data.VisitID = dataNew.PK_MonitorOrdersID; return(data); } catch (DbException dbex) { throw dbex; } catch (Exception ex) { throw ex; } }
protected override void RecalcBotLogics(CBotEventStruct botEvent) { base.RecalcBotLogics(botEvent); // CloseAllBotPositions(); // CancellAllOrders(); // AddMarketOrder(m_isin, OrderDirection.Buy, m_parLot); if (IsState(EnmStratStates._000_PreInitial)) { if (MonitorOrders.Count == 0 && ((MonitorPositions == null || MonitorPositions.Amount == 0))) { SetState(EnmStratStates._010_Initial); } else { CancellAllBotOrders(); CloseAllPositions(); SetState(EnmStratStates._001_WaitAllOldOrdersClosed); } } else if (IsState(EnmStratStates._001_WaitAllOldOrdersClosed)) { if (MonitorOrders.Count == 0 && (MonitorPositions == null || MonitorPositions.Amount == 0)) { SetState(EnmStratStates._010_Initial); } } else if (IsState(EnmStratStates._010_Initial)) { AddOrderNearSpread(m_isin, /*OrderDirection.Sell*/ EnmOrderDir.Sell, m_parLot, m_parOffset); SetState(EnmStratStates._020_WaitFirstLimitOrderAdded); } else if (IsState(EnmStratStates._020_WaitFirstLimitOrderAdded)) { if (MonitorOrders.Count == 1 && ( (MonitorOrders.First()).Value).Amount == m_parLot) { SetState(EnmStratStates._021_AfterFirstLimitOrderWasAccepted); StartTimer("AfterFirstLimitOrderWasAccepted"); } } else if (IsState(EnmStratStates._021_AfterFirstLimitOrderWasAccepted)) { if (botEvent.EventCode == EnmBotEventCode.OnTimer && (string)botEvent.Data == "AfterFirstLimitOrderWasAccepted") { if (MonitorOrders.Count == 1) { long id = (MonitorOrders.First()).Key; CancelOrder(id); SetState(EnmStratStates._022_WaitFirstLimitOrderCancell); } } } else if (IsState(EnmStratStates._022_WaitFirstLimitOrderCancell)) { if (MonitorOrders.Count == 0) { SetState(EnmStratStates._023_AfterFirstLimitOrderCancell); } } else if (IsState(EnmStratStates._023_AfterFirstLimitOrderCancell)) { StartTimer("BeforeAddSecondLimitOrder"); SetState(EnmStratStates._030_BeforeSecondLimitOrderDelay); } else if (IsState(EnmStratStates._030_BeforeSecondLimitOrderDelay)) { if (botEvent.EventCode == EnmBotEventCode.OnTimer && (string)botEvent.Data == "BeforeAddSecondLimitOrder") { AddOrderNearSpread(m_isin, /*OrderDirection.Sell*/ EnmOrderDir.Sell, m_parLot, m_parOffset); SetState(EnmStratStates._031_WaitSecondLimitOrderAdded); } } else if (IsState(EnmStratStates._031_WaitSecondLimitOrderAdded)) { if (MonitorOrders.Count == 1 && ( (MonitorOrders.First()).Value).Amount == m_parLot) { SetState(EnmStratStates._032_AfterSecondLimitOrderAccepted); } } else if (IsState(EnmStratStates._032_AfterSecondLimitOrderAccepted)) { StartTimer("BeforeSecondLimitCancell"); SetState(EnmStratStates._033_BeforeSecondLimitCancellDelay); } else if (IsState(EnmStratStates._033_BeforeSecondLimitCancellDelay)) { if (botEvent.EventCode == EnmBotEventCode.OnTimer && (string)botEvent.Data == "BeforeSecondLimitCancell") { if (MonitorOrders.Count == 1 && ( (MonitorOrders.First()).Value).Amount == m_parLot) { CancellAllBotOrders(); SetState(EnmStratStates._034_WaitSecondLimitOrderCancell); } } } else if (IsState(EnmStratStates._034_WaitSecondLimitOrderCancell)) { if (MonitorOrders.Count == 0) { SetState(EnmStratStates._035_AfterSecondLimitOrderCancell); } } else if (IsState(EnmStratStates._035_AfterSecondLimitOrderCancell)) { SetState(EnmStratStates._010_Initial); } /* * Log("Recalc specific"); * * int tmp_sleep = 10; * * if (m_plaza2Connector.IsOrderControlAvailable && m_plaza2Connector.IsStockOnline) * { * * if (!bWas) * { * bWas = true; * * if (BotId == 1) * { * // Alarm("test1"); * // Alarm("test2"); * // System.Threading.Thread.Sleep(8000); * // this.SettingsBot.Enabled = false; * * // AddOrderNearSpread("RTS-9.15", OrderDirection.Buy, 1, 90); * // AddOrderNearSpread("Si-9.15", OrderDirection.Buy, 1, 110); * // AddOrderNearSpread("RTS-9.15", OrderDirection.Sell, 1, 80); * // AddOrderNearSpread("Si-9.15", OrderDirection.Sell, 1, 100); * // AddOrderNearSpread("RTS-9.15", OrderDirection.Buy, 1, 110); * * * * // CancellAllBotOrders(); * * // CloseAllBotPositions(); * * * * //TO DO open by market * // AddMarketOrder("RTS-9.15", OrderDirection.Buy, 1); * * // AddOrder("RTS-6.15", 103840, OrderDirection.Sell, 1); * // CancellAllOrders(); * * * * * // CancelOrder(40133784905); * // AddMarketOrder("RTS-6.15", OrderDirection.Buy, 1); * * // AddOrder("RTS-6.15", 99890, OrderDirection.Buy, 3); * // AddOrder("RTS-6.15", 102000, OrderDirection.Buy, 1); * // AddOrder("RTS-6.15", 101000, OrderDirection.Sell, 1); * * // if (!bWas) * // { * // CancelOrder(40100161380); * // CancellAllOrders(); * // CancellAllBotOrders(); * // AddOrder("RTS-6.15", 107770, OrderDirection.Buy, 1); * // bWas = true; * // } * * // } * // else if (BotId == 2) * { * * * // AddOrderNearSpread("RTS-9.15", OrderDirection.Buy, 1, 70); * // AddOrderNearSpread("Si-9.15", OrderDirection.Buy, 1, 70); * // AddOrderNearSpread("RTS-9.15", OrderDirection.Sell, 1, 50); * // AddOrderNearSpread("Si-9.15", OrderDirection.Sell, 1, 50); * // AddOrderNearSpread("RTS-9.15", OrderDirection.Buy, 1, 90); * // AddOrderNearSpread("Si-9.15", OrderDirection.Buy, 1, 90); * * * * // CancellAllBotOrders(); * // CloseAllBotPositions(); * * // AddMarketOrder("RTS-6.15", OrderDirection.Sell, 1); * // AddMarketOrder("RTS-6.15", OrderDirection.Buy, 1); * * // AddOrder("RTS-6.15", 97000, OrderDirection.Buy, 1); * // AddOrder("RTS-6.15", 102000, OrderDirection.Buy, 1); * // AddOrder("RTS-6.15", 95000, OrderDirection.Sell, 1); * if (!bWas) * { * // CancellAllBotOrders(); * bWas = true; * * } * * * } * * } * * } * */ }