Уроки программирования на MQL4

F

ForTrader

Гость
Урок №6. Повышение быстродействия форекс советника

Повышение быстродействия советника​
Сегодня мы продолжаем работу над советником FromHollowToTop. Тестирование первой версии показало, что вход по индикатору ZigZag зачастую бывает преждевременным. Для того чтобы совершить вход, когда цена пойдет в нужную нам сторону, а не будет продолжать движение, перерисовывая луч, необходимо ввести дополнительное условие. Такое дополнительное условие будет служить своеобразным фильтром, отбрасывающим ранние сигналы. В качестве дополнительного условия можно принять закрытие свечи выше или ниже предыдущей (не путать простое пробитие свечи, речь идет о значении цены закрытия). То есть, для осуществления покупки необходимо, чтобы цена закрытия свечи была выше максимума предыдущей свечи, а для продажи – ниже минимума.
Очевидно, что далеко не всегда мы будем получать оба сигнала (сигнал от зигзага и дополнительный сигнал) на одной и той же свече. Скорее всего, последний экстремум зигзага будет где-то на 5-6 баре от текущего, когда получим пробитие предыдущего бара ценой закрытия. Поэтому, если на текущем баре значение индикатора ZigZag равно нулю (нет экстремума), то нам нужно найти бар, на котором оно не равно нулю, иначе говоря, найти экстремум...

Читать урок полностью: Скачать: ft140311.zip (68 номер журнала форекс ForTrader.ru - Австралийский доллар. Австралия - такая же, как все)
 
Последнее редактирование модератором:

Юрий FT

Модератор
Урок №7. Работа с файлами

Работа с файлами​
В отличие от других языков программирования, работа с файлами в MQL4 немного ограниченна, так как позволяет читать и записывать информацию в файлы только по определенным папкам. Разработчики утверждают, что это сделано в целях безопасности, чтобы применение чужих экспертов не нанесло вред операционной системе или даже оборудованию. Видимо, благодаря этому обстоятельству, не было случаев появления экспертов-вирусов. Хотя при этом никто не отменял возможность использовать вызовы функций из динамических библиотек (DLL), при помощи которых более-менее опытный программист поставит на колени практически любую систему. Но и с этой проблемой рядовому пользователю бороться просто – убрать флажок «Разрешить импорт DLL» в главном меню МТ4 «Сервис»-«Настройки»-«Советники». То есть здесь все в наших руках и внимательности.

Читать урок полность: https://fortrader.org/ftgate.php?id=127&num=24
 

Вложения

Последнее редактирование модератором:
F

ForTrader

Гость
урок №8. Создание индикатора.

Создание индикатора

Принцип работы индикатора схож с работой эксперта. Он также при запуске передает управление функции init, по приходу тика запускает функцию start, а при отключении выполняет функцию deinit. Отличие состоит в том, что из индикатора нельзя вызывать торговые функции. Разница ощущается визуально. Ведь основной задачей индикатора является отображение информации, а советника – торговля.

Для изучения тонкостей работы индикаторов создадим небольшой индикатор торговых сессий. Суть его будет заключаться в том, что сутки мы условно разобьем на три части (время терминальное): с 0-8 часов (азиатская сессия), с 8-16 часов (европейская сессия), с 16-24 (американская). По каждой из этих сессий будем находить максимальное и минимальное значение, которое будет отображаться на следующей сессии горизонтальными линиями.

Читать урок далее: https://fortrader.org/ftgate.php?id=127&num=25
 
Последнее редактирование модератором:

Юрий FT

Модератор
Урок №9. Графические объекты.

Урок №9. Графические объекты.

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

Читать урок далее: https://fortrader.org/ftgate.php?id=127&num=26
 

Вложения

Последнее редактирование модератором:

Юлия

Главный редактор
Урок. 10. Система с несколькими ордерами. Гридеры.

Система с несколькими ордерами. Гридеры.​

