Как сделать робота на AmiSharp? Часть 3
В предыдущих статьях мы создали простейший робот в Amibroker, который умеет торговать через терминал QUIK. Для простоты был выбран едва ли самый незамысловатый алгоритм из всех возможных. Конечно, в реальной торговле он принесет убытки. Надо его менять. Попробуем, насколько легко можно изменить алгоритм в таким роботе.
Итак, приступим.
У нас имеются строки, где мы вычисляем сигналы Buy и Sell. Все что нам требуется - изменить вычисление этих сигналов. Вот так они рассчитывались раньше:
Buy = Cross(C, MovingAverage);
Sell = Cross(MovingAverage,C);
Пробуем изменить условие входа в позицию. Сейчас мы входим в Long, если цена пробивает снизу вверх скользящую среднюю. Добавим фильтр - входить будем по этому сигналу лишь в те моменты, когда индикатор RSI показывает перепроданность, то есть его значение меньше или равно 30.
Buy = Cross(C, MovingAverage) AND RSI(Periods) <= 30;
Sell = Cross(MovingAverage,C);
Buy = Exrem(Buy,Sell);
Sell = Exrem(Sell,Buy);
Новые две строки необходимы, чтобы убрать повторяющиеся сигналы.
Cобственно, все, теперь можно посмотреть, как часть меток Buy исчезла. Соответственно, пропали и соответствющие метки Sell.
Можно изменить и условие выхода. Например, выходить, если значение индикатора RSI становится равным или более 80:
Buy = Cross(C, MovingAverage) AND RSI(Periods) <= 30;
Sell = Cross(MovingAverage,C) OR RSI(Periods) >= 80;
Buy = Exrem(Buy,Sell);
Sell = Exrem(Sell,Buy);
Картинка опять изменилась. Сразу, без каких-либо дополнительных действий.
Допустим также, что мы хотим игнорировать утренние гэпы и в это время позиции открывать не будем. Запретим входить в позиции до 10-30. Нет проблем:
Buy = Cross(C, MovingAverage) AND RSI(Periods) <= 30 AND TimeNum() >= 103000;
Sell = Cross(MovingAverage,C) OR RSI(Periods) >= 80;
Допустим также, вы сами написали/нашли в интернете необычную формулу индикатора и хотите ее использовать в своем роботе. Как это сделать? Точно также, как и в случае со стандартными индикаторами, нет разницы. Добавляйте его в AFL формулу робота и модифициуйте условия генерации сигналов.
Несложно? Мне кажется, что очень просто.
Большой плюс такого подхода состоит в том, что после любой модификации алгоритма можно сразу же увидеть, какие результаты этот вариант алгоритма даст на истории, запустив его (без каких-либо изменений) в бектестере. При желании необходимые параметры можно опять-таки без дополнительных усилий подобрать в оптимизаторе.
Вряд ли наш простейший робот и после таких изменений будет приносить прибыль. Для учебных целей алгоритм взят максимально упрощенный. Цель статьи состояла исключительно в демонстрации, насколько легко и быстро можно менять алгоритм робота. Тем не менее при желании можно его запустить на торговом счете - робот будет исправно трудиться.
Таким образом, процесс внесения изменений в алгоритм робота, написанного в программе теханализа с использованием Amisharp является очень простой операцией, определяемой богатейшими возможностями самой программы теханализа. Другие способы, построения роботов, известные мне, такую широту возможностей и такую простоту реализации этой задачи дать не в состоянии (речь не идет от HFT алгоритмах).
Начало см. в статье Как сделать робота на AmiSharp? Часть 1.
См. также Документация AmiSharp
Вы дочитали до этого момента? Я польщен...