ФОРЕКС 21 Воскресенье, 28.04.2024, 00:40
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта

Главная » 2009 » Декабрь » 28 » Учимся писать эксперты для MetaTrader. Урок №18
Учимся писать эксперты для MetaTrader. Урок №18
21:45
Учимся писать эксперты для MetaTrader. Урок №18 Обучение MQL II. Урок 18 Добрый день дорогие читатели! Сегодня мы напишем очень простой эксперт. Но с этой идеей ко мне обращалось уже несколько клиентов. Речь идет о наклоне скользящей средней в тренде. Алгоритм Общая идея такая. Скользящая средняя с большим периодом (>50). Берем значение на прошлом баре, это значение считаем текущим. И значение несколько баров назад, например 5. Например, у нас восходящий тренд, и наша МА(70) наклонена вверх. Значит мы имеем, МА- гипотенуза, несколько баров назад (5)-горизонтальный катет, и разница между последним значением МА и значением МА 5 баров назад вертикальный катет, образовавшегося прямоугольного треугольника. И по идее наклон можно назвать угол между МА(гипотенузой) и горизонтальным катетом. Но мы сразу имеем несколько но. Во-первых, единицы измерения вертикального катета - пункты, а горизонтального бары. Во-вторых, хоть МА у нас и большого периода, тем не менее это не прямая, поэтому угол между кривой и прямой (горизонтальным катетом) брать не совсем корректно. Ну и в-третьих, достаточно изменить масштаб графиков, как визуально изменится угол наклона. Исходя из всего выше перечисленного, я решил оставить углы в градусах, для определения величины наклона МА. Лучшим и более простым способом определения наклона МА я решил выбрать определение величины вертикального катете в пунктах. Т.е. мы, например, всегда берем разницу между прошлым значением МА и значением 4 бара назад, и получаем некую величину, чем больше эта величина, тем больше наклон. Как дополнительный сигнал к входу будем определят находится ли текущая цена выше МА, для лонга и ниже для шорта. Итак конечный алгоритм. Вход в лонг осуществляется, если разница между значением МА на прошлом баре и 4 бара назад больше указанной величины и цена закрытия прошлого бара больше МА на прошлом баре на 10 пунктов или более. Вход в шорт, наоборот, соответственно. Условный выход осуществляется по обратному пересечению МА ценой. Т.е. условие для закрытия лонга является превышение значение МА над ценой закрытия. Во внешние переменные положим период средней и величину в пунктах определяющую тренд. Заключение Хоть и с большим дродауном эксперт показал на истории (евро Н4), положительный результат. Для Н1 и ниже я не подбирал параметры, но я думаю, эффективность эксперта ухудшится при переходе на меньшие фреймы. /*[[ Name := NaklonMa Author := forextimes Link := fxtest.ru Lots := 1.00 Stop Loss := 50 Take Profit := 1000 Trailing Stop := 100 ]]*/ defines: tr(10),per(70); var: cnt(0),k(0); k=0; //обнудение флага, определяющего тренд if iMA(per,MODE_SMA,1)-iMA(per,MODE_SMA,4)>tr*point then {k=1; };// условие на возходящий тренд if iMA(per,MODE_SMA,1)-iMA(per,MODE_SMA,4)<-tr*point then {k=-1;};// условие на низходящий тренд if TotalTrades=0 then { //если открых позиций нет... if k=1 and c[1]-iMA(per,MODE_SMA,1)>10*point then {Setorder(op_buy,lots,ask,3,bid-StopLoss*point,bid+TakeProfit*point,blue); exit;}; if k=-1 and iMA(per,MODE_SMA,1)-c[1]>10*point then {Setorder(op_sell,lots,bid,3,ask+StopLoss*point,ask-TakeProfit*point,red); exit;}; //проверка на дополнительное условие и расстановка ордеров }; if TotalTrades>0 then //идем проверять на условие закрытия, если есть открытые позиции { for cnt=1 to TotalTrades { if OrderValue(cnt,VAL_TYPE)<=OP_SELL and OrderValue(cnt,VAL_SYMBOL)=Symbol then { If OrderValue(cnt,VAL_TYPE)=OP_BUY then { if c[1]iMA(per,MODE_SMA,1) then { CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_LOTS),ask,3,Violet); //условие выхода из шорта Exit; }; }; }; };};
Просмотров: 363 | Добавил: forex21 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Календарь новостей
«  Декабрь 2009  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031

Поиск

Друзья сайта


Статистика

Copyright MyCorp © 2024 Бесплатный конструктор сайтов - uCoz