English 中文 Español Deutsch 日本語 Português
preview
Брутфорс-подход к поиску закономерностей (Часть V): Взгляд с другой стороны

Брутфорс-подход к поиску закономерностей (Часть V): Взгляд с другой стороны

MetaTrader 5Трейдинг | 21 июля 2023, 13:45
1 256 0
Evgeniy Ilin
Evgeniy Ilin

Содержание


Введение

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


Пути достижения цели

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

  1. Подход в лоб.
  2. Красивая картинка.
  3. Готовые торговые системы.
  4. Модернизация и гибридизация общедоступных алгоритмов.
  5. Командный подход.

Первый подход, самый распространенный среди упрямцев. На самом деле он полезен таким, как я, с точки зрения того, что позволяет отбросить амбиции и ложные надежды. Звучит не очень, но на самом деле это очень полезно для вашего будущего. Просто такой подход отнимает очень много сил и времени, и если в какой-то момент не остановиться, можно стать кандидатом форумных наук со всеми вытекающими из этого последствиями. Какими, я думаю, не стоит уточнять, все прекрасно понимают мой сарказм. Тем не менее, данный подход позволяет познать ту теоретическую информацию, что познал я в свое время, и ее ценность абсолютна. Главное вовремя остановиться. Ну и конечно же, если взвесить потраченное время и полученные результаты, то, как ни крути, приятного будет мало.

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

Третий подход, я считаю, мудрый. Мудр он потому, что в этом случае потраченные усилия будут минимальными, но ваша картинка реальна. При грамотной реализации данного подхода в нем будут отсутствовать негативные стороны, хотя и будут свои минусы. Самое важное, что нужно для реализации данного подхода - знание. И если бы, например, у меня сейчас не было того опыта, который есть сейчас, то я бы, например, не смог воспользоваться им, даже если учесть, что у меня было бы правильное отношение изначально и рациональный и взвешенный подход к достижению собственных целей. Но чисто теоретически такое возможно, да и на практике я уверен, можно найти таких людей, если поискать.

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

Пятый подход может быть эффективным только при наличии множества идей и постоянной работы над ними, тем не менее он гораздо лучше первого, даже если каждый из членов команды использует подход в лоб. Но так уж повелось, что разработчики торговых систем практически все самовлюбленные одиночки, и собрать такую команду, а главное, организовать ее работу, под силу единицам. Знаю, такие команды есть, и они довольно успешны. Хорошо, если вы попали в такую команду и сообща работаете над разработкой прибыльных алгоритмов. Плюс в том, что в итоге совокупное качество и количество наработок может сыграть решающую роль и позволить сделать конкурентный продукт.

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


Процесс получения стабильного дохода на основе автоматических торговых систем

Перед тем, как нащупать гармоничный подход к автоматической торговле, для начала необходимо структурировать весь процесс от начала и до конца - с момента зарождения идеи и до ее воплощения:

  1. Идея.
  2. Разработка плана реализации.
  3. Процесс разработки.
  4. Правка ошибок.
  5. Доработки и модернизация.
  6. Обширные тесты.
  7. Оптимизация и определение границ применимости
  8. Подготовка к торговле (ресурсы, демо счет)
  9. Торговля на реальном счете

К чему я это все, скоро поймете. Если вы еще очень зелены, то вы будете практически стопроцентно уверены в том, что ваша система должна работать, а все потому, что вы либо прочитали это где-то, либо сами навыдумывали и убедили себя в том, что это будет работать. Реальность на самом деле такова, что у вас нет математической модели рынка, да и она настолько сложна, что, даже предположив о ее наличии, вы никак не сможете ей воспользоваться из-за ее невероятной сложности и нерациональности ее использования в советнике. Как же быть? Ответ не такой простой, как кажется, но он есть. Ровно по этой причине я придумал свой брутфорс алгоритм.

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

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

Схема 1.

стандартный подход

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

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

Схема 2.

замена разработки на поиск

Смысл схемы после замены не изменится, но искать и выбирать уже готовое гораздо проще и, я бы сказал, гораздо приятнее, чем писать тонны кода. Благо, я могу делать и то, и другое. Конечно, для этого нужны знания и опыт, но без этого никак. Но, кроме всего прочего, смысл данной схемы еще в том, что советники могут со временем утрачивать свою актуальность, и большинство непременно попадут в утиль. После того, как вы выкидываете очередного советника, вы же не подозреваете, что его можно будет использовать повторно спустя некоторое время, не правда ли? Только вот копаться потом в этой куче хлама и поднимать давно забытые алгоритмы, и вновь думать, как их применить, тоже займет много времени.

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

  • Гибкость алгоритма.
  • Возможность инвертирования сигнала.
  • Быстродействие (минимальное ресурсопотребление).
  • Магик ордеров.

