Отмена ордера по таймеру

На примере показана отмена лимитного ордера через 20 секунд, если он не not filled.

using OpenQuant.API;

public class MyStrategy : Strategy
{
   private Order order;
   private bool entry = true;
   
   public override void OnBar(Bar bar)
   {
      if (HasPosition)
         ClosePosition();

      if (entry)
       {
         order = LimitOrder(OrderSide.Buy, 100, bar.Close - 0.03);                     
         order.Send();
            
         AddTimer(Clock.Now.AddSeconds(20));

         entry = false;
      }
   }
   
   public override void OnTimer(DateTime signalTime)
   {   
      if (!order.IsDone)
         order.Cancel();

      entry = true;
   }
}