Для облегчения создания торгового робота, в cAlgo имеются шаблоны различных классов роботов:

using System;
using cAlgo.API;
using cAlgo.API.Indicators;
namespace cAlgo.Robots{
  [Robot("New Robot")]
  public class NewRobot : Robot{
    protected override void OnStart(){
      //Put your initialization logic here
    }
    protected override void OnTick(){
      //Put your core logic here
    }
    protected override void OnStop(){
      //Put your deinitialization logic here
    }
  }
}

NewRobot - это класс, произошедший от базового класса – Robot . Чтобы использовать этот класс как робот, мы должны его маркировать атрибутом [Robot] . Он уже применен к роботу в шаблоне.

Теперь вы можете переименовать этот класс. Давайте назовем его MyFirstRobot и изменим его имя:

[Robot("First Robot!")]
public class MyFirstRobot : Robot

Жизненный цикл робота Базовый класс робота имеет ряд виртуальных методов которые можно отнести к вашему роботу. В шаблоне робота «по умолчанию» вы можете видеть 3 из них:

  • OnStart() - это обработчик событий, к которому робот обращается во время своего запуска (когда робот активирован на графике). Здесь вы можете добавить логику запуска робота, например, создать индикатор или исполнить ордер, которая должна быть исполнена при старте.
  • OnTick() запускается при каждом тике, проверяет сигналы от индикаторов, исполняет, модифицирует или закрывает ордера и т.д..
  • OnStop() запускается, если робот остановлен. Вы можете добавить сюда логику деинсталляции робота.

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