На основе этих данных даже можно ввести математическое определение перспективности отобранной коллекции советников. Можно даже попробовать составить такие выражения, чтобы стало понятнее, как и на что влияют характеристики данных советников и их количество. Но, вместо этого, можно просто составить простой и всем понятный список:

  1. Чем больше советников, тем лучше наша коллекция (просто потому, что чем больше советников, тем больше из них будут соответствовать требуемым торговым критериям на выбранном торговом участке).
  2. Чем больше входных параметров у советника, тем эффективнее его можно оптимизировать.
  3. Лучше те советники, которые торгуют по барам (проще использовать и тестировать, а также оптимизировать, и можно не бояться пинга, проскальзывания и прочих моментов).
  4. Если есть возможность инвертирования торгового сигнала, то вес советника удваивается.

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

Схема 3.

торговля на основе базы советников

Очевидно, что чем больше у вас советников, тем качественнее можно производить фильтрацию роботов. Но здесь всплывают сразу несколько неприятных моментов. Все они связаны с тем, что, так или иначе, чем качественнее мы хотим произвести отбор, тем больше времени у нас уйдет на этот отбор. Кроме того, его придется производить множество раз, и мало просто его произвести. Нужно это делать регулярно, и вместо того, чтобы попивать коктейль на пляже, это все превратится в очередную работу, если только вы не посадите за нее человека, который будет делать все за вас. В этой связи встает вопрос: "А зачем оно мне, когда есть уже опробованные схемы обычного бизнеса совершенно без рисков?"

Кроме того, чем более успешно вы хотите производить свою торговую деятельность, тем больше одновременно работающих терминалов вам необходимо. А это значит, что вы постоянно должны контролировать каждый терминал, вешать и снимать с него очередные советники, настраивать и следить за их работой. Как вы понимаете, это все вагон работы, который сам собой не разгрузится. Несмотря на то, что мы избавили себя от того, что нам нужно постоянно разрабатывать новых советников, тем не менее мы все еще не избавились от основной рутины. Давайте перечислим основные трудоемкие моменты:

  • Отбор советников с помощью оптимизации.
  • Предварительное форвард-тестирование на демо-счете.
  • Отбор самых живучих торговых сигналов.
  • Реальная торговля с помощью самых живучих комбинаций (ставим на реальный счет).
  • Постоянный контроль (отключение, пауза, замена на других роботов и так далее) (работа с терминалами).

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

Изначально мой брутфорс-алгоритм разрабатывался в исследовательских целях, для того чтобы понять, можно ли с помощью простых алгоритмов добиться прибыльной торговли. Я понял, что это сделать можно. Но, учитывая те возможности, что у него были тогда, он был способен лишь дать дополнительных советников, для того чтобы расширить общее количество советников. Чтобы лучше понять, чем могут помочь простые советники и как их правильно использовать, нужно немного глубже разобраться в том, насколько тот или иной алгоритм способен решать задачу прибыльной торговли и как правильно относиться к тем или иным советникам.


Советники и закономерности

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

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

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

Схема 4.

группировка роботов

Здесь впервые появляется в качестве элемента блок-схемы моя брутфорс-программа, которая, собственно, и осуществляет данную группировку благодаря различным настройкам каждой ее копии. По сути, каждая копия программы, настроенная по-разному, это совершенно независимая группа роботов, из которой может осуществляться отбор. Генерируемые роботы могут быть использованы для торговли, что изображено в самом низу блок-схемы. И самое важное здесь то, что все эти группы роботов впоследствии, спустя время, делятся на три группы:

  • Прибыльные с прямым сигналом (расчет на инерционность закономерности).
  • Прибыльные с инвертированным сигналом (расчет на немедленную смену закономерности).
  • Хаотичные (простая подгонка под историю).

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

  1. Прямой сигнал.
  2. Инвертированный сигнал.

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

  1. Максимально качественная и эффективная группировка имеющихся советников (как можно больше независимых групп).
  2. Прямой и инвертированный сигнал для каждой из групп + смешанные.

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

Схема 5.

ограничения работы

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

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

У любого успешного алготрейдера должно быть понимание тех простых истин, что я излагаю, и в большей степени прибыль у таких людей строится именно на этом понимании. Прибыльная торговля - это в первую очередь, способность правильно использовать те инструменты, что есть у вас в наличии. Годами ждать волшебных чудодейственных стратегий это не лучшее решение. Любая идея при правильном комплексе сопутствующих решений исполнима. Что я и пытаюсь показать в данной статье, не делая акцент на конкретных алгоритмах. 


Максимальная автоматизация рабочей цепочки

