[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 56
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Описание пересечения в программе. Вроде все работает, но не так как нужно. Я делаю округление значений переменный до одного знака, чтобы
застать пересечение. И этот Alert() барабанит мне до тех пор пока средние будут находиться на одной позиции. Как сделать так, чтобы он вызывался один раз, ну или до 5 раз.
//| Глобальные переменные |
//+------------------------------------------------------------------+
extern int Period_MA_Blue = 4; // Период 4-х расчётной синей МА (4 часа)
extern int Period_MA_Green = 13; // Период 13-ти расчётной зеленой МА (13 часов)
extern int Period_MA_Orange = 50; // Период 50-ти расчётной оранжевой МА (2 дня 2 часа)
double MA_Blue_EURUSD, MA_Green_EURUSD, MA_Orange_EURUSD;
string SMA_Blue_EURUSD,SMA_Green_EURUSD,SMA_Orange_EURUSD;
//+------------------------------------------------------------------+
//| Начало программы |
//+------------------------------------------------------------------+
int init(){return(0);}
int EURUSD()
{
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD > SMA_Orange_EURUSD)
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА выше - сигнал к покупке.
Alert("Cигнал на ПОКУПКУ паре EURUSD");
return(11); // 11 - на первой паре сигнал на покупку.
}
if(SMA_Green_EURUSD == SMA_Orange_EURUSD && SMA_Blue_EURUSD < SMA_Orange_EURUSD)
{
// Если зеленая МА пересекает оранжевую МА и при этом синяя МА ниже - сигнал к продаже.
Alert("Cигнал на ПРОДАЖУ паре EURUSD");
return(10); // 20 - на первой паре сигнал на продажу.
}
}
int start()
{
//+------------------------------------------------------------------+
//| Блок работы с EURUSD |
//+------------------------------------------------------------------+
if(EURUSD() != 11 || EURUSD() != 10)
{
// Если функция EURUSD() не зафиксировала ни один из сигналов, обрабатываем данные дальше.
MA_Blue_EURUSD = iMA("EURUSD",PERIOD_H1,Period_MA_Blue,0,MODE_EMA,PRICE_CLOSE,0);
MA_Green_EURUSD = iMA("EURUSD",PERIOD_H1,Period_MA_Green,0,MODE_EMA,PRICE_CLOSE,0);
MA_Orange_EURUSD = iMA("EURUSD",PERIOD_H1,Period_MA_Orange,0,MODE_EMA,PRICE_CLOSE,0);
SMA_Blue_EURUSD = MA_Blue_EURUSD; // Преобразование int в string
SMA_Blue_EURUSD = StringSetChar(SMA_Blue_EURUSD, 6, ''); // Округление до х.хххх
SMA_Green_EURUSD = MA_Green_EURUSD; // Преобразование int в string
SMA_Green_EURUSD = StringSetChar(SMA_Green_EURUSD, 6, ''); // Округление до х.хххх
SMA_Orange_EURUSD = MA_Orange_EURUSD; // Преобразование int в string
SMA_Orange_EURUSD = StringSetChar(SMA_Orange_EURUSD, 6, ''); // Округление до х.хххх
}
}
int deinit(){return(0);}
Если все не правильно на корню, предложите методы отслеживания пересечения. Спасибо.
Доброго времени суток! Прошу помочь, есть простая задумка реализовать вызов Alert() при пересечении трех МА.
Описание пересечения в программе. Вроде все работает, но не так как нужно. Я делаю округление значений переменный до одного знака, чтобы
застать пересечение. И этот Alert() барабанит мне до тех пор пока средние будут находиться на одной позиции. Как сделать так, чтобы он вызывался один раз, ну или до 5 раз.Если все не правильно на корню, предложите методы отслеживания пересечения. Спасибо.
Где-то так навскидку...
Или я туплю или что-то с терминалом. Хотел оптимизировать советника, а там нет вкладки "входные параметры" в свойствах эксперта. Помогите.
https://forum.mql4.com/ru/46980/page417#702426
https://www.mql5.com/ru/forum/138609/page417#702426
Можно ли в принимаемых параметрах функции использовать массив? Например, мне нужно создать функцию, которая будет обрабатывать информацию в массиве:
Можно ли в принимаемых параметрах функции использовать массив? Например, мне нужно создать функцию, которая будет обрабатывать информацию в массиве:
А что учебник здесь пишет?
"
Передаваемые параметры указываются в круглых скобках после названия вызываемой функции и перечисляются через запятую. Количество передаваемых в функцию параметров не должно превышать 64. Функция может также не использовать передаваемые параметры. В этом случае указывается пустой список параметров, т.е. сразу после названия функции располагаются открывающая и закрывающая круглые скобки.
Количество, тип и порядок упоминания передаваемых параметров в вызове функции должны совпадать с количеством, типом и порядком упоминания формальных параметров, указанных в описании функции (исключение составляет вызов функции, имеющей умолчательные параметры - см. Вызов функции и Описание функции и оператор return). Если такого совпадения нет, то редактор MetaEditor выдаст сообщение об ошибке. В качестве передаваемых параметров могут использоваться константы, переменные, выражения и массивы."
Можно ли в принимаемых параметрах функции использовать массив? Например, мне нужно создать функцию, которая будет обрабатывать информацию в массиве:
Попробуйте так:
https://docs.mql4.com/ru/basis/variables/formalТоже самое относится и Close - iClose, Open - iOpen, Time - iTime Volume - iVolume и т.д.
А индикатор может рисовать до 8 линий от 0 до 7 https://docs.mql4.com/ru/customind/indicatorbuffers
большое спасибо :) индикатор все равно не рисуется, посыпались шибки в строках типа price=iL[k]; где iL это мой iLow...бывший Low
в общем узнал много полезного...но дальше копать не буду...
есть метод проще визуализиторовать перерисовку...без пользовательского индикатора.
А что учебник здесь пишет?
"
Передаваемые параметры указываются в круглых скобках после названия вызываемой функции и перечисляются через запятую. Количество передаваемых в функцию параметров не должно превышать 64. Функция может также не использовать передаваемые параметры. В этом случае указывается пустой список параметров, т.е. сразу после названия функции располагаются открывающая и закрывающая круглые скобки.
Количество, тип и порядок упоминания передаваемых параметров в вызове функции должны совпадать с количеством, типом и порядком упоминания формальных параметров, указанных в описании функции (исключение составляет вызов функции, имеющей умолчательные параметры - см. Вызов функции и Описание функции и оператор return). Если такого совпадения нет, то редактор MetaEditor выдаст сообщение об ошибке. В качестве передаваемых параметров могут использоваться константы, переменные, выражения и массивы."