← Назад

проблема с получением сделок и отправкой транзакций

Все проблемы относятся к одному запуску робота и стратегии. Версия - 4.0.3 Описание проблемы. 1)Не сработала команда CancelActiveOrders(); Робот должен был снять заявку и поставить новую. Новая заявка была поставлена, а старая не была снята. 2)Не все сделки пришли в робота. Сделка с номером заявки 42790499 отсутсвует в логе, хотя она совершена в рамках стратегии. И как раз эта заявка не была снята роботом, о чем писалось в п. 1. 3)Робот имеет несколько стратегий и отслеживает сделки в общем виде так и разделяя их для каждой стратегии. Все сделки попали в общую систему учета(графического отпображения), в том числе и та, про которую я писал во втором пункте, но ни одна сделка не попала в систему учета(графического отпображения) стратегии. Код общего отображения -


private void OnNewMyTrades(IEnumerable<MyTrade> myTrades)
		{
			this.GuiAsync(() =>
			              {
			              	this.MyTrades.AddRange(myTrades);
			              	svMyTrades.ScrollToEnd();
			              });
			RefreshOrders();
		}

Код отображения для стратегии -


this.GuiAsync(() =>
				              {
				              	foreach(MyTrade m in myTrades){
				              		this.MyTrades.Add(new MyTradeStrategy(m, strategy.Name));
				              	}
				              	svMyTrades.ScrollToEnd();
				              });

4)Также ни разу не сработал обработчик события strategy.NewMyTrades. Ничего такого раньше не наблюдалось.

Комментарии (1)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

vader
vader Автор

Лог пишется таким образом.


private void OnOrderChanged(Order order)
		{
			_strategyLog.WriteLine("OnOrderChanged Id- " + order.Id.ToString());
			_strategyLog.WriteLine("OnOrderChanged TransactionId- " + order.TransactionId.ToString());
			_strategyLog.WriteLine("OnOrderChanged Direction- " + order.Direction.ToString());
			_strategyLog.WriteLine("OnOrderChanged Volume- " + order.Volume.ToString());
			_strategyLog.WriteLine("OnOrderChanged Price- " + order.Price.ToString());
			_strategyLog.WriteLine("OnOrderChanged Time- " + order.Time.ToString());
			_strategyLog.Flush();
		}
		
		private void OnNewOrder(Order order)
		{
			this.GuiAsync(() => this.Orders.Add(order));
			RefreshOrders();
			_strategyLog.WriteLine("NewOrder Id- " + order.Id.ToString());
			_strategyLog.WriteLine("NewOrder TransactionId- " + order.TransactionId.ToString());
			_strategyLog.WriteLine("NewOrder Direction- " + order.Direction.ToString());
			_strategyLog.WriteLine("NewOrder Volume- " + order.Volume.ToString());
			_strategyLog.WriteLine("NewOrder Price- " + order.Price.ToString());
			_strategyLog.WriteLine("NewOrder Time- " + order.Time.ToString());
			_strategyLog.Flush();
		}
		
		private void OnNewMyTrades(IEnumerable<MyTrade> myTrades)
		{
				foreach(MyTrade p in myTrades){
				_strategyLog.WriteLine("NewMyTrades Id- " + p.Trade.Id.ToString());
				_strategyLog.WriteLine("NewMyTrades Direction- " + p.Trade.OrderDirection.ToString());
				_strategyLog.WriteLine("NewMyTrades Volume- " + p.Trade.Volume.ToString());
				_strategyLog.WriteLine("NewMyTrades Price- " + p.Trade.Price.ToString());
				_strategyLog.WriteLine("NewMyTrades Time- " + p.Trade.Time.ToString());
			}
			_strategyLog.Flush();
		}