От простого исследования до инструмента полной автоматизации всей работы по нахождению устойчивых торговых сигналов идея развивалась постепенно, но пришла она ровно к тому, к чему должна была прийти. На данный момент моя система выполняет целый комплекс задач, начиная от простой генерации торговых советников и заканчивая торговлей в терминалах MetaTrader 4, 5. Примерно так выглядит актуальная версия того, что я делаю сейчас с помощью моей программы:

Схема 6.

актуальная схема использования брутфорса

Данная схема полностью избавляет меня от рутинных операций, таких как:

  • Отбор советников и группировка.
  • Отсоединение и присоединение советников к графикам и последующая настройка.
  • Оптимизация и отбор настроек.
  • Поиск новых советников.
  • Создание новых советников.

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

Получается, что вся схема автоматизирует как процесс создания советников, так и автопостинг в мой канал. Мне остается лишь масштабировать систему, закупать оборудование и следить за торговыми сигналами. Сейчас, конечно, все это работает на 1% от своих возможностей, но в качестве демонстрационного варианта я считаю вполне подходящим.

На данный момент у меня в распоряжении лишь один свободный компьютер, достаточно старый, но его хватает, чтобы обеспечить попеременную работу двух независимых воркеров (брутфорс-программ). На основе этих двух настроек я создал по два сигнала: прямой и инвертированный для каждой и дополнительно прямой и инвертированный смешанные сигналы. По результатам тестирования в течение двух месяцев можно увидеть то, о чем я говорил выше:

Рисунок 1.

прямой прибыльный и инвертированный прибыльный

По результатам тестирования за два месяца непрерывной торговли на минимальных мощностях остались только два ярко выраженных плюсовых сигнала. Там еще один есть, смешанный, но он практически идентичен инвертированному, который здесь показан. Они относятся к двум совершенно разным торговым алгоритмам и их настройкам. На их примере можно увидеть, что плюсовую торговлю можно получить как на прямом сигнале, так и на инвертированном. Советники, которые были сгенерированы в течение всего процесса тестирования за все время, вы найдете при желании в моем телеграмм-канале. Ссылка на него есть в моем профиле, а также в конце статьи.


Универсальные советники - приемники

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

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

Решиться на подобную авантюру непросто, потому что на инстинктивном уровне всегда хочется взять один супер-советник, повесить его в терминал, нажать одну кнопку и забыть о нем на несколько недель, как минимум. Но ведь его еще нужно найти и подтвердить, что он действительно обладает теми характеристиками, которые нам требуются. Но подумайте вот о чем: пока вы будете его искать, можно просто взять все, что есть, и запустить максимальное количество различных конфигураций.

Конечно, для того чтобы грамотно контролировать процесс торговли таких советников, нужно будет тратить немало сил и времени. В своей системе я обошел подобные проблемы с помощью универсального советника, который является удобной опциональной надстройкой над генерируемым советником (настройкой). Первый самый простой вариант такого советника содержит следующие важные управляющие переменные:

input int DaysToFuture=50;//Days to future
input LOT_VARIATION LotMethod=SIMPLE_LOT;//Lot Style
input bool bInitLotControl=false;//Auto lot bruteforce
input double MinLotE=0.01;//Min Lot
input double LotDE=0.01;//Lot (without variation)
input double MaxLotE=1.0;//Max Lot
input bool CommonE=true;//Common Folder
input string SubfolderE="T_TEYLOR_DIRECT";
input int MinutesAwaitE=2;//Minutes To Check New Settings
input bool bBruteforceInvertTrade=false;//Invert Bruteforce Trade

Конечно, это не все переменные, которые есть там, но это те переменные, которые необходимы для обеспечения автоматизации следующих важных действий:

  • Отключение торговли по истечении заданного допустимого времени для торговли (если за время работы текущей настройки не была сгенерирована новая, следовательно, старая теряет актуальность).
  • Стиль торговли (простой лот / постепенное увеличение лота от минимума к максимуму в рамках заданного торгового окна / постепенное уменьшение лота от максимума к минимуму в рамках заданного торгового окна).
  • Чтение настроек из папки текущего терминала / общей папки терминалов.
  • Возможность выделения поддиректории.
  • Интервал для обновления настроек.
  • Инвертирование сигнала.

Все это позволяет гибко настроить взаимодействие между терминалами и брутфорс-программой, а также запускает сколь угодно большое количество терминалов и бруттеров одновременно на одной машине, насколько позволяют её возможности. Единственное, сейчас приходится выделять каждому графику своего советника, потому что универсальный мультиприемник я ещё не сделал, но это есть в планах. Для реализации более качественной и продуманной торговли он понадобится. Все плюсы и минусы очень удобно будет увидеть на схеме:

