Здравствуйте, при установке индикатора на платформу мт4 он не работает, устанавливал индикатор в сам терминал: Файл/Открыть каталог данных/папка MQL4/индикаторы, затем перегружал мт4 индикатор на графике отображает пустое окно. Помогите пожалуйста.
Что такое "... отображает пустое окно..."? Вставьте, пожалуйста, картинку.
Картинку вставил ниже графика окно индикатора
Неправильный алгоритм индикатора. Нужно вставить в индикатор
#property strict
Нужно проверить вкладку терминала "Эксперты" - а нет ли в ней сообщений об ошибках?
а где вставить он у меня на мт4 альпари работал а на инстафорекс перестал
а где вставить он у меня мт4 альпари работал а на инстафорекс перестал
во вкладке эксперты сообщение на этот индикатор:
2015.12.28 23:58:18.307 MACD-2_1 USDCHF,H4: initialized
Нужно внести изменение в код индикатора и
#property strictдолжно помочь.
Нужно внести изменение в код индикатора и
должно помочь.вставил код в этом месте
#property indicator_separate_window #property strict
выдает ошибку
2015.12.29 18:54:32.507 cannot open file 'C:\Users\admin\AppData\Roaming\MetaQuotes\Terminal\580D3FDDA6592DA6F2939EE43EEDCE3E\MQL4\indicators\3color_MACD.ex4' [2]
полностью код
//+------------------------------------------------------------------+ //| 3color_MACD.mq4 | //| MACD: Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //| 3color: Copyright © 2005, Nikolay Kositsin | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" //---- indicator settings #property indicator_separate_window #property strict #property indicator_buffers 5 #property indicator_color1 MediumBlue #property indicator_color2 Red #property indicator_color3 Gray #property indicator_color4 LimeGreen #property indicator_color5 DarkSlateBlue //---- indicator parameters extern int FastEMA=5; extern int SlowEMA=34; extern int SignalSMA=5; extern int CountBars=300; extern int Line=3; //---- indicator buffers double ind_buffer1[]; double ind_buffer2[]; double ind_buffer3[]; double ind_buffer4[]; double ind_buffer5[]; double minuse; double Vol; double Zml; double Color1; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicator buffers mapping IndicatorBuffers(5); if(!SetIndexBuffer(0,ind_buffer1) && !SetIndexBuffer(1,ind_buffer2) && !SetIndexBuffer(2,ind_buffer3) && !SetIndexBuffer(3,ind_buffer4) && !SetIndexBuffer(4,ind_buffer5)) Print("cannot set indicator buffers!"); //---- drawing settings Color1= C'128,0,255'; SetIndexStyle(0,DRAW_HISTOGRAM, STYLE_SOLID, 2, Color1); SetIndexStyle(1,DRAW_HISTOGRAM, STYLE_SOLID, 2); SetIndexStyle(2,DRAW_HISTOGRAM, STYLE_SOLID, 3); SetIndexStyle(3,DRAW_LINE, STYLE_DASHDOTDOT,1); SetIndexDrawBegin(0,Bars-CountBars); SetIndexDrawBegin(1,Bars-CountBars); SetIndexDrawBegin(2,Bars-CountBars); SetIndexDrawBegin(3,Bars-CountBars+SignalSMA); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+1); //---- name for DataWindow and indicator subwindow label IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")"); SetIndexLabel(0,"MACDUp"); SetIndexLabel(1,"MACDDown"); SetIndexLabel(2,"MACDStr"); SetIndexLabel(3,"Signal"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Moving Averages Convergence/Divergence | //+------------------------------------------------------------------+ int start() { //---- drawing settings int limit; int counted_bars=IndicatorCounted(); //---- check for possible errors if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- macd counted in the 1-st buffer for(int i=0; i<limit; i++) ind_buffer5[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i); //---- Three Colour MACD mapping for(i=0; i<limit; i++) { Vol = ind_buffer5[i]; minuse = Vol - ind_buffer5[i+1]; if(minuse>0.0){ind_buffer1[i]=Vol; ind_buffer2[i]=0.0; ind_buffer3[i]=0.0;} else {if(minuse<0.0){ind_buffer1[i]=0.0; ind_buffer2[i]=Vol; ind_buffer3[i]=0.0;} else {ind_buffer1[i]=0.0; ind_buffer2[i]=0.0; ind_buffer3[i]=Vol;}} //---- } //---- signal line counted in the 2-nd buffer for(i=0; i<limit; i++) ind_buffer4[i]=iMAOnArray(ind_buffer5,Bars,SignalSMA,0,MODE_SMA,i); //---- done return(0); }
Стрикт уберите, с ним вообще замучаетесь, не нужно его без лишней необходимости и если не новый индикатор пишите.
Проблема здесь:
if(!SetIndexBuffer(0,ind_buffer1) && !SetIndexBuffer(1,ind_buffer2) && !SetIndexBuffer(2,ind_buffer3) && !SetIndexBuffer(3,ind_buffer4) && !SetIndexBuffer(4,ind_buffer5)) Print("cannot set indicator buffers!");
Дело в том, что раньше вычислялось все выражение. Т.е. для каждого буфера вызывалась SetIndexBuffer() и все работало. Теперь вычисление логических выражений оптимизировано. При вызове первой SetIndexBuffer() становится понятно, что все выражение не будет true, поэтому заканчивается его вычисление и не вызывается SetIndexBuffer() для остальных буферов.
Стрикт уберите, с ним вообще замучаетесь, не нужно его без лишней необходимости и если не новый индикатор пишите.
Проблема здесь:
Дело в том, что раньше вычислялось все выражение. Т.е. для каждого буфера вызывалась SetIndexBuffer() и все работало. Теперь вычисление логических выражений оптимизировано. При вызове первой SetIndexBuffer() становится понятно, что все выражение не будет true, поэтому заканчивается его вычисление и не вызывается SetIndexBuffer() для остальных буферов.
я не сильно в этом разбираюсь, помогите пожалуйста подробнее что такое стрикт и что именно убрать, и что нужно исправить в приведенном вами коде.
Заранее спасибо
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, при установке индикатора на платформу мт4 он не работает, устанавливал индикатор в сам терминал: Файл/Открыть каталог данных/папка MQL4/индикаторы, затем перегружал мт4 индикатор на графике отображает пустое окно. Помогите пожалуйста.