- Урок №12: Пишем советник по индикатору
- Создание
- Редактирование советников
- MQL4: Пишем советник по торговле заданных паттернов
- Что будем писать?
- Конструкция нашего советника
- Результаты
- Заключение
- Высокодоходные инвестиции, заработок на форекс, инвестирование в ПАММ, мониторинг проектов, обзоры, отзывы, форекс индикаторы и советники, MQL программирование
- Как написать советник для MT4
- Как написать индикатор для MT4
- Мартингейл в торговле на форекс
- Усреднение на форекс
- Myfxbook – возможно ли подделать мониторинг?
- Паттерны (графические модели) на Форекс: треугольник, вымпел, флаг
- Прибыльные советники Форекс – это миф или реальность?
- Возможен ли заработок на Форекс с помощью советников?
- Хайп проект: признаки, легенда, организация работы
- Десять простых советов начинающему интернет-инвестору
- Панель управления ордерами и тестер ручных стратегий в МТ4
- Разработка прибыльного усредняющего советника для MT4
- Свечной индикатор — какой по отношению к выборке является свеча
- Сглаженный индикатор CCI c точками входа
- Индикатор спреда
- Кредитное плечо на форекс
- Что показывает загрузка депозита
- Возможно ли гарантировано зарабатывать на форекс?
- Как написать советник для MT4 по японским свечным моделям
Урок №12: Пишем советник по индикатору
На прошлом уроке мы с вами писали индикатор, который указывает входы в рынок. Соответственно сегодня мы займёмся разработкой эксперта, использующего его сигналы.
Начнём с создания шаблона советника(как это сделать мы разбирали на уроке №10).
Опишем входные параметры эксперта:
Значения StopLoss, TakeProfit и Slippage, присвоенные в параметрах, указаны для 4-х значного брокера, соответственно, чтобы эти же значения корректно работали у 5-ти значного ДЦ их нужно умножить на 10, что мы и сделаем в функции OnInit:
Начало нашего советника положено, что уже хорошо. Давайте теперь рассмотрим входные параметры индикатора, а заодно и номера буферов для сигналов:
Обычно я просто копирую параметры индикатора в код своего эксперта, в дальнейшем это позволит нам оптимизировать сам советник. В итоге получаем:
Переходим к функции OnTick и пишем заготовку обработчика, где описываю алгоритм работы эксперта:
- if (CountBuy() == 0) — я проверяю есть-ли у меня ордера на покупку, находящиеся в рынке, и если нет, то шаг 2.
- BuySignal = … — проверяем наличие сигнала на покупку по индикатору, кстати, это будет переменная, которую необходимо объявить заранее.
- if (BuySignal > 0) — если есть сигнал на покупку, то переходим к шагу 4.
- CloseSell() — закрываем открытые ордера на продажу, если они есть и переходим к шагу 5.
- Открываем ордер на покупку.
Точно такой же блок делается и для продаж.
Исходя из написанного алгоритма сразу видно, что предварительно нам потребуется несколько функций: CountBuy(), CountSell(), CloseBuy(), CloseSell(), а также написать код получения сигнала с индикатора.
Объявим в коде несколько переменных для дальнейшей работы и необходимые функции:
Функция CountBuy():
Аналогично пишется функция CountSell(), разве что проверяется тип ордера OP_SELL:
Далее пишем функцию CloseBuy():
Пишем практически всё то же самое и для закрытия ордеров на продажу, разница лишь в типе проверяемого ордера и цене закрытия, функция CloseSell():
На текущий момент нам осталось получить сигналы от индикаторы и написать код, открывающий ордера по его сигналам.
Для получения сигнала от любого пользовательского индикатора используется функция iCustom, обратившись к справке (F1) видим формат вызова функции:
Теперь мы можем с легкостью получить сигнал на покупку в нашем советнике:
заодно и сигнал на продажу:
кстати, обратите внимание на предпоследний параметр mode, который мы передаём в функцию iCustom — это номер буфера индикатора, где хранятся сигналы покупок и продаж.
Таким образом наша функция OnTick() будет выглядеть следующим образом:
Собственно говоря, на этом всё, разработка советника на пользовательском индикаторе завершена.
Источник
Создание
Для создания советников используются язык программирования торговых стратегий MetaQuotes Language 4 (MQL4) и редактор MetaEditor. Чтобы запустить редактор советников, необходимо выполнить команду «Создать» контекстного меню окна «Навигатор — Советники», команду меню «Сервис — Редактор MetaQuotes Language», нажать клавишу F4 или кнопку панели «Стандартная».
При создании эксперта автоматически откроется мастер создания советников, позволяющий быстро приступить к работе с новой MQL4-программой. В нем в качестве типа создаваемого объекта необходимо указать «Советник» и заполнить поля требуемыми данными:
- Имя — название советника;
- Автор — имя автора;
- Ссылка — адрес сайта разработчика;
- Параметры — список входных параметров советника. Чтобы добавить новый параметр, необходимо нажать кнопку «Добавить», чтобы удалить — кнопку «Удалить».
После этого в редакторе открывается окно нового советника с заданными параметрами. Файл с исходным текстом (*.MQ4) советника автоматически помещается в папку /EXPERTS клиентского терминала. С этого момента можно приступать к написанию кода эксперта.
По завершении разработки необходимо скомпилировать советник. Для этого в редакторе советников необходимо выполнить команду меню «Файл — Компилировать», нажать клавишу F5 или кнопку панели инструментов. В результате успешной компиляции создается исполняемый файл программы с расширением *.EX4, автоматически помещаемый в папку /EXPERTS. Список скомпилированных экспертов можно просмотреть в окне «Навигатор — Советники» клиентского терминала. Если компиляция не была успешно завершена, пиктограмма эксперта будет закрашена серым цветом. Это означает, что его использовать нельзя.
Редактирование советников
Чтобы приступить к редактированию уже существующего советника из терминала, необходимо выполнить команду «Изменить» контекстного меню окна «Навигатор — Советники». При этом откроется редактор советников, в который уже будет загружен исходный текст выбранного эксперта. После изменения исходного текста советника необходимо повторно скомпилировать его и получить новый исполняемый EX4-файл. В противном случае в терминале будет использоваться неизмененная, предыдущая версия эксперта.
Внимание: если компиляция не была успешно завершена, пиктограмма эксперта будет закрашена серым цветом. Это означает, что его использовать нельзя.
Источник
MQL4: Пишем советник по торговле заданных паттернов
Всем привет!
Наверняка многие из вас часто замечали, что периодически графики той или иной валютной пары повторяют свои движения. На самом деле, в большинстве случаев – это всего лишь временное явление, на котором не получится сделать достаточно много денег. Но что, если есть такие надежные ценовые движения и закономерности, о которых мы и не догадываемся? Сегодня мы напишем довольно простой советник, который поможет нам с исследованиями рынка.
Что будем писать?
В основе любого исследования всегда лежит определенная гипотеза. Сначала мы выдвигаем ее, а потом уже доказываем или опровергаем.
Сегодня мы напишем простой советник, который будет работать на дневных графиках. В основе формирования входа будет лежать некий свечной паттерн с привязкой ко дню недели. Гипотеза наша заключается в следующем: если мы видим одну медвежью свечу, а затем бычью, скажем, в среду, то в четверг свеча тоже будет бычьей. Если мы видим бычью свечу, а затем медвежью, то следующий день закроется еще ниже. Проиллюстрирую это на картинке:
Как видите, паттерн очень простой, и маловероятно, что он действительно работает. Тем не менее, на рынке действительно присутствуют подобные аномалии, на которых можно спокойно из года в год зарабатывать пусть и небольшие, но все же реальные деньги.
Конструкция нашего советника
Советник будет очень простым. Он будет сверять текущий день недели с днями, в которые торговля разрешена. Затем он проверит, нет ли сейчас открытых ордеров. После этого сверится, присутствует ли заданный паттерн, и в случае его обнаружения откроет сделку. Закрытие позиции будет произведено на следующий день.
Поэтому разделим тело советника на несколько частей. Первая часть – фильтр дня недели:
Он будет возвращать false, если текущий день недели запрещен в настройках. Второй блок генерирует сигнал:
if (!TimeFilter()) return -5;
double Close1 = iClose(_Symbol, signal_period, 1);
double Open1 = iOpen(_Symbol, signal_period, 1);
double Close2 = iClose(_Symbol, signal_period, 2);
double Open2 = iOpen(_Symbol, signal_period, 2);
if (Close2 > Open2 && Close1 Open1) <
Как видите, мы просто ищем нужный нам паттерн. И этот метод вы можете переписать под поиск любого паттерна.
Дальше осталось только написать метод для открытия и закрытия позиции. И метод, сигнализирующий о том, что текущая позиция уже открыта 1 бар, и ее пора закрывать:
bool ExitTime(int dir)<
for (int i = OrdersTotal(); i >= 0; i—) <
if (OrderSymbol() != Symbol() || OrderMagicNumber() != magic) <
if (TimeCurrent() – OrderOpenTime() > 60 * exit_bars * exit_period) <
Вот, собственно, и все. Полный код советника вы можете увидеть в видеоуроке.
Результаты
Как я уже говорил, советник, как и сам паттерн, – очень простой. Но на рынках «просто» – не всегда означает плохо и не прибыльно. Даже такие простые вещи, к нашему удивлению, могут оказаться рабочими, за что мне и нравится этот рынок. Это рынок умопомрачительных контрастов. В то время как ручные трейдеры торгуют вслепую вообще, без какого-либо подтверждения статистической значимости своих систем, новички вкладывают последние деньги в сетки и мартины, алготрейдеры изобретают все более изощренных скальперов с количеством строк кода, дающим фору «Войне и миру», порой очень простые, но прибыльные вещи лежат на поверхности, но их никто не видит. В этом есть какая-то очень изощренная ирония, не находите?
Результаты не блещут, конечно, но паттерн был взят наобум, и он крайне прост. Я уверен, что если немного подкорректировать его, – то можно добиться лучших результатов.
Заключение
Идея паттерна с двумя свечами противоположных цветов и настроенного на продолжение движения – очень простой пример. Тут не учитывается ни форма, ни волатильность, ни отношение размера теней к размеру самого тела свечи. Вы же можете придумать свои паттерны и протестировать их, – как знать, может быть, вы найдете действительно ценные и очень прибыльные возможности.
Источник
Высокодоходные инвестиции, заработок на форекс, инвестирование в ПАММ, мониторинг проектов, обзоры, отзывы, форекс индикаторы и советники, MQL программирование
Как написать советник для MT4
Как написать индикатор для MT4
Мартингейл в торговле на форекс
Усреднение на форекс
Myfxbook – возможно ли подделать мониторинг?
Паттерны (графические модели) на Форекс: треугольник, вымпел, флаг
Прибыльные советники Форекс – это миф или реальность?
Возможен ли заработок на Форекс с помощью советников?
Хайп проект: признаки, легенда, организация работы
Десять простых советов начинающему интернет-инвестору
Панель управления ордерами и тестер ручных стратегий в МТ4
Разработка прибыльного усредняющего советника для MT4
Свечной индикатор — какой по отношению к выборке является свеча
Сглаженный индикатор CCI c точками входа
Индикатор спреда
Кредитное плечо на форекс
Что показывает загрузка депозита
Возможно ли гарантировано зарабатывать на форекс?
Как написать советник для MT4 по японским свечным моделям
Всем привет. Сегодняшнее мое “извержение” мысли будет повествовать о том, как написать советник для MT4 по японским свечным моделям. При этом я рассмотрю всего две разворотных модели: утреннюю звезду и вечернюю звезду.
Нет, друзья, здесь мы с вами не приблизимся к безупречному граалю, хотя, для некоторых из вас этот “опус” вполне может быть “входным билетом” в профит, если повезет. Как помните, в прошлой краткой беседе о свечных моделях и свечном анализе, я уточнял, что свечные модели показывают настроение на рынке, а не точку входа. Тем не менее, свечные разворотные модели утреннюю и вечернюю звезду мы будем использовать именно в качестве точек входа и вместе с вами напишем советник по этим свечным моделям.
Фактически, ранее, я уже несколько раз касался вопроса написания советника на MQL4, приводил примеры, подробно комментировал код, описывал параметры, что можно видеть, например, при разработке усредняющего советника. Сегодня же я приведу конкретный, более подробный пример построения целой торговой системы, в т.ч. включающей:
- определение точек входа и выхода;
- управление рисками;
- управление деньгами.
Поскольку предложенная торговая система может быть полностью формализована (она будет иметь четкие параметры и правила), то это позволит мне написать автоматическую торговую систему – советник по японским свечным моделям, способную самостоятельно открывать и сопровождать сделки на рынке форекс.
В разговоре о написании индикатора для терминала MetaTrader 4, я рассматривал массивы-таймсерии. Всю информацию о японских свечах мы будем черпать именно из этих массивов.
А теперь давайте посмотрим на эти самые свечные модели – утреннюю и вечернюю звезду. Если вы до настоящего времени не прочли книгу Стива Нисона “За гранью японских свечей”, то рекомендую это сделать. Весьма полезно в образовательных целях. Итак, графически эти модели представляются так:
Из рисунка видно, что обе модели состоят из трех свечей. Причем, модель вечерняя звезда предусматривает наличие восходящего рынка, на котором возникает первая свеча модели с большим бычьим телом, после нее следует вторая свеча с маленьким бычьим либо медвежьим телом, которое не должно пересекаться с телом первой свечи. Затем идет уже третья свеча с медвежьим телом, которое, как правило, не пересекается с телом второй свечи и заходит глубоко в тело первой свечи.
Модель утренняя звезда, напротив, предусматривает наличие нисходящего рынка, на котором возникает первая свеча с большим медвежьим телом, после нее следует вторая свеча с маленьким бычьим либо медвежьим телом, которое не должно пересекаться с телом первой свечи. Затем идет уже третья свеча с бычьим телом, которое, как правило, не пересекается с телом второй свечи и заходит глубоко в тело первой свечи.
В своей книге Нисон уточняет, что классически считается, что тела соседних свечей, образующих модели вечерняя и утренняя звезда, не должны пересекаться, но, на том же рынке акций, например, цены открытия мало отличаются от цен закрытия накануне. Поэтому на подобных рынках (а в нашем случае и форекс) допускается некоторая гибкость в определении данных свечных моделей. Вот именно этим, друзья мои, и объясняется то, что:
Тем не менее, Стив Нисон особо отмечает, что слом тренда на этих моделях наиболее вероятен в том случае, когда модели максимально соответствуют классическому описанию.
С точки зрения свечного анализа модели утренняя и вечерняя звезда можно охарактеризовать так. Рынок находится в движении, кульминацией которого является первая свеча с длинным телом. Вторая же свеча с коротким телом говорит о том, что рынок пришел к некому равновесию, при котором достигается равенство сил быков и медведей. Третья же свеча, проникающая своим телом глубоко в тело первой свечи, говорит о том, что происходит смена направления движения рынка. Именно третья свеча данных свечных моделей рассматривается как подтверждение изменения тенденции с восходящей на нисходящую и наоборот.
Думаю, теории вполне достаточно. Приступим к практической части, в которой и ответим на главный вопрос: “Как написать советник для MT4 по свечным моделям?”. Давайте, все-таки формализует нашу торговую систему. Для начала определимся с условиями открытия длинных (покупок) и коротких (продаж) позиций, т.е. опишем точки входа:
- Мы будем покупать финансовый инструмент в том случае, когда на падающем рынке образуется свечная модель утренняя звезда.
- Мы будем продавать финансовый инструмент в том случае, когда на растущем рынке образуется свечная модель вечерняя звезда.
Падающий и растущий рынки будем определять исходя из направления трендовой прямой, проходящей через ценовые бары с индексами от некоторой, заданной параметром depth глубины до текущего бара. Параметры этой трендовой прямой (коэффициент наклона – k и смещение – b) будем определять методом наименьших квадратов. Именно по знаку коэффициента k определяется вид тренда: при k>0 – тренд восходящий, k 0 (стремящемся к нулю) – флэт. По значению модуля коэффициента k будем судить о силе тренда, сравнивая его с определенным параметром angle . Таким образом, тренд будем считать восходящим и достаточной силы при условии, если k>=angle, нисходящим и достаточной силы, при условии, если k tp , которым будем задавать расстояние от уровня открытия позиции до уровня фиксации прибыли. Этот же параметр будет определять и режим фиксации прибыли профит-ордером:
— при tp, отличном от нуля, профит (в пунктах) будет величиной постоянной для каждой открываемой позиции и не будет зависеть от текущей ситуации на рынке;
— при tp=0 цель по прибыли будет величиной переменной для каждой открываемой позиции. Уровень профит-ордера в данном случае будет определятся с учетом предыдущего “размаха” ценового движения и исходя из предопределенного параметром fibo_level уровня Фибоначчи: считаем, что свечные модели утренняя и вечерняя звезда образуют новый локальный экстремум (т.е. в центральной точке этих моделей происходит излом предыдущего тренда), и строим уровни Фибоначчи для пары соседних экстремумов, одним из которых является предшествующий свечным моделям соответствующий локальный экстремум, а другим – вновь образованный данными свечными моделями.
Предыдущий локальный экстремум будем определять из ломаной, построенной индикатором ZigZag. Зная, что данный индикатор имеет 2 буфера ценовых экстремумов (вершин ломаной), значения предыдущего локального максимума будем получать из 1 буфера, а предыдущего локального минимума из 2. Если на соответствующем ценовом баре (свече) не образуется локального экстремума, то буфер для соответствующего ценового бара содержит пустое значение (0). Зная это, перемещаемся вглубь по соответствующему индикаторному буферу до тех пор, пока не встретим первое непустое значение. Именно это значение и будет предыдущим локальным экстремумом.
Это расстояние-фильтр будем определять в параметре sl_filter .
Определимся с правилами управления деньгами торгового счета:
- Условимся, что мы можем изменять объем каждой вновь открываемой позиции по определенному правилу, в зависимости от наличия свободных средств торгового счета. Например, условимся, что в номинальном режиме объем сделки вычисляется исходя из того, что на каждую 1000 дол. свободных средств торгового счета приходится объем сделки равный 0.01 лот. Введя некий коэффициент, это соотношение можно изменять как в сторону увеличения, так и в сторону уменьшения. Назовем этот коэффициент параметром Risk .
- Введем правило Мартингейл, при котором в случае закрытия позиции с убытком, следующая позиция будет открываться с увеличенным на заданный коэффициент объемом. Назовем этот коэффициент параметром KLot .
Итак, выше мы определились с алгоритмом определения точек входа, фиксации прибыли, ввели необходимые параметры. Теперь приступим непосредственно к написанию советника по свечным моделям утренняя звезда и вечерняя звезда.
Определим параметры и переменные нашего будущего советника и опишем их, чтобы не забыть, как говорится:
Поскольку каждая японская свеча характеризуется целым набором параметров:
- ценой открытия и закрытия;
- максимальной и минимальной ценой;
- видом свечи: бычья, медвежья либо доджи;
- размером тела и теней,
то нам будет удобнее использовать одно имя для обозначения этой группы переменных. В этих целях введем в нашем советнике структуру candle , которая представлена следующим кодом на MQL4:
Итак, объявив структуру, описывающую свечу, мы можем создавать теперь и переменные такого типа. Поскольку модели утренняя звезда и вечерняя звезда образованы тремя свечами (модели из трех свечей), то объявим переменные, которые будут описывать каждую из этих трех свечей:
И инициализируем эти переменные:
Вы обратили внимание, что первой свече соответствует 3 индекс таймсерии, а третьей свече соответствует 1 индекс таймсерии?
Вдумчиво прочтя описание свечных моделей утренняя звезда и вечерняя звезда, вы, наверняка, задались вопросом о том, как определить, что тело первой свечи модели достаточно большое, а тело второй свечи модели достаточно маленькое, чтобы признать модель именно той, за которую она “себя выдает”. Большая и маленькая, простите, это сколько в “граммах”?
Предлагаю следующий подход. Мы берем некую выборку последних свечей в количестве depth “штук”. Определяем “средний арифметический размер тела”. Так вот, большое тело – это то тело, отношение которого к среднему телу дает коэффициент, больший или равный некого заданного коэффициента k1 (при этом k1 должен быть заведомо больше 1). Соответственно, маленькое тело – это то тело, отношение которого к среднему телу дает коэффициент, меньший или равный некого заданного коэффициента k2 (при этом k2 должен быть заведомо меньше 1). Задав эти самые коэффициенты k1 и k2, реализуем только что сказанное в коде:
Выше я давал словесное описание наших свечных моделей, теперь с учетом введенной структуры и объявления переменных, описывающих свечи, а также параметров советника, опишем наши модели в коде соответствующего условия:
- Проверка на “вечернюю звезду”
В условиях наличия свечных моделей утренней и вечерней звезды существует проверка на нисходящий и восходящий тренд (сравнение angle_k с заданным параметром angle). Выше было отмечено, падающий и растущий рынки мы будем определять исходя из направления трендовой прямой, проходящей через ценовые бары с индексами от некоторой, заданной параметром depth глубины до текущего бара. Параметры этой трендовой прямой мы условились определять методом наименьших квадратов. Напишем соответствующую процедуру:
Теперь получим параметры трендовой линии по методу наименьших квадратов. Параметры будем хранить в массиве k, размерность которого будет равна 2, при этом k[0] содержит угловой коэффициент прямой, а k[1] – действительное число, определяющее смещение прямой относительно оси y (в нашем случае в роли оси у-цена финансового инструмента)
В целях удобства (работа с большими числами) переменная angle_k связана с расчетным угловым коэффициентом трендовой линии k[0] посредством предопределенной переменной Point (pазмер пункта текущего инструмента в валюте котировки):
А ведь неплохо было бы сделать так, чтобы мы могли увидеть на ценовом графике эту саму трендовую линию, параметры которой вычислили методом наименьших квадратов. Здесь мы перейдем на ступень выше в освоении MQL4 и “победим” графические объекты для советника на МТ4. Давайте напишем процедуру, которая будет строить на графике произвольную прямую, проходящую через две заданные точки. Эта прямая может иметь произвольный цвет, стиль и толщину линии, т.е. эти, как и другие параметры процедуры, мы будем задавать:
Чтобы нарисовать трендовую линию, параметры которой мы получили, вызовем процедуру рисования трендовой линии, например, с такими параметрами:
где ticket – это тикет номер открытого ордера, а ink – цвет трендовой линии. При этом линия сплошная (STYLE_SOLID) и имеет удвоенную толщину (2).
Далее необходимо написать функцию, которая будет отыскивать на истории заданной глубины предыдущий локальный экстремум (минимум или максимум):
Как видите, для нахождения локальных минимумов и максимумов используется довольно популярный индикатор ZigZag, включенный в стандартный “комплект поставки” терминала MT4. Данный индикатор относится к категории индикаторов – “перерисовщиков”, но данное обстоятельство все равно не будет нам сильно мешать, если написать советник по японским свечным моделям утренняя и вечерняя звезда. Чтобы отыскать, например, предыдущий локальный минимум, следует обратиться к вышеуказанной функции local_extremum вот так:
где 200 предельная глубина поиска, а 2 определяет, что ищем именно локальный минимум.
Локальный максимум, соответственно, ищем вот таким вызовом функции:
Выше я указал, что наша торговая система имеет специальные правила управления деньгами счета, что выражается в возможности, например, изменять объем каждой вновь открываемой позиции в зависимости от наличия свободных средств торгового счета. Фактическая реализация этого правила может быть выражена в следующих строках кода:
Теперь давайте реализуем в коде введенное нами правило Мартингейл, кстати, оно также относится к правилам управления деньгами торгового счета:
Итак, мы задали все необходимые параметры нашей автоматической торговой системы (советника для МТ4), написали необходимые процедуры, а также реализовали в коде условия отыскания на свечном графике моделей утренняя звезда и вечерняя звезда, “закодили” правила торговой системы. Теперь, объединив все эти элементы в единое целое, дадим шанс “на жизнь” нашему советнику:
Написанный для МТ4 советник назовем morning_and_evening_star (утренняя и вечерняя звезда). Если есть робот для форекс, то у него должны быть и параметры, которые подлежат оптимизации, т.е. советник необходимо настроить. В нашем случае, таких параметров будет несколько:
- Во-первых, это параметр tp. Выше мы определили, что уровень профита (в пунктах) можно задавать самостоятельно. Так, при tp больше 0 за профит в пунктах принимается значение tp, т.е. оптимизируем советник по параметру tp, например, в диапазоне от 100 до 1000 пунктов с шагом 10 пунктов (пятизначные котировки). Если же tp равно 0, то советник сам будет управлять уровнем тейк профита, рассчитывая его для каждой открываемой позиции по “хитрому алгоритму” с использованием уровней Фибоначчи, о чем я подробно написал выше.
- Во-вторых, в случае с “автоматическим” уровнем тейк профита (tp=0) оптимизации подлежит параметр fibo_level, определяющий именно тот уровень Фибоначчи, который будем являться уровнем тейк профита. Т.е. у нас есть одномерный массив fibo[]= <0.236, 0.382, 0.5, 0.618, 1.0, 1.618, 2.618, 4.236>(кстати, этот массив вы можете расширить, включив в него и другие фибо уровни), а параметр fibo_level определяет индекс элемента массива fibo, который и применяется в расчете тейк профита:
Для длинных позиций (покупки по модели утренняя звезда) уровень тейк профита определяется из выражения: c2.low+(local_max-c2.low)*fibo[fibo_level].
Для коротких позиций (продажи по модели вечерняя звезда) уровень тейк профита определяется из выражения: c2.high-(c2.high-local_min)*fibo[fibo_level]
Очевидно, если советник будет работать на откатах, то уровень Фибоначчи следует “искать” где-то в пределах 0.236 – 0.618 (т.е. для нашего массива fibo оптимизация по fibo_level от 0 до 3 с шагом 1), если же будем “ловить” разворот, то, вероятно, уровень Фибоначчи следует “искать” за пределами 0.618 (т.е. для нашего массива fibo оптимизация по fibo_level от 3 до 7 с шагом 1).
Советник для МТ4 по свечным моделям написали, с параметрами определились. Осталось только оптимизировать параметры и тестировать на истории. А это будем делать в следующий раз.
И вы знаете, у меня, честно говоря, есть предчувствие, что ничего хорошего из этой затеи не выйдет.
Источник