Обсуждение статьи "Разработка торгового советника с нуля (Часть 24): Обеспечиваем надежность системы (I)"

 

Опубликована статья Разработка торгового советника с нуля (Часть 24): Обеспечиваем надежность системы (I):

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

Вопреки мнению многих людей, некоторые моменты не такие простые. Система ордеров - один из таких моментов. Даже вы сами можете создать более скромную систему, которая будет отлично работать для ваших целей, мы тоже так сделали в статье Разработка торгового советника с нуля, в которой была создана базовая система, которая может быть полезна для многих, но при этом недостаточна для других. Поэтому наступил момент, когда всё начало меняться, и родилась первая часть этой серии о новой системе ордеров. Это можно увидеть в статье Разработка торгового советника с нуля (Часть 18). Именно там мы начали разрабатывать систему, которая управлялась бы советником, но поддерживалась при этом MetaTrader 5. В той системе идея заключалась в том, чтобы не иметь ограничений по ордерам на графике. Поначалу система казалась довольно смелой, и я должен признать, что сам факт создания системы, в которой объекты будут обслуживаться не советником, а MetaTrader 5, казался мне довольно бессмысленным и неэффективным.

Однако, система находилась в разработке, и в статье Разработка советника с нуля (Часть 23) мы разработали призрачную систему для облегчения управления ордерами, позициями или лимитными точками (Take и Stop). Это было довольно интересно для разработки, но возникла одна проблема. Если мы посмотрим на количество используемых и видимых объектов по сравнению с количеством объектов, поддерживаемых MetaTrader 5, мы однозначно удивимся, потому что количество поддерживаемых объектов всегда будет выше.



Во многих случаях проблема не так серьезна, с некоторыми моментами можно даже жить, но есть две проблемы, которые во время тестирования в периоды высокой волатильности рынка делали систему не очень стабильной, а в некоторых ситуациях заставляли трейдера действовать неправильно. Это происходит потому, что иногда трейдер добавляет отложенный ордер, система отправляет его на сервер, и серверу для ответа иногда требуется немного больше времени, чем обычно, а система просто указывает на некоторые моменты, что ордер есть, а в другие - что его нет. И когда это делалось в позициях (есть разница между ордерами и позициями, подробнее читайте в документации)это оказалось еще более громоздким, поскольку не было известно, выполнил ли сервер команду так, как ожидалось или нет.

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

Автор: Daniel Jose

Причина обращения: