![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Re
Я хочу попробовать иметь результат для 3 линий средних я закодировал это, но не работает может кто-нибудь помочь мне? Спасибо за ответ!
#property copyright ""
#property link ""
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- входные параметры
extern int length = 14;
extern int length2 = 21;
extern int lenght3 =38;
double ExtMapBuffer1[];
int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start()
{
if(Bars<=1) return(0);
ExtCountedBars=IndicatorCounted();
//---- проверка на возможные ошибки
if (ExtCountedBars<0) return(-1);
//---- последний подсчитанный бар будет пересчитан.
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-1;
if(ExtCountedBars>1) pos=Bars-ExtCountedBars-1;
//---- основной цикл вычислений
while(pos>=0)
{
double median = (iCustom(NULL,0, "indicator1",length,0,pos)+
iCustom(NULL,0, "indicator2",length2,0,pos)+
iCustom(NULL,0, "indicator3",length3,0,pos))/3.0;
}
return(median);
}
//+------------------------------------------------------------------+
Я хочу попытаться получить результат для 3 линий средних значений, я закодировал это, но не работает, может кто-нибудь помочь мне?
#property copyright ""
#property link ""
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- входные параметры
extern int length = 14;
extern int length2 = 21;
extern int lenght3 =38;
double ExtMapBuffer1[];
int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start()
{
if(Bars<=1) return(0);
ExtCountedBars=IndicatorCounted();
//---- проверка на возможные ошибки
if (ExtCountedBars<0) return(-1);
//---- последний подсчитанный бар будет пересчитан.
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-1;
if(ExtCountedBars>1) pos=Bars-ExtCountedBars-1;
//---- основной цикл вычислений
while(pos>=0)
{
double median = (iCustom(NULL,0, "indicator1",length,0,pos)+
iCustom(NULL,0, "indicator2",length,,0,pos)+
iCustom(NULL,0, "indicator3",length,0,pos))/3.0;
}
return(median);
}
//+------------------------------------------------------------------+bixwin
Я уже задавал вопрос: каковы точные имена пользовательских индикаторов, которые вы хотите использовать в расчете (я имею в виду, что они не называются "indicator1", "indicator2" и "indicator3", не так ли)?
Вы должны заменить эти имена на точные имена индикаторов, которые вы хотите использовать в вызове iCustom(), иначе это ничего не даст. Кроме того, ваша функция запуска должна выглядеть следующим образом (опять же, вы должны заменить имена на реальные имена) :
{
if(Bars<=1) return(0);
int ExtCountedBars=IndicatorCounted();
if (ExtCountedBars<0) return(-1);
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-1;
if(ExtCountedBars>1) pos=Bars-ExtCountedBars-1;
while(pos>=0)
{
ExtMapBuffer1[pos] = (iCustom(NULL,0,"indicator1",length,0,pos)+
iCustom(NULL,0,"indicator2",length,0,pos)+
iCustom(NULL,0,"indicator3",length,0,pos))/3.0;
}
return(0);
}Спасибо, Младен, Точное имя "indicator1" для первого индикатора, "indicator2" для второго и, наконец, "indicator3" для последнего. Это то, что вы хотите?
Спасибо, Младен, Точное название "indicator1" для первого индикатора, "indicator2" для второго и, наконец, "indicator3" для последнего. Это то, что вы хотите?
bixwin
Пожалуйста, посмотрите код для функции запуска в предыдущем моем сообщении.
Спасибо Младен за быстрый ответ,
это не работает,
я думаю, что функция запуска не работает.
Вы можете выложить пример 3 пользовательского индикатора?
Спасибо Младен за быстрый ответ,
не работает,
я думаю, что функция запуска не работает.
Можете ли вы выложить пример 3 пользовательского индикатора?bixwind,
Я не знаю, что делают "indicator1", "indicator2" и "indicator3". Я сделал эти индикаторы, которые на самом деле вычисляют только скользящую среднюю, и использовал их в индикаторе _test (который делает расчет медианы, с которого вы начали), и он работает нормально (посмотрите, как это выглядит в терминале). Так что если параметры ваших пользовательских индикаторов в порядке, то все должно работать нормально, поскольку тестовый индикатор тоже работает нормально.
Спасибо большое Младен, это работает!!!![](https://c.mql5.com/forextsd/smiles/smile.png)
Привет, я новичок в кодировании mt4 и мне нужна помощь.
Как отобразить валюту и метку таймфрейма вот так в левом нижнем углу:-.
Метка таймфрейма также будет меняться, если я перейду с другого таймфрейма.
Здравствуйте, я новичок в кодировании mt4 и мне нужна помощь.
Как отобразить метку валюты и таймфрейма в левом нижнем углу?
![](https://c.mql5.com/forextsd/forum/121/eu2.png)
Метка таймфрейма также будет меняться, если я перейду с другого таймфрейма.cawat
Этот способ поможет это сделать. Вы можете указать различные свойства метки тайм-символа с помощью параметров
Марко по поводу построения советника - смотрите эти темы
Уважаемый MLaden,
Спасибо за помощь, оставайтесь на связи.
С уважением, Марко