Помощь в кодировании - страница 154

 

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);

}

//+------------------------------------------------------------------+

 
bixwin:
Я хочу попытаться получить результат для 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(), иначе это ничего не даст. Кроме того, ваша функция запуска должна выглядеть следующим образом (опять же, вы должны заменить имена на реальные имена) :

int start()

{

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" для последнего. Это то, что вы хотите?

 
bixwin:
Спасибо, Младен, Точное название "indicator1" для первого индикатора, "indicator2" для второго и, наконец, "indicator3" для последнего. Это то, что вы хотите?

bixwin

Пожалуйста, посмотрите код для функции запуска в предыдущем моем сообщении.

 

Спасибо Младен за быстрый ответ,

это не работает,

я думаю, что функция запуска не работает.

Вы можете выложить пример 3 пользовательского индикатора?

 
bixwin:
Спасибо Младен за быстрый ответ,

не работает,

я думаю, что функция запуска не работает.

Можете ли вы выложить пример 3 пользовательского индикатора?

bixwind,

Я не знаю, что делают "indicator1", "indicator2" и "indicator3". Я сделал эти индикаторы, которые на самом деле вычисляют только скользящую среднюю, и использовал их в индикаторе _test (который делает расчет медианы, с которого вы начали), и он работает нормально (посмотрите, как это выглядит в терминале). Так что если параметры ваших пользовательских индикаторов в порядке, то все должно работать нормально, поскольку тестовый индикатор тоже работает нормально.

Файлы:
_test.mq4  1 kb
test.gif  41 kb
 

Спасибо большое Младен, это работает!!!

 

Привет, я новичок в кодировании mt4 и мне нужна помощь.

Как отобразить валюту и метку таймфрейма вот так в левом нижнем углу:-.

Метка таймфрейма также будет меняться, если я перейду с другого таймфрейма.

Файлы:
eu1.png  64 kb
eu2.png  43 kb
 
cawat:
Здравствуйте, я новичок в кодировании mt4 и мне нужна помощь.

Как отобразить метку валюты и таймфрейма в левом нижнем углу?

Метка таймфрейма также будет меняться, если я перейду с другого таймфрейма.

cawat

Этот способ поможет это сделать. Вы можете указать различные свойства метки тайм-символа с помощью параметров

Файлы:
 
mladen:
Марко по поводу построения советника - смотрите эти темы

:https://www.mql5.com/en/forum/173136 https://www.mql5.com/en/forum/173171

Уважаемый MLaden,

Спасибо за помощь, оставайтесь на связи.

С уважением, Марко