До сих пор мы рассматривали советники «простого» типа. Их простота заключалась в открытии по сигналу одной позиции, которая до своего закрытия так и оставалась единственной, даже в случае получения еще одного сигнала в том же направлении. Если требовалось открыть позицию, противоположную существующей, мы сначала закрывали имеющуюся. И только после успешного закрытия открывали новую позицию. Казалось бы, простота – залог успеха, но не всегда. Существует множество систем, которые оперируют не одним ордером, а одновременно двумя и более. Действительно, если мы поймали тренд, почему бы не добавить позиций в ту же сторону? Ведь подобное добавление, в разумных пределах конечно, в худших случаях приводит к небольшому уменьшению заработка, а в лучших – к существенному приросту депозита.
Одними из наиболее часто встречающихся систем с одновременным удержанием двух и более позиций являются гридеры. Гридеры (от англ. grid - сетка) в основном являются безиндикаторными системами и основаны на размещении сетки ордеров на некотором расстоянии от рынка в одну и в другую сторону. Сразу замечу, что очень мало подобных систем является прибыльными, так как довольно трудно подобрать правильный баланс между шагом сетки (расстояние между соседними ордерами) и профитом. Тем не менее, умы многих трейдеров будоражит идея о том, что если рынок в одну сторону не пошел, то обязательно пойдет в другую, забывая о таком состоянии рынка как флет и наоборот – работая в боковом движении, забывая про тренд.

Читать урок далее: https://fortrader.org/ftgate.php?id=127&num=27.
 

Вложения

Последнее редактирование модератором:

zero

Почетный гражданин
А где первые 5 уроков О_о ?

чет не могу найти
 

Юлия

Главный редактор
Первые пять уроков вы можете найти в ранних выпусках журнала. Чуть позже мы дадим в ветке анонс и ссылку на их скачивание.
 

Юлия

Главный редактор
Урок. 11. Мультивалютный советник.

Мультивалютный советник

В процессе торговли мало кто из трейдеров ограничивается работой только на одном инструменте. Это оправдано старой поговоркой «не ложи все яйца в одну корзину». Таким образом, одновременное открытие позиций по нескольким валютным парам в худшем случае может уменьшить убытки, а в лучшем – увеличить прибыль. К тому же, зачастую сложно предвидеть, по какому из инструментов движение будет наибольшим.
Если трейдер применяет свою торговую систему ко всем инструментам одинаково, обладая при этом достаточно большим депозитом, то проблема решается просто – на каждый из рабочих графиков прикрепляется один и тот же советник. А если торговая система предусматривает слежение за тремя десятками инструментов, а одновременную работу только по десяти из них, которые дают более перспективные сигналы? Тогда нужно наладить взаимодействие между советниками, обмениваясь информацией через глобальные переменные терминала. Такой способ имеет право на жизнь и используется многими программистами. Но все же удобнее и эффективнее организовывать обмен информацией внутри одного советника, который прикреплен только к одному графику, но имеет возможность торговать на всех доступных валютных парах. Этот подход автоматически решает проблему одновременного доступа нескольких советников к торговому потоку. Такое часто случается, когда в один и тот же момент несколько советников пытаются осуществить торговую операцию. В результате большинство из них получает ошибку 146 – торговый поток занят. Со следующим тиком, конечно, количество одновременно обратившихся советников уменьшается, но вновь происходит возникновение ошибки. Если же все советники организовать в теле одной программы, то с разделением прав доступа проблем возникать не будет, так как одна программа не может пытаться открыть множество позиций одновременно.
По большому счету, мультивалютный советник мало чем отличается от обычного одновалютного эксперта. В нем просто добавляется цикл, в котором меняются названия инструментов, а логика работы остается та же. Но именно в мелочах зачастую и скрываются основные сложности разработки мультивалютных экспертов. Ведь уже недостаточно написать Symbol() для указания нужного инструмента – потребуется конкретика. То же самое относится к ценам Bid и Ask. Одноименные предопределенные переменные дадут нам информацию только о ценах текущей валютной пары. Для определения цен другого инструмента придется использовать вызов MarketInfo с параметрами MODE_BID и MODE_ASK соответственно. Дальше – больше. На разных валютных парах существуют различные торговые условия – спрэд, уровень стопов, значения Point и Digits – все отличается. Еще одной головной болью разработчиков мультивалютных экспертов является отсутствие возможности протестировать их в тестере стратегий. Точнее, по одной валютной паре их протестировать возможно, но вот даже с двумя инструментами (не говоря уже о трех, четырех или десяти) никак не провернуться. Поэтому здесь используется «старый дедовский метод» - тестирование он-лайн на демо-счете.
Дополнительным минусом мультивалютных экспертов является большое количество внешних параметров эксперта. Довольно неудобно при каждом запуске настраивать все эти параметры. Хотя, конечно, можно воспользоваться встроенной возможностью терминала для сохранения и загрузки внешних параметров эксперта. Но если наряду с параметрами требуется загрузка некоторых данных из файла (например, время выхода важных новостей на ближайшую неделю, месяц), то удобнее все настройки вынести в файл, оставив во внешних переменных только имена файлов данных.
В качестве примера создадим советника MutiSymbols, который оперирует максимум десятью валютами...

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=28.
 