Схема 8.

плюсы и минусы

Как видно по схеме, как в простом, так и в продвинутом советнике-приемнике рекомендованы к реализации две системы:

  • Система синхронизации параллельной торговли.
  • Система оптимизации параллельной торговли.

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

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

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


Советник для динамического сбора котировок

У меня был до этого простой советник, который создавал текстовые файлы, которые нужно было вручную открывать в программе. Само собой, спустя какое-то время, эти данные теряют актуальность, а для обеспечения работы всех схем, которые были выше, уже нужен доступ к свежим котировкам. Для этого мне достаточно было сделать советник, который постоянно пишет данные в общую папку терминалов. А для составления наборов торгуемых инструментов и периодов я решил добавить соответствующие списки в настройки самой программы:

Схема 9.

обновление свежих котировок

С помощью данного приёма можно настроить каждый браузер на свой уникальный набор инструментов-периодов без необходимости дублирования данных в нескольких папках. В таком случае для работы сколь угодно большого количества торговых терминалов необходим лишь один терминал, который является источником котировок. Если выставлять промежутки анализа размером в года, то возможные паузы и задержки при обновлении данных несущественны. Кроме того, вся система имеет под собой парадигму работы по барам, поэтому все это дело максимально надёжно и устойчиво к практически любым внештатным ситуациям. У данного бота всего несколько настроек:

input bool CommonE=true;//Common Folder/Terminal Folder
input double YearsE=10.0;//Years Of History Data
input int MinutesForNew=2;//Rewrite Timeout In Minutes

Данный советник пишет либо в общую папку всех терминалов, либо в собственную папку текущего терминала. Он пишет последние годы истории, которые мы укажем, начиная с текущего времени терминала и возвращаясь назад в историю. Советник пишет через заданный таймаут, указанный в минутах. Это был последний элемент всей логики. Самое сложное позади. Остается лишь реализовать советник-приемник, который работает на одном графике. Часть функционала для его реализации я уже сделал, но пока лишь половину.


Заключение

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

По ходу дела мне пришлось постепенно адаптировать первоначальную идею к реальности, что было абсолютно неподконтрольным процессом, а скорее самотечным и неизбежным. В результате я нашел для себя правильный выход из теоретического тупика, который неизбежно всегда может быть лишь в практической плоскости. А это означает больше роботов, больше сигналов, больше компьютеров, больше автоматизации. Хотел бы, чтобы данная статья послужила как минимум неким толчком для многих теоретиков и искателей Грааля, что всегда можно найти альтернативный выход. В следующей статье я уже буду показывать подробно, какими обвесами обзавелась моя система. Тем не менее, предстоит еще много работы.

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

Ссылки

Сделайте торговые графики лучше с интерактивным графическим интерфейсом на основе MQL5 (Часть I): Перемещаемый интерфейс (I) Сделайте торговые графики лучше с интерактивным графическим интерфейсом на основе MQL5 (Часть I): Перемещаемый интерфейс (I)
Раскройте всю мощь динамического представления данных в своих торговых стратегиях или утилитах с помощью нашего подробного руководства по разработке перемещаемого графического интерфейса в MQL5. Погрузитесь в события графика и узнайте, как спроектировать и реализовать простой и множественный перемещаемый графический интерфейс на одном графике. В статье также рассматриваются добавление элементов в графический интерфейс, повышение их функциональности и эстетической привлекательности.
Дискретное преобразование Хартли Дискретное преобразование Хартли
В этой статье мы познакомимся с одним из методов спектрального анализа и обработки сигналов - дискретным преобразованием Хартли. С его помощью можно фильтровать сигналы, анализировать их спектр и многое другое. Возможности DHT ничуть не меньше, чем у дискретного преобразования Фурье. Однако, в отличие от него, DHT использует только вещественные числа, что делает его более удобным для реализации на практике, а результаты его применения более наглядными.
Структуры в MQL5 и способы вывода их данных на печать Структуры в MQL5 и способы вывода их данных на печать
В статье рассмотрим структуры MqlDateTime, MqlTick, MqlRates, MqlBookInfo и способы вывода данных этих структур на печать. Для того, чтобы распечатать все поля структуры есть стандартная функция ArrayPrint(), которая выводит в удобном табличном формате данные, содержащиеся в массиве с типом обрабатываемой структуры.
Нейросети — это просто (Часть 50): Soft Actor-Critic (оптимизация модели) Нейросети — это просто (Часть 50): Soft Actor-Critic (оптимизация модели)
В предыдущей статье мы реализовали алгоритм Soft Actor-Critic, но не смогли обучить прибыльную модель. В данной статье мы проведем оптимизацию ранее созданной модели для получения желаемых результатов её работы.