MyTradeEvent.

MyTradeEvent.
public event Action<MyTrade> MyTradeEvent;

Событие MyTradeEvent сигнализирует о получении новой собственной сделки, которая описывается в программе классом MyTrade. Соответственно метод, устанавливаемый в качестве обработчика для события, должен принимать экземпляр этого класса, а также не иметь возвращаемого значения.

Представим ситуацию, когда роботу нужно набирать большой объем частями при выполнении условий, затем скидывать часть, потом вновь набирать и так далее. Мы хотим ограничить максимальный объем для алгоритма и запретить покупки при достижении заданной отметки.

Можно после каждой сделки вычислять общий открытый объем по всем позициям, но куда продуктивнее сразу агрегировать эту информацию.

  1. В конструкторе подписываемся на событие MyTradeEvent.
  2. Создаем переменную типа decimal, которая будет содержать текущий объем покупок.
  3. В обработчике события своей сделки увеличиваем значение переменной, если это покупка.
  4. Иначе уменьшаем значение переменной, так как это продажа.
  5. Перед тем, как выполнить логику открытия позиций, проверяем значение переменной. Если текущий объем меньше заданного, выполняется торговая логика, иначе запрещается открытие новых позиций.
12:57
270
FAQ

Комментарии

Нет комментариев. Ваш будет первым!