Вложения

Последнее редактирование модератором:

Юлия

Главный редактор
Урок 12. Использование автооптимизации.

Использование автооптимизации​

Ни для кого не является новостью, что создание абсолютной системы, которая будет давать прибыль при любом состоянии рынка бесконечно долго, как минимум затруднительно, как максимум – невозможно. До сих пор очень часто на форумах встречаются заявления о создании очередного «Грааля». Большинство форумян очень скептично относятся к такого рода заявлениям и даже открыто высмеивают авторов манны небесной. И вправду, зачем нашедшему клад рассказывать об этом на весь мир?
Понимая, что поиск сверхсистемы изначально обречен на неудачу, многие из нас, как алхимики, упорно продолжают поиски своего философского камня. На этом этапе часто удается создать систему, которая приносит прибыль некоторое время, а затем рынок вновь изменяется. Профессиональные трейдеры в таких случаях также корректируют свою систему или разрабатывают новую, что позволяет им таковыми и оставаться. Советник же полностью изменить самого себя не в силах, так как это прерогатива его создателя, а вот немного подкорректировать свою стратегию вполне может, подобрав другие параметры профита, стопа и т. д. Этот процесс в тестере стратегий называется оптимизацией.
Запустить программно тестер стратегий и произвести в нем оптимизацию возможно (нужно использовать API-функции Windows), но будет не очень надежно в плане дальнейшей поддержки терминалом. Ведь коды кнопок и окон не документированы официально и поэтому могут быть изменены в следующих релизах МТ4. Поэтому лучшим выходом будет являться оптимизация непосредственно при помощи самого советника. То есть, через какой-то промежуток времени советник производит оптимизацию и до следующей оптимизации работает с полученными лучшими параметрами. Через определенный период действия повторяются. Это позволит советнику все время изменяться, следуя изменениям рынка. Хотя не факт, что изменения рынка будут касаться только каких-то параметров советника. Может, сама стратегия, заложенная в эксперте, себя изживет. Но не будем о грустном и вспомним один из постулатов технического анализа – «тенденция скорее продолжится, чем изменится». То есть подбор параметров на небольшом отрезке ближайшей истории может быть оправдан, хотя никто гарантию на такую «оправданность» не даст.
Тем более, при подборе параметров перед нами еще стоит выбор временнόго промежутка для оптимизации. Скорее всего, это должна быть ближайшая история, а вот оптимальную длительность этой истории нужно тоже как-то подбирать. Таким образом, даже в параметрах оптимизации есть, где разгуляться.
Заниматься моделированием тиков, как это делает тестер стратегий, мы не будем, так как функция оптимизации в этом случае будет уж очень объемной. Пойдем по более простому, но не менее эффективному пути. Вспомните, как вы изначально проверяете только что родившуюся идею. Вряд ли вы сразу начинаете писать советника. Проще всего визуально пройтись по истории, отмечая входы и выходы из сделок. В этом случае нас не интересуют реальные тики, вполне достаточно самих свечей с их четырьмя основными характеристиками. Эта модель тестирования в тестере стратегий называется «по ценам открытия». Понятно, что далеко не все стратегии могут быть проверены в этой модели. Но практика показывает, что подобные эксперты при использовании на реальном счете работают с результатами более близкими к результатам предварительного тестирования.

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=29.
 

