мож так!?
if (MA1 < per && per < MA2)
{
.......
}
Ни как не могу понять как "обьяснить советнику" выполнить условия пересечения цены и МА
double MA1 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,1);
double MA2 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,3);
double per=(Open[2]+High[2]+Low[2]+Close[2])/4;
if (MA1<per<MA2)
{
..........
}
Вот вроде так но........не работает.
Подскажите пожалуйста!
вот условие пересечения цены с машкой MA1=Bid это пересечение не самый лучший сигнал т.к. при флете таких пересечений будет сотни. лучше использовать МА1>MA2 или наоборот МА2>MA1
double MA1 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,1); double MA2 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,3); double per=(iOpen(NULL,0,2)+iHigh(NULL,0,2)+iLow(NULL,0,2)+iClose(NULL,0,2))/4; if (MA1<per && per<MA2)Так попробуйте.
А я считаю, что код должен выглядеть как-то так:
double MA1 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,1);
double per1=(Open[1]+High[1]+Low[1]+Close[1])/4;
double MA3 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,3);
double per3=(Open[3]+High[3]+Low[3]+Close[3])/4;
if((MA1>per1 && MA3<per3) || (MA1<per1 && MA3>per3))
{
.............................
}
В этом случае хоть какая-то логика есть.
Не совсем понятно, что подразумевает третий параметр в Вашей задаче?
double iMA( | string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) |
Можете вместо тройки поставить двойку, или четверку сути это не меняет. Таким образом я просто диапазон чувствительности задал. Поставите 2 чувствительность будет выше, четыре - ниже. А тройка по-моему наиболее оптимально, хотя решать mozg'у.
Действительно все работает вот так а 3 или 4 просто задает парог срабатывания.
спасибо всем кто помогал.
double MA1 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,1);
double per1=(Open[1]+High[1]+Low[1]+Close[1])/4;
double MA3 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,3);
double per3=(Open[3]+High[3]+Low[3]+Close[3])/4;
if((MA1>per1 && MA3<per3) || (MA1<per1 && MA3>per3))
{
.............................
}
Можете вместо тройки поставить двойку, или четверку сути это не меняет. Таким образом я просто диапазон чувствительности задал. Поставите 2 чувствительность будет выше, четыре - ниже. А тройка по-моему наиболее оптимально, хотя решать mozg'у.
При чем тут двойка или тройка? Какая чувствительность? Третий параметр, передаваемый в функцию - это период усреднения машки. У вас он почему-то обозван PERIOD_M15. Хотя таймфрейм - это второй параметр. Что-то я не догоняю
При чем тут двойка или тройка? Какая чувствительность? Третий параметр, передаваемый в функцию - это период усреднения машки. У вас он почему-то обозван PERIOD_M15. Хотя таймфрейм - это второй параметр. Что-то я не догоняю
Верно, но как ни странно функция-то работает! Исправьте параметры и пользуйтесь на здоровье. Не думаю, что это предмет для обсуждений - легкий косячок не более.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ни как не могу понять как "обьяснить советнику" выполнить условия пересечения цены и МА
double MA1 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,1);
double MA2 =iMA(NULL,0,PERIOD_M15,0,MODE_SMA,PRICE_CLOSE,3);
double per=(Open[2]+High[2]+Low[2]+Close[2])/4;
if (MA1<per<MA2)
{
..........
}
Вот вроде так но........не работает.
Подскажите пожалуйста!