в пятницу пару часов попробывал вроде все ок. если вы считаете что лучше будет с еще одним индикатором то можно попробыввать ??
фишка в том чтобы вход был только при условиях пересечения на средних и еще индюка .-- если нет пересечения то нет входа.
пример: средние пересеклись допустим на бай — открылся ордер на бай — с тейком на 250 (5 знаков)--- прошло 250 и мы в + закрыли ордер — НЕ ДОЛЖНО БЫТЬ ОТКРЫТИЯ следующего ордера на бай только потому что средние показывают верх. следующий ордер открывается только при пересечении.
К сожалению больше свободного времени нет чтобы далее экспериментировать.
Но есть возможность реализовать свои идеи по тех.заданию у которого оценивается сложность работы.
forex-time@mail.ru
поставил с утра пару раз сам закрыл вроде все ок. разочек дал советнику отработать самому но результатом доволен.конечно буду еще думать чтобы еще помогло для более точного входа.
хотел спросить что это (подключаемые модули: расстояние между быстрой и медленной линиями ) и как это может влиять на вход в рынок.
хочу сам попробывать добавить
Настройка расстояния между Fast MA и Slow MA
Distance — необходимое расстояние между Fast MA и Slow MA для открытия ордера, исчисляется в пунктах графика, к которому прикреплен советник.
true — модуль Distance активирован (включен)
Это дистанция между двумя МА
Но работать не будет, т.к. сейчас отслеживается факт пересечения и в этот момент дистанция между МА =0
Чтобы работать по дистанции, то надо брать направленность МА а не пересечение.
уже вижу что это не работает. вход получается позднее чем нужно.
тогда получается как вариант — пересечение + 2 свечи в том же направлении и тогда вход.
в принципе все работает хорошо нет вариантов без минусов тем более на фунте — сейчас перешел на еврик тут более спокоино.
проблемма даже не в входе — вход по условиям как и должно быть — просто фунт более шустрый.
буду дальше пробывать. ВАМ большее спасибо за помощь и терпение.
Если надо ловить факт пересечения,
то с 3-х ТФ пересечение МА в один момент не будет и соответственно сигнала не будет.
В таком стиле надо ловить пересечение поочерёдно.
Например: есть пересечение М1, далее ждать М5 и с М30 вход.
Или делать 3 комплекта настроек для каждого ТФ.
думаю с старшего по убывающей — т.е 30 мин вниз — 5 мин — минута. т.е условия для входа чтобы было движение общее.если проблема сделать на то можно и 2 смысл то один ???
Без разницы в каком порядке ловить, можно запоминать 1-ое с любого ТФ пересечение, далее ждать 2-ое и 3-тье и если какой-то ТФ с уже пересечённым МА пересёкся обратно, то сбросить этот сигнал.
Главное чтобы они все были последовательно в одном направлении.
extern int scr1 в = 30; // в минутах
extern int scr2 = 5; // в минутах
extern int scr3 = 1; // в минутах
На старшем временном интервале определяем направление торговли
На среднем временном интервале ждем окончания коррекции и начала новой приливной волны
На младшем временном интервале ищем возможность для более точного входа в рынок
Всё не правильно оформлено.
Строчка где прописываются параметры индикатора МА, надо добавить вызываемый ТФ и в условиях где вызывается сигнал добавить нужный ТФ, далее сравнивать все МА в нужном направлении по всем требуемым ТФ.
Пример для buy в коде советника на одном экране:
Быстрая МА тф1 > Медленной МА тф1
и
Быстрая МА тф2 > Медленной МА тф2
и
Быстрая МА тф3 > Медленной МА тф3
=
Общий сигнал для BUY
//Если выбран метод торговли АВТО
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal)&&scr1) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1)&&scr1)
if(FastMA(BarSignal)>SlowMA(BarSignal)&&scr2) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1)&&scr2)
if(FastMA(BarSignal)>SlowMA(BarSignal)&&scr3) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1)&&scr3)
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal)&&scr1) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1)&&scr1)
if(FastMA(BarSignal)<SlowMA(BarSignal)&&scr2) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1)&&scr2)
if(FastMA(BarSignal)<SlowMA(BarSignal)&&scr3) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1)&&scr3)
SignalMA=1;
ок буду сам пробывать методом тыка и ждать когда у ВАС будет время помочь.не мое это видать прогамму писать.
Это полная чушь))
Надо понимать что пишется в условии чтобы к чему-то грамотному придти! Вот условие:
if(FastMA(BarSignal)>SlowMA(BarSignal)&&scr1)
Если расшифровать написанное то получается что быстрая МА больше медленной МА и 30
Что имеется ввиду и 30??
Параметр scr1 = 30?
//+------------------------------------------------------------------+
//| МЕНЯЕМ ЛОГИКУ НА 3 ЭКРАНА |
//+------------------------------------------------------------------+
//Если выбран метод торговли АВТО
if(MethodTrade==Auto)
{
int Per1() // первый экран — 30 минут
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1))
SignalMA=1;
int Per2() // второй экран — 5 минут
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1))
SignalMA=1;
int Per3() // третий экран — 1 минут
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1))
SignalMA=1;
//+------------------------------------------------------------------+
что то не доходит до мозгов вроде логику понимаю а правильно написать не могу
//Если выбран метод торговли АВТО
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal+TimeFrameMAfast)>SlowMA(BarSignal+TimeFrameMAslow) && FastMA(BarSignal+TimeFrameMAfast+1)<=SlowMA(BarSignal+TimeFrameMAslow+1))
SignalMA=0;
if(FastMA(BarSignal+TimeFrameMAfast)<SlowMA(BarSignal+TimeFrameMAslow) && FastMA(BarSignal+TimeFrameMAfast+1)>=SlowMA(BarSignal+TimeFrameMAslow+1))
SignalMA=1;
и потом вставлять в условие что когда быстрая средняя на всех экранах пересечет медленную на всех временных промежутках — ЭТО И БУДЕТ СИГНАЛОМ для входа.
ну вот как то так
//Если выбран метод торговли АВТО
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal+TimeFrameMAfast1+TimeFrameMAfast2+TimeFrameMAfast3)>SlowMA(BarSignal+TimeFrameMAslow1+TimeFrameMAslow2+TimeFrameMAslow3)
&& FastMA(BarSignal+TimeFrameMAfast1+TimeFrameMAfast2+TimeFrameMAfast3+1)
<=SlowMA(BarSignal+TimeFrameMAslow1+TimeFrameMAslow2+TimeFrameMAslow3+1))
SignalMA=0;
Смотрим что вызывает функция индикатора:
FastMA(int bar)
SlowMA(int bar)
Видно что функция индикатора вызывает только бар.
Теперь расшифровываю что тут написано:
Если быстрая МА на баре (1+5+15+30) <меньше МА на баре (1+5+15+30) то будет сигнал селл
В итоге для анализа тут рассматривается на текущем ТФ что было 51 баров назад (1+5+15+30 = 51)
ТФ тут вообще не анализируется!!!
Чтобы исследовать другие ТФ, надо его для начала прописать в функции вызова Вот так:
//+------------------------------------------------------------------+
//| Индикатор Moving Average
//+------------------------------------------------------------------+
double FastMA(int tf, int bar){
double ma=iMA(Symbol(),tf, FastPeriod,FastShift,FastMethod,FastPrice, bar);
return(ma);}
//+-------------------+
double SlowMA(int tf, int bar){
double ma=iMA(Symbol(),tf, SlowPeriod,SlowShift,SlowMethod,SlowPrice, bar);
return(ma);}
Расшифровываю что написано в условиях вызова:
Если
на ТФ М5 быстрая МА меньше медленной МА
и
на ТФ М15 быстрая МА меньше медленной МА
и
на ТФ М30 быстрая МА меньше медленной МА
то
присвоить сигнал =1 для селл
Чтобы написать отзыв или скачать файл, необходимо быть зарегистрированным пользователем. Если Вы уже регистрировались ранее, войдите под своим именем. Если Вы еще не регистрировались, то, пожалуйста, зарегистрируйтесь. Регистрация не займет много времени.
Справка: зарегистрированные пользователи могут добавлять и скачивать файлы, вести собственный блог, комментировать записи, обмениваться личными сообщениями с другими участниками и др.
Комментарии (46)
[ 10 ] AlkmenaЗарегистрирован: 21 июня 2017 | Сообщений: 139
Одного инструмента мало, надо ещё и фильтр какой-то!
Например индикатор АС, вход по обратному сигналу.
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
фишка в том чтобы вход был только при условиях пересечения на средних и еще индюка .-- если нет пересечения то нет входа.
пример: средние пересеклись допустим на бай — открылся ордер на бай — с тейком на 250 (5 знаков)--- прошло 250 и мы в + закрыли ордер — НЕ ДОЛЖНО БЫТЬ ОТКРЫТИЯ следующего ордера на бай только потому что средние показывают верх. следующий ордер открывается только при пересечении.
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Но есть возможность реализовать свои идеи по тех.заданию у которого оценивается сложность работы.
forex-time@mail.ru
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
запретить советнику открытии нового ордера до следующего сигнала индикаторов (пересечение средних)
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
хочу сам попробывать добавить
Настройка расстояния между Fast MA и Slow MA
Distance — необходимое расстояние между Fast MA и Slow MA для открытия ордера, исчисляется в пунктах графика, к которому прикреплен советник.
true — модуль Distance активирован (включен)
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Но работать не будет, т.к. сейчас отслеживается факт пересечения и в этот момент дистанция между МА =0
Чтобы работать по дистанции, то надо брать направленность МА а не пересечение.
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
тогда получается как вариант — пересечение + 2 свечи в том же направлении и тогда вход.
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Т.е. смотреть пересечение МА 2 бара назад и направление 2-х свечей после пересечения
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
проблемма даже не в входе — вход по условиям как и должно быть — просто фунт более шустрый.
буду дальше пробывать. ВАМ большее спасибо за помощь и терпение.
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
для 3-х таймфреймов анализ движения рынка следующими комбинациями
M1+M5+M30; хотел бы узнать ВАШЕ МНЕНИЕ. и спросить или такое возможно добавить.
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
то с 3-х ТФ пересечение МА в один момент не будет и соответственно сигнала не будет.
В таком стиле надо ловить пересечение поочерёдно.
Например: есть пересечение М1, далее ждать М5 и с М30 вход.
Или делать 3 комплекта настроек для каждого ТФ.
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Главное чтобы они все были последовательно в одном направлении.
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Сейчас пока занят платными серьёзными заказами
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
extern int scr1 в = 30; // в минутах
extern int scr2 = 5; // в минутах
extern int scr3 = 1; // в минутах
На старшем временном интервале определяем направление торговли
На среднем временном интервале ждем окончания коррекции и начала новой приливной волны
На младшем временном интервале ищем возможность для более точного входа в рынок
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1))
SignalMA=1;
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal, scr1, scr2 ,scr3) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1, scr1, scr2 ,scr3))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal, scr1, scr2 ,scr3) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1, scr1, scr2 ,scr3))
SignalMA=1;
//Если нет ордеров, то открыть первый по сигналу МА
if(OP(-1)==0)
{
double TPb=0.0,TPs=0.0;
if(TakeProfit>0)
{
TPs=ND(Bid-TakeProfit*Point,Digits);
TPb=ND(Ask+TakeProfit*Point,Digits);
}
//Открытие 1 раз на текущем баре
if(NewBar()!=0)
{
//Сигнал МА, открыть ордер в направлении
if(SignalMA==0)
Send(OP_BUY,Lots,Ask,0,TPb,Blue, scr1, scr2 ,scr3);
if(SignalMA==1)
Send(OP_SELL,Lots,Bid,0,TPs,Red, scr1, scr2 ,scr3 );
}
}
}
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Строчка где прописываются параметры индикатора МА, надо добавить вызываемый ТФ и в условиях где вызывается сигнал добавить нужный ТФ, далее сравнивать все МА в нужном направлении по всем требуемым ТФ.
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
1. экран 1 — 30 мин. пересечение 2 средних
2. экран 2 — 5 мин. пересечение 2 средних
3. экран 3 — 1 мин. пересечение 2 средних
сигналы с 3 таимов последовательно должны давать сигнал для входа. т.е для каждого экрана должны быть по 2 средних — и в сумме их 6 ???
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Пример для buy в коде советника на одном экране:
Быстрая МА тф1 > Медленной МА тф1
и
Быстрая МА тф2 > Медленной МА тф2
и
Быстрая МА тф3 > Медленной МА тф3
=
Общий сигнал для BUY
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal)&&scr1) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1)&&scr1)
if(FastMA(BarSignal)>SlowMA(BarSignal)&&scr2) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1)&&scr2)
if(FastMA(BarSignal)>SlowMA(BarSignal)&&scr3) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1)&&scr3)
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal)&&scr1) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1)&&scr1)
if(FastMA(BarSignal)<SlowMA(BarSignal)&&scr2) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1)&&scr2)
if(FastMA(BarSignal)<SlowMA(BarSignal)&&scr3) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1)&&scr3)
SignalMA=1;
ок буду сам пробывать методом тыка и ждать когда у ВАС будет время помочь.не мое это видать прогамму писать.
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Надо понимать что пишется в условии чтобы к чему-то грамотному придти!
Вот условие:
if(FastMA(BarSignal)>SlowMA(BarSignal)
&&scr1)Если расшифровать написанное то получается что быстрая МА больше медленной МА и 30
Что имеется ввиду и 30??
Параметр scr1 = 30?
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
extern int scr2 = 5; // в минутах
extern int scr3 = 1; // в минутах
Параметр scr1 = 30? это таим в 30 мин ну хоть в строчках не перепутал уже хорошо
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
extern int Per2 = PERIOD_M5;
extern int Per3 = PERIOD_M1;
если вот так прописать временные промежутки?
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
//| МЕНЯЕМ ЛОГИКУ НА 3 ЭКРАНА |
//+------------------------------------------------------------------+
//Если выбран метод торговли АВТО
if(MethodTrade==Auto)
{
int Per1() // первый экран — 30 минут
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1))
SignalMA=1;
int Per2() // второй экран — 5 минут
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1))
SignalMA=1;
int Per3() // третий экран — 1 минут
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal)>SlowMA(BarSignal) && FastMA(BarSignal+1)<=SlowMA(BarSignal+1))
SignalMA=0;
if(FastMA(BarSignal)<SlowMA(BarSignal) && FastMA(BarSignal+1)>=SlowMA(BarSignal+1))
SignalMA=1;
//+------------------------------------------------------------------+
что то не доходит до мозгов вроде логику понимаю а правильно написать не могу
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
//+----------------------------------------------------------------------------+
//Если нет ордеров, то открыть первый по сигналу МА с 3х временных экранов |
//+----------------------------------------------------------------------------+
if(OP(-1)==0)
{
double TPb=0.0,TPs=0.0;
if(TakeProfit>0)
{
TPs=ND(Bid-TakeProfit*Point,Digits);
TPb=ND(Ask+TakeProfit*Point,Digits);
}
//Открытие 1 раз на текущем баре
if(NewBar()!=0)
{
//Сигнал МА, открыть ордер в направлении
if(SignalMA==0)
Send(OP_BUY,Lots,Ask,0,TPb,Blue);
if(SignalMA==1)
Send(OP_SELL,Lots,Bid,0,TPs,Red);
}
}
}
//+----------------------------------------------------------------------------+
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
добавил условия по времени но получается что быстрая по 5 мин а медленная по 15 — так вообще можно ???
extern string MAfast = "=== Быстрый MA ==="; //Индикатор ==>>
extern int FastPeriod = 110; //Период
extern int FastShift = 7; //Сдвиг
extern ENUM_MA_METHOD FastMethod = MODE_EMA; //Метод
extern ENUM_APPLIED_PRICE FastPrice = PRICE_CLOSE; //Цена
extern ENUM_TIMEFRAMES TimeFrameMAfast = 5; //default chart TF :: Use 5, 15, 30, 60, etc…
extern string MAslow = "=== Медленный MA ==="; //Индикатор ==>>
extern int SlowPeriod = 250; //Период
extern int SlowShift = 7; //Сдвиг
extern ENUM_MA_METHOD SlowMethod = MODE_EMA; //Метод
extern ENUM_APPLIED_PRICE SlowPrice = PRICE_CLOSE; //Цена
extern ENUM_TIMEFRAMES TimeFrameMAslow = 15; //default chart TF :: Use 5, 15, 30, 60, etc…
и условия для открытия
//Если выбран метод торговли АВТО
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal+TimeFrameMAfast)>SlowMA(BarSignal+TimeFrameMAslow) && FastMA(BarSignal+TimeFrameMAfast+1)<=SlowMA(BarSignal+TimeFrameMAslow+1))
SignalMA=0;
if(FastMA(BarSignal+TimeFrameMAfast)<SlowMA(BarSignal+TimeFrameMAslow) && FastMA(BarSignal+TimeFrameMAfast+1)>=SlowMA(BarSignal+TimeFrameMAslow+1))
SignalMA=1;
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
получаеться что на каждую среднюю надо 3 временных отрезка (как вариант)
extern ENUM_TIMEFRAMES TimeFrameMAfast1 = 5; //default chart TF :: Use 5, 15, 30, 60, etc…
extern ENUM_TIMEFRAMES TimeFrameMAfast2 = 15; //default chart TF :: Use 5, 15, 30, 60, etc…
extern ENUM_TIMEFRAMES TimeFrameMAfast3 = 30; //default chart TF :: Use 5, 15, 30, 60, etc…
и потом вставлять в условие что когда быстрая средняя на всех экранах пересечет медленную на всех временных промежутках — ЭТО И БУДЕТ СИГНАЛОМ для входа.
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
//Если выбран метод торговли АВТО
if(MethodTrade==Auto)
{
//Сигнал, факт пересечения быстрой и медленной МА
int SignalMA=-1;
if(FastMA(BarSignal+TimeFrameMAfast1+TimeFrameMAfast2+TimeFrameMAfast3)>SlowMA(BarSignal+TimeFrameMAslow1+TimeFrameMAslow2+TimeFrameMAslow3)
&& FastMA(BarSignal+TimeFrameMAfast1+TimeFrameMAfast2+TimeFrameMAfast3+1)
<=SlowMA(BarSignal+TimeFrameMAslow1+TimeFrameMAslow2+TimeFrameMAslow3+1))
SignalMA=0;
if(FastMA(BarSignal+TimeFrameMAfast1+TimeFrameMAfast2+TimeFrameMAfast3)<SlowMA(BarSignal+TimeFrameMAslow1+TimeFrameMAslow2+TimeFrameMAslow3)
&& FastMA(BarSignal+TimeFrameMAfast1+TimeFrameMAfast2+TimeFrameMAfast3+1)
>=SlowMA(BarSignal+TimeFrameMAslow1+TimeFrameMAslow2+TimeFrameMAslow3+1))
SignalMA=1;
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Смотрим что вызывает функция индикатора:
FastMA(int bar)
SlowMA(int bar)
Видно что функция индикатора вызывает только бар.
Теперь расшифровываю что тут написано:
if(FastMA(BarSignal+TimeFrameMAfast1+TimeFrameMAfast2+TimeFrameMAfast3)<SlowMA(BarSignal+TimeFrameMAslow1+TimeFrameMAslow2+TimeFrameMAslow3)
Если быстрая МА на баре (1+5+15+30) <меньше МА на баре (1+5+15+30) то будет сигнал селл
В итоге для анализа тут рассматривается на текущем ТФ что было 51 баров назад (1+5+15+30 = 51)
ТФ тут вообще не анализируется!!!
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
Вот так:
//+------------------------------------------------------------------+
//| Индикатор Moving Average
//+------------------------------------------------------------------+
double FastMA(int tf, int bar){
double ma=iMA(Symbol(),tf, FastPeriod,FastShift,FastMethod,FastPrice, bar);
return(ma);}
//+-------------------+
double SlowMA(int tf, int bar){
double ma=iMA(Symbol(),tf, SlowPeriod,SlowShift,SlowMethod,SlowPrice, bar);
return(ma);}
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
Вот так:
extern ENUM_TIMEFRAMES TimeFrame1 = 5; //default chart TF
extern ENUM_TIMEFRAMES TimeFrame2 = 15; //default chart TF
extern ENUM_TIMEFRAMES TimeFrame3 = 30; //default chart TF
if(FastMA(TimeFrameMA1,BarSignal)<SlowMA(TimeFrameMA1,BarSignal) && FastMA(TimeFrameMA2,BarSignal<SlowMA(TimeFrameMA2,BarSignal) &&
FastMA(TimeFrameMA3,BarSignal<SlowMA(TimeFrameMA3,BarSignal)) SignalMA=1;
Расшифровываю что написано в условиях вызова:
Если
на ТФ М5 быстрая МА меньше медленной МА
и
на ТФ М15 быстрая МА меньше медленной МА
и
на ТФ М30 быстрая МА меньше медленной МА
то
присвоить сигнал =1 для селл
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Параметры:
FastShift = 0; //Сдвиг
и
SlowShift = 0; //Сдвиг
Могут быть =0 или больше нуля, но ни как не меньше нуля
Это сдвиг линии МА вперёд на N-баров
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
[ 6 ] eduard9898Зарегистрирован: 18 мая 2021 | Сообщений: 81
Я на связи: forex-time@mail.ru
[ 15 ] forextimeЗарегистрирован: 13 июля 2011 | Сообщений: 141 - ExpertFX
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий