private static void ProcessSignalEditOrder(TradeSignalActionMoveStopTake action) { try { using (var ctx = DatabaseContext.Instance.Make()) { var targetOrders = ctx.POSITION.Where(p => p.MasterOrder == action.OrderId).ToList(); foreach (var order in targetOrders.Select(LinqToEntity.DecorateOrder)) { // исполнить сигнал - просто модифицировать ордер order.TakeProfit = (float?)action.NewTakeProfit; order.StopLoss = (float?)action.NewStopLoss; try { var status = ProxyTrade.SendEditMarketRequest( ProtectedOperationContext.MakeServerSideContext(), order); if (status != RequestStatus.OK) { Logger.DebugFormat("ProcessSignalEditOrder(#{0}) - ошибка: {1}", action.OrderId, status); } } catch (Exception ex) { Logger.DebugFormat("ProcessSignalEditOrder(#{0}) - исключение при отправке запроса: {1}", action.OrderId, ex); } } } } catch (Exception ex) { Logger.DebugFormat("ProcessSignalEditOrder(#{0}) - исключение: {1}", action.OrderId, ex); } }
private static void MakeOrderChangedSignal(int accountId, int orderId, decimal? newStop, decimal? newTake) { var signalCat = ManagementTraderList.Instance.IsSignaller(accountId); if (!signalCat.HasValue) return; Logger.Info("MakeOrderChangedSignal"); // !! var action = new TradeSignalActionMoveStopTake { OrderId = orderId, ServiceId = signalCat.Value, NewStopLoss = newStop == 0 ? null : newStop, NewTakeProfit = newTake == 0 ? null : newTake }; ServiceManagerClientManagerProxy.Instance.ProcessTradeSignalAction(action); }
private static void MakeOrderChangedSignal(int accountId, int orderId, decimal?newStop, decimal?newTake) { var signalCat = ManagementTraderList.Instance.IsSignaller(accountId); if (!signalCat.HasValue) { return; } Logger.Info("MakeOrderChangedSignal"); // !! var action = new TradeSignalActionMoveStopTake { OrderId = orderId, ServiceId = signalCat.Value, NewStopLoss = newStop == 0 ? null : newStop, NewTakeProfit = newTake == 0 ? null : newTake }; ServiceManagerClientManagerProxy.Instance.ProcessTradeSignalAction(action); }
/// <summary> /// перетащить стоп по сигналу /// </summary> private void ProcessTradeSignalActionMoveStopTake(TradeSignalActionMoveStopTake trail) { }
private static void ProcessSignalEditOrder(TradeSignalActionMoveStopTake action) { try { using (var ctx = DatabaseContext.Instance.Make()) { var targetOrders = ctx.POSITION.Where(p => p.MasterOrder == action.OrderId).ToList(); foreach (var order in targetOrders.Select(LinqToEntity.DecorateOrder)) { // исполнить сигнал - просто модифицировать ордер order.TakeProfit = (float?)action.NewTakeProfit; order.StopLoss = (float?)action.NewStopLoss; try { var status = ProxyTrade.SendEditMarketRequest( ProtectedOperationContext.MakeServerSideContext(), order); if (status != RequestStatus.OK) Logger.DebugFormat("ProcessSignalEditOrder(#{0}) - ошибка: {1}", action.OrderId, status); } catch (Exception ex) { Logger.DebugFormat("ProcessSignalEditOrder(#{0}) - исключение при отправке запроса: {1}", action.OrderId, ex); } } } } catch (Exception ex) { Logger.DebugFormat("ProcessSignalEditOrder(#{0}) - исключение: {1}", action.OrderId, ex); } }