Вложения

Последнее редактирование модератором:

scriptong

Почетный гражданин
Потребности читателей

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

Юлия

Главный редактор
Урок 13. Организация связи между двумя терминалами.

Организация связи между двумя терминалами
Любой вид анализа, который трейдеры пытаются применить к рынку, обладает своими достоинствами и недостатками. И именно недостатки делают любой анализ неполным, а в некоторых случаях вообще недостоверным. В данном случае мы будем говорить о недостатках технического анализа, так как автоматическая торговля в большинстве случаев базируется на анализе графиков, а применение фундаментального анализа для полностью автоматической торговли невозможно, только лишь в связке с человеком.
Основным недостатком технического анализа можно смело назвать отличие внешнего вида графиков у различных брокеров. Уже один тот факт, что терминальное время у каждого свое (объясняется нахождением брокеров в различных часовых поясах), приводит к различию дневных и четырехчасовых графиков. На это можно возразить, что часовые графики и ниже должны совпадать, так как во всем мире длительность часа одинаковая. Но и это не так. Наблюдая одновременно котировки нескольких ДЦ, можно заметить, что цены открытия и закрытия часа у них отличаются, даже при условии равенства текущих котировок. Это уже объясняется плотностью тиковых потоков, которая у каждого брокера тоже своя, и приводит к разной картинке, наблюдаемой на экране. То есть, медвежий бар одного ДЦ может быть представлен бычьим баром другого. Про разницу котировок можно вообще промолчать, так как она в основном не очень значительная (5-10 пунктов, редко до 20), но на мелких периодах вроде М1 может вполне сказаться.
Все вышеперечисленное приводит к разным показаниям индикаторов, на которых и базируется большинство советников. Не раз отмечалось, что по сигналам советника в ДЦ А1 необходимо совершить сделку Buy, а по сигналам этого же советника в ДЦ А2 сделку совершать нельзя или вообще нужно совершить Sell. В результате начинающие трейдеры начинают искать ДЦ, котировки которого являются «правильными», эталонными. Но в том то и беда, что абсолютной истины здесь не существует. Правильным будет тот поток котировок, с которым вы имеете дело, то есть именно брокера, у которого открыт ваш счет.
Тем не менее, есть одно решение проблемы. Если у вас имеется возможность одновременной работы с двумя и более ДЦ, то можно работать только по сигналам, которые возникают одновременно у всех просматриваемых брокеров. Остальные сигналы должны отбрасываться. Вручную такое сравнение довольно утомительно и может привести к частым механическим ошибкам. Именно здесь нам и пригодится автоматизация процесса.
Каким образом, возможно передать сигнал от эксперта одного терминала эксперту другого терминала?

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=30.
 

Вложения

Последнее редактирование модератором:

scriptong

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

В 12 уроке, уважаемый автор Игорь Герасько, респект ему,
чувствуется, не совсем раскрыл тему,
написал урок в лучшем стиле эпохи Советских кандидатов наук.

Вообще, понятно, что в сухом остатке параметров советника - неопределенность,
как местоположение электрона, место известно, время неизвестно;
время известно место неизвестно - квантовая механика.
Где FX - генератор случайных чисел, а советник псевдогенератор.
Т.к. Квантовая механика развивается,
(появилась теория: примерно,
частица всегда одновременно присутствует в 2 удаленных частях вселенной
и это одна частица.),
то развивается и а.оптимизация параметров советника.
Тем более, как и электрон (определяют место с определенной точностью)
определяем параметры советника с определенной точностью.

Уважаемый Игорь Герасько, есть же прогнозы банков на будущее курсов валют и % ставок.
Почему не построить скользящие средние цен в будущем на графиках,
рассмотреть варианты,
(кстати тоже а.оптимизировать их хотя бы через выбор направления тренда.),
а потом а.оптимизировать их. Хотя бы как, Вы, пишете в уроке.

Далее не рассмотрев главного в а.оптимизации, уважаемый автор начал с второстепенного:
Причем тут а.оптимизация лосей, профитов и прочих метапараметров.
Это только усложняет пути а.оптимизации, периоды а.оптимизации.
Достаточно прогнать параметры скользящей средней в 3 встроенных циклах for:
по средней, сигнальной и глубине количества баров истории с запоминанием
максимальной суммы прибыли и получением лучших 2 параметров средней на этой истории.
Не рассмотрены причины выбора периода а.оптимизации, отличия минуток от часов.
Не указан 1 из главных путей а.оптимизации направление тренда,
т.е. торговать только бай или только сел. И т.д. и т.п. А тупая а.оптимизация,
хотя бы одной скользящей средней цены в будущем, ни к чему хорошему не приведет.
В предыдущем примере советника, другой автор использует параметры кучи индикаторов,
это тоже ни к чему хорошему не приведет. Это избыточно.
(Нормальная модель атома построена только для водорода.)

Рассмотрим предварительную оптимизацию
Блока а.оптимизации параметров робота Марина:

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

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

Упрощено:

Тембр ноты Ля любого муз. инструмента отличается наличием мелких примесных синусоид.
Затухающая графика их известна. Европейские лады (полтона) смотрим для H4.
Индийские лады (четверть тона) смотрим для минуток. Евро сродни рок группе,
где набор нот инструментов группы в песне - генератор чисел FX,
а соло нот инструмента в группе - настроенный советник- псевдогенератор.

Песня - история евро(марки) за год,
куплеты - между принятием % ставок ЕЦБ и ФРС, фунта-БА, йены-БЯ, франка-БШ.
Переложив на ноты историю евры через свечи H4, где длительности нот и свечей совпадают.
Паузы, проигрыши - выходные и праздники.
Имя ноты, определенной октавы, задано ценой евры за этот период,
т.е. от начало принятия % ставки до другого начала строим
хроматическую гамму на несколько октав.
Свеча-нота вниз строим минорный аккорд, вверх мажорный аккорд,
в конце музыкальной фразы септаккорд.

Накладываем тренд вверх тональность До мажор, вниз - Ля минор.
Евро - вокал; фунт - бас-гитара; йена-ударные; франк-ритм-гитара.
Кан.Ав.Нз.,Кроссы - доп. инструменты.

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

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

В общих чертах, упрощенно, где-то так.

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

scriptong

Почетный гражданин
Сначала отвечу по сути самого урока. Тема автооптимизации и не может быть раскрыта полностью одной статьей. По ней действительно можно написать довольно объемный труд, который и потянет минимум на кандидатскую (правда еще не ввели степень кандидата Форекс-трейдера).
Оптимизация по параметрам StopLoss (SL) и TakeProfit(TP) действительно является не очень эффективной, так как волатильность рынка всегда очень разнится и загнать ее в какие-то числовые рамки не представляется возможным. Но данный подход был избран мною сознательно, так как позволил показать особенности модели тестирования "по ценам открытия", особенно при небольших (в несколько пунктов) значениях SL и TP. К тому же, целью уроков является указание простейших приемов программирования и анализа полученных данных, а не масшатбное исследование. Это кирпичики, из которых в дальнейшем можно будет построить собственный дом. Скорее всего, в будущем я продвинусь в конкретике, вернувшись к первым темам (поэтому и начата данная тема, чтобы по ее мотивам выбирать более сложные направления), но на данном этапе рассматриваются азы. Ведь глупо, научив ребенка алфавиту от А до П, заставлять его строить деепричастные обороты.
 

scriptong

Почетный гражданин
По второй части. Здесь предложено несколько сравнений:
1) Параметров советника с корпускулярно-волновым дуализмом
2) Форекс с генератором случайных чисел
3) Форекс с музыкальными композициями.

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

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

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

Так что прошу развивать эту мысль далее.
 

Юлия

Главный редактор
Урок. 14. Полезные функции.

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

1. Функция закрытия позиции в указанное время;
2. Функция закрытия всех позиций и удаления ордеров эксперта при достижении определенной прибыли или просадки;
3. Функция расчета объема сделки.

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=31.
 

Вложения

Последнее редактирование модератором:

Юлия

Главный редактор
Урок. 15. Тестирование портфельных стратегий.

Тестирование портфельных стратегий​

В 11-ом уроке (№29 от 8-го сентября 2008 года, стр. 36-44) была описана технология создания мультивалютного советника (советник, который прикреплен к одному графику, а торгует одновременно на нескольких валютных парах). Возникает логичный вопрос, каким образом, кроме непосредственно онлайн-тестирования, можно проверить работу такого советника? Ведь на данный момент тестер стратегий МТ4 не поддерживает торговлю на нескольких валютных парах. Единственным выходом пока что является раздельное тестирование эксперта на отдельно взятых валютных парах (искусственное отключение всех остальных пар), а после этого суммирование полученных отчетов с синхронизацией по времени. Такой метод тоже подходит не для всех стратегий (например, для тех, где при открытии позиции по одной паре из портфеля, происходит запрещение открытия позиции по другой паре), но такие случаи пока опустим.
Итак, нашей задачей является объединение некоторого набора отчетов в один отчет с синхронизацией сделок и подсчетом основных статистических характеристик.

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=32.
 

Вложения

Последнее редактирование модератором:

Юрий FT

Модератор
Урок. 16. Комбинации японских свечей (паттерны)

Комбинации японских свечей (паттерны)​

Одним из самых распространенных графических представлений цены в настоящее время является график в виде японских свечей. Это связано с тем, что линейный график, хоть и более простой, не дает наглядной информации о движении цены внутри временного периода. График в виде японских свечей более информативен еще и в плане создаваемых образов. С приобретением опыта каждый трейдер формирует подсознательное представление о том, на что должны быть похожи комбинации свечей в том или ином случае. Наиболее интересными, конечно же, являются комбинации свечей, предшествующие развороту сложившегося тренда, так как целью трейдинга является покупка по самой низкой цене, а продажа – по самой высокой.
Какими бы ни были представления отдельно взятого трейдера, существуют классические комбинации свечей (их еще называют паттернами), подтверждающие развороты трендов. На рисунках классические паттерны выглядят довольно понятно и просто. Сложность же заключается в их формализации, то есть в точном описании взаимного расположения свечей, образующих ту или иную комбинацию. Например паттерны «голова-плечи» и «перевернутая голова-плечи» являются трудно описываемыми комбинациями, так как в их образовании участвует различное количество свечей, хотя зрительно мы можем легко определить, что перед нами именно «голова-плечи». Поэтому мы разберем наиболее формализуемые паттерны, которые разделим на три вида: подтверждающие разворот медвежьего тренда, подтверждающие разворот бычьего тренда и подтверждающие продолжение тренда.
Все нижеприведенные функции объединим в советнике CandlePatterns, внешними параметрами которого будут логические переменные с названием соответствующего паттерна, запрещающие или разрешающие применение паттерна.

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=34.
 

Вложения

Последнее редактирование модератором:

Юлия

Главный редактор
Урок. 17. Комбинации японских свечей (продолжение)

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

В уроке будут рассмотрены:
- Повешенный;
- Медвежье поглощение;
- Падающая звезда;
- Южный вечерний крест;
- Три вороны;
- Крест харами (медвежий).​

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=35.
 

Вложения

Последнее редактирование модератором:

Юлия

Главный редактор
Урок. 18. Комбинации японских свечей (заключение)

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

В уроке будут рассмотрены:
- Три белых солдата;
- Удержание на татами;
- Три одновременных крыла;
- Флаг.​

Настоящим уроком временно приостанавливаем тему программирования на MQL4, так как основное и самое важное уже было сказано. Но это не значит, что мы закрываем тему, если у вас остались неясными какие-то еще нюансы или темам, оставляйте свои сообщения на форуме: http://www.forexsystemsru.com/showthread.php?t=2215. Вместе с тем, начиная со следующего выпуска журнала, открывается раздел по тестированию советников и стратегий, выложенных в общем доступе. Будут рассмотрены различные идеи и, при необходимости, предложены пути их улучшения для использования в торговле.

Прочитать урок полностью: https://fortrader.org/ftgate.php?id=127&num=35.
 

Вложения

Последнее редактирование модератором:

nY3o

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