Germany | Finland | Saint Petersburg | Drive

Как сделать робота на AmiSharp? Часть 3

Опубликовано в AmiSharp

В предыдущих статьях мы создали простейший робот в 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

 


Вы дочитали до этого момента? Я польщен...

Добавить комментарий


Майнинг в браузере