Пример #1
0
        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);
 }
Пример #3
0
        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);
        }
Пример #4
0
 /// <summary>
 /// перетащить стоп по сигналу
 /// </summary>
 private void ProcessTradeSignalActionMoveStopTake(TradeSignalActionMoveStopTake trail)
 {
 }
Пример #5
0
        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);
            }
        }