Моделирование рынка (Часть 22): Первые шаги на SQL (V)
Прежде, чем вы сдадитесь и решите отказаться от изучения SQL, позвольте мне напомнить вам, уважаемые читатели, что здесь мы всё ещё используем только самые базовые элементы. Мы ещё не рассмотрели некоторые возможности SQL. Как только вы их усвоите, вы увидите, что SQL гораздо практичнее, чем кажется. Хотя, скорее всего, мы в конечном итоге изменим направление того, что мы создаем, потому, что процесс создания является динамичным. Мы покажем немного больше о создании разных вещей в SQL, ведь это по настоящему важно и нужно вам. Просто думать, что вы более способны, чем целое сообщество программистов и разработчиков, приведет только к потере времени и возможностей. Не переживайте, потому что дальше будет ещё интереснее.
Кодекс рыночных состояний в MQL5 (Часть 1): Побитовое обучение на примере Nvidia
Мы начинаем новую серию статей, которая развивает наши предыдущие наработки, изложенные в серии о MQL5 Wizard, и продвигает их дальше по мере усиления нашего подхода к системной торговле и тестированию стратегий. В этой новой серии мы сосредоточимся на советниках, запрограммированных на удержание только одного типа позиций — преимущественно длинных. Сосредоточение на одном направлении торговли может упростить анализ, снизить сложность стратегии и дать важные наблюдения, особенно при работе с активами за пределами Forex. Поэтому в этой серии мы исследуем, эффективен ли такой подход для акций и других невалютных активов, где long-only-системы часто хорошо согласуются с подходом smart money и стратегиями институциональных участников.
Моделирование рынка: Position View (I)
Контент, который мы будем рассматривать с этого момента, гораздо сложнее с точки зрения теории и концепций. Я постараюсь сделать содержание как можно более простым. Сама программная часть довольно проста и понятна. Но если вы не понимаете стоящую за этим теорию, вы останетесь совершенно без ресурсов для доработки или даже адаптации системы репликации/моделирования под задачи, отличающиеся от тех, что я собираюсь показать. Я не хочу, чтобы вы просто компилировали и использовали код, который я показываю. Я хочу, чтобы вы учились, разбирались и, если возможно, могли создать что-то еще лучше.
Моделирование рынка (Часть 23): Первые шаги на SQL (VI)
В этой статье мы рассмотрим, как выполнить визуализацию и, следовательно, поймем, как структурирована база данных. Это было сделано с помощью анализа внутренней структуры базы данных. Хотя подобные вещи могут показаться излишними, они вполне оправданы, если мы действительно намерены стать администраторами баз данных. Да, есть люди, которые зарабатывают на жизнь, поддерживая и создавая базы данных.
Моделирование рынка: Первые шаги на SQL в MQL5 (V)
В предыдущей статье я показал, как следовало действовать для добавления механизма запросов. Это было нужно для того, чтобы внутри кода MQL5 вы могли полноценно использовать SQL и получать результаты при выполнении команды SQL SELECT FROM. Но осталось рассказать последнюю функцию, которую нам необходимо реализовать. Это функция DatabaseReadBind. И, поскольку для правильного понимания требуется чуть более развернутое объяснение, было решено сделать это не в той предыдущей статье, а в сегодняшней. Итак, поскольку тема будет довольно объемной, перейдём сразу к следующему разделу.
Двумерные копулы в MQL5 (Часть 1): Реализация гауссовой копулы и t-копулы Стьюдента для моделирования зависимостей
Это первая часть серии статей, посвящённых реализации двумерных копул в MQL5. В статье представлен код, реализующий гауссову копулу и t-копулу Стьюдента. Также рассматриваются основы статистических копул и связанные с ними темы. Код основан на Python-пакете ArbitrageLab от Hudson and Thames.
Моделирование рынка: Первые шаги на SQL в MQL5 (III)
В предыдущей статье мы рассмотрели пример реализации класса на MQL5 для обеспечения базовой поддержки. Его цель заключается именно в том, чтобы позволить хранить SQL-код в отдельном файле скрипта. Таким образом, нам не потребуется писать тот же SQL-код в виде строки внутри кода MQL5. Хотя данное решение функционально, в нём есть некоторые детали, которые мы можем и должны улучшить.
Кодекс рыночных состояний в MQL5 (Часть 2): Побитовое обучение и мультипаттерны на примере Nvidia
Мы продолжаем нашу новую серию о рыночном позиционировании, в которой изучаем отдельные активы с конкретными направлениями сделок на управляемых тестовых окнах. Мы начали её с рассмотрения акций Nvidia Corp в предыдущей статье, где разобрали 5 сигнальных паттернов, основанных на взаимодополняющем сочетании осцилляторов RSI и DeMarker. В этой статье мы рассмотрим оставшиеся 5 паттернов, а также мультипаттерн-варианты — от произвольных комбинаций всех десяти сигналов до более узкоспециализированных сочетаний.
Моделирование рынка: Первые шаги на SQL в MQL5 (IV)
Многие люди склонны недооценивать SQL или даже вообще не использовать его, потому что не до конца понимают, как он на самом деле работает. При выполнении запросов к базе данных SQL мы не всегда ищем универсальный ответ, а в некоторых случаях нам нужен очень конкретный и практичный ответ. Если создать базу данных с надлежащей структурой и моделью данных, в неё можно будет интегрировать практически любые типы информации.
Разработка инструментария для анализа Price Action (Часть 57): Создание модуля классификации состояния рынка на MQL5
В этой статье представлен модуль классификации состояния рынка на MQL5, который интерпретирует поведение цены по данным закрытых свечей. Анализируя сжатие и расширение волатильности, а также согласованность структуры, инструмент классифицирует состояние рынка как сжатие, переходное состояние, расширение или тренд и тем самым формирует четкий контекст для анализа Price Action.
Моделирование рынка: Первые шаги на SQL в MQL5 (II)
Хотя многие считают, что мы можем без проблем встраивать SQL-код в другой код, обычно это не так. Причина заключается в том, что SQL-код включается в исполняемый файл в виде строки. И тот факт, что SQL-код внедряется в виде строки, хотя и не вызывает проблем в небольших фрагментах, в итоге это может создать нам немало головной боли.
Разработка инструментария для анализа Price Action (Часть 56): Анализ принятия и отвержения на границах сессии с помощью CP
В этой статье представлен сессионный аналитический подход, сочетающий рыночные сессии с заданными временными границами и индекс давления свечи (CPI), чтобы на основе закрытых свечей и четко определенных правил классифицировать принятие и отвержение на границах сессий.
Моделирование рынка: Position View (VIII)
В предыдущей статье мы рассмотрели, как можно реализовать индикатор позиции для закрытия открытой позиции непосредственно с графика, взаимодействуя с доступным на нем объектом. После завершения и проверки работы первого механизма мы приступили к внесению изменений, чтобы обеспечить возможность удаления линий тейк-профита и стоп-лосса для открытой позиции. Однако, поскольку необходимые изменения требовали подробных объяснений, в той же статье я показал только те изменения, которые необходимо было внести в советник, но всё ещё требовалось показать изменения, которые необходимо было внести в индикатор позиции.
Моделирование рынка: Position View (IV)
Здесь мы начнем объединять различные компоненты или приложения, которые ранее были полностью изолированы друг от друга. Chart Trade, индикатор мыши и советник уже были связаны между собой, однако всё ещё отсутствовал способ прямой визуализации на графике открытых на торговом сервере позиций, которые зачастую обрабатывались через систему встречных ордеров. С этого момента это становится возможным, открывая путь для различных идей и будущих реализаций. Хотя мы только начинаем внедрять эти компоненты в работу, у нас уже появится направление для дальнейшего развития.
Ручное тестирование на исторических данных в тестере стратегий MetaTrader 5 с кнопками Buy/Sell на графике
Узнайте, как создать советника для ручного тестирования в визуальном тестере MetaTrader 5, добавив кнопки на графике с помощью CButton, размещая ордера через CTrade и фильтруя позиции с помощью «магического числа». В статье реализованы элементы управления Buy/Sell и Close All, настраиваемый размер лота и начальный стоп-лосс, а также трейлинг-стоп через CPositionInfo. Кроме того, вы узнаете, как загружать индикаторы с помощью tester.tpl для более быстрой проверки идей перед автоматизацией и сужения диапазонов оптимизации.
Моделирование рынка: Position View (V)
Несмотря на изложенное в предыдущей статье, это кажется чем-то простым. Там перед нами стоят различные проблемы и множество задач, которые нужно решить и выполнить. Вы, уважаемый читатель, можете представить, что всё легко и просто. По наивности вы просто принимаете то, что вам предлагают. И это ошибка, которой вам, уважаемый читатель, следует постараться избежать. Хуже простого принятия — непонимание и попытка использовать что-то без реального осознания того, что именно используется. Среди новичков часто встречается этап копирования и вставки кода. Если вы не хотите навсегда остаться на этом этапе, стоит научиться использовать определенные инструменты. Одним из наиболее часто используемых программистами инструментов является документация. Второй инструмент состоит из тестов и лог-файлов. Здесь мы увидим, как это сделать.
Моделирование рынка: Position View (II)
В этой статье я покажу как максимально просто и практично использовать индикатор для отслеживания открытых позиций на торговом сервере. Я делаю это именно так, шаг за шагом, чтобы показать, что вам не обязательно переносить всё это в советник. Многие из вас, вероятно, уже привыкли к этому по той или иной причине. На самом деле это ерунда, так как по мере развития данной реализации станет ясно, что вы сможете создавать или реализовать различные типы индикаторов для этой цели.
Моделирование рынка: Position View (VI)
В данной статье мы внесем ряд улучшений, чтобы индикатор позиции точно отражал реальное состояние дел на торговом сервере с точки зрения открытых позиций и их текущего состояния. Я должен напомнить, что эти приложения, которые будут здесь показаны, ни в коем случае не предназначены для замены каких-либо элементов, доступных в MetaTrader 5. Их также не следует использовать без должной осмотрительности и взвешенного подхода, поскольку их цель — представить обучающий код, то есть предназначенный исключительно для изучения принципов работы системы. Причина, по которой я называю этот код обучающим, заключается в том, что использование сообщений в некоторых случаях не является лучшим способом реализации определенных функций.
Моделирование рынка: Position View (VII)
В данной статье мы начнем вносить некоторые улучшения в индикатор позиции, чтобы иметь возможность взаимодействовать с ним и изменять ценовые линии или закрывать позицию напрямую через взаимодействие с индикатором позиции. Прежде чем мы перейдем к реализации, стоит кое-что уточнить, особенно для тех, кто об этом не знает. Индикатор никак не может использоваться для изменения чего-либо на торговом сервере. Это связано с тем, что в MetaTrader 5 действует система безопасности, которая позволяет воздействовать на ордера и позиции только советникам. Никакое другое приложение, кроме советника, не сможет манипулировать ордерами или позициями.
Разработка динамического мультивалютного советника (Часть 8): Ротация капитала в зависимости от времени суток
В этой статье представлен механизм ротации капитала по торговым сессиям на языке MQL5, который распределяет риск по торговым сессиям вместо равномерной экспозиции в течение всего дня. Мы подробно разберем бюджеты риска по сессиям в рамках дневного лимита, динамический расчет лота на основе оставшегося риска сессии и автоматические ежедневные сбросы. При исполнении сделок используется специфичная для каждой сессии логика пробоя и торговли против ложного движения с подтверждением волатильности по ATR. В результате читатель получает практический шаблон, который позволяет направлять капитал туда, где условия конкретной сессии статистически наиболее сильны, сохраняя при этом контроль над экспозицией в течение всего дня.
Моделирование рынка: Position View (III)
В предыдущих статьях мы упоминали, что иногда нам необходимо задать значение для свойства ZOrder. Но почему? Причина в том, что многие коды, добавляющие объекты на график, просто не используют или, точнее, не определяют значение для этого свойства. Дело в том, что я здесь не для того, чтобы говорить, что должен или не должен делать каждый программист, или как он должен или не должен писать свой код. Я здесь для того, чтобы показать вам, уважаемый читатель, и всем, кто действительно хочет понять внутреннее устройство процессов, что именно происходит за кулисами.
Возможности Мастера MQL5, которые вам нужно знать (Часть 77): Использование индикаторов Gator и A/D (Accumulation/Distribution)
Осциллятор Gator Билла Вильямса и осциллятор накопления/распределения образуют еще одну пару индикаторов, которую можно совместно использовать в советнике на MQL5. Мы используем осциллятор Gator для подтверждения наличия тренда, а A/D – для его дополнительного подтверждения по объему. Как и прежде, для изучения этой пары индикаторов мы используем Мастер MQL5, чтобы создать и протестировать соответствующий советник.
Анализ CSV-данных (Часть 1): Механизм экспорта CSV при многоядерной оптимизации в MQL5
При многоядерной оптимизации в MetaTrader 5 результаты могут незаметно теряться, когда параллельные агенты одновременно обращаются к одному CSV-файлу. Повторно используемый механизм экспорта MQL5 применяет итерационную спин-блокировку, чтобы надёжно открыть файл и добавлять строки без потерь. Он сохраняет пользовательские метрики, включая коэффициент Сортино, среднюю продолжительность сделки и показатели качества сигналов — запаздывание и частота ложных разворотов (whipsaws) — в сводном CSV-файле для последующей аналитической обработки.
Моделирование рынка: Position View (IX)
В данной статье, которая станет поворотным моментом, мы начнем более глубоко изучать взаимодействие между разрабатываемыми нами приложениями для обеспечения полной поддержки системы повторов и симуляции. Здесь мы проанализируем проблему, которая, с одной стороны, довольно неприятна, но с другой — очень интересна для объяснения и решения. Проблема заключается в следующем: как вернуть линии тейк-профита и стоп-лосса после того, как они были удалены, и сделать это без использования терминала путем выполнения операции прямо на графике. На первый взгляд, это кажется простым. Однако, существуют несколько препятствий, которые необходимо преодолеть.