Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 991

 
LuckyTrader:
Из портянки ошибка ушла, с такой же формулировкой , ушла теперь в другую часть. Чуть выше я написал Игорю

вставляйте принты где возникает ошибка, может хоть так решите свой вопрос

по другому никак, я уже обьяснял причину Вашей ошибки

 

Здравствуйте, решил вот переписать индикатор с MQL4 на MQL5 и встрял на  буферах индикатора... вроде всё что надо ввел а линия индикатор так и не отображается!

Вот пример, хочу отобразить цену закрытия на последних 30 барах, даже вывел комментарием буфер, поглядеть заполнился ли он чем нибудь...

Буфер значит заполняется а график пустой, отрисовки на графике нету (((

В чем может быть проблема?  мб в MQL5 бары задом наперед?))


//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                                                . |
//|                                                                . |
//+------------------------------------------------------------------+
#property copyright "."
#property link      "."
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 8         // Количество буферов индикатора
#property indicator_plots   8         // Количество графических серий

#property indicator_label1 "TestLine" 
#property indicator_type1 DRAW_LINE  
#property indicator_style1 STYLE_SOLID 
#property indicator_width1 1  
#property indicator_color1 Red  
//+------------------------------------------------------------------+
//|                        БУФЕРЫ                                    |
//+------------------------------------------------------------------+
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
//+------------------------------------------------------------------+
//|                     ПАРАМЕТРЫ БУфЕРА                             |
//+------------------------------------------------------------------+
int OnInit(){                   

SetIndexBuffer(0,Buffer1,INDICATOR_DATA);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);  
PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);         
PlotIndexSetInteger(0,PLOT_LINE_COLOR,Blue);   

return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
//| Деинициализация                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason){
Comment("");}
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[]){
                
                
for(int Z = 30; Z>=0; Z--) {
Buffer1[Z] = iClose(NULL,0,Z);} 
Comment(Buffer1[0]);               

return(rates_total);}
//+------------------------------------------------------------------+

 
Nikita Zubarov:

Здравствуйте, решил вот переписать индикатор с MQL4 на MQL5 и встрял на  буферах индикатора... вроде всё что надо ввел а линия индикатор так и не отображается!

Вот пример, хочу отобразить цену закрытия на последних 30 барах, даже вывел комментарием буфер, поглядеть заполнился ли он чем нибудь...

Буфер значит заполняется а график пустой, отрисовки на графике нету (((

В чем может быть проблема?  мб в MQL5 бары задом наперед?))


нумерация баров в MQL5 противоположная

for(int Z = rates_total-50; Z<rates_total; Z++)


индексацию можно изменить с помощью https://www.mql5.com/ru/docs/array/arraysetasseries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Igor Makanu:

нумерация баров в MQL6 противоположная


индексацию можно изменить с помощью https://www.mql5.com/ru/docs/array/arraysetasseries

Спасибо!, добавил строчку и начало нормально показывать!

ArraySetAsSeries(Buffer1,true); 
но мне кажется нумерация баров та же  справа-налево, прост буфера выходят задом наперед....
 
Nikita Zubarov:

Спасибо!, добавил строчку и начало нормально показывать!

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

в 4-ке бар №0 это самый правый бар

в 5-ке бар №0 это самый левый бар

по умолчанию индексация индикаторных буферов такая же как у таймсерий

если применяете ArraySetAsSeries() то он применится только к одному массиву - у Вас в примере к массиву индикаторного буфера Buffer1 , для корректного расчета нужно применить еще к close

ArraySetAsSeries(Buffer1,true); 
ArraySetAsSeries(close,true); 
for(int Z = 30; Z>=0; Z--) 
{
Buffer1[Z] = сlose[i];
} 

или изменить цикл как выше писал

 
Всем привет! Подскажите пожалуйста, хочу чтобы советник открывал позицию на символе отличном от текущего графика, в итоге моих знаний хватило пока только на это 
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
Правильно ли я сделал, если нет поправьте меня пожалуйста 
 
Averman:
Всем привет! Подскажите пожалуйста, хочу чтобы советник открывал позицию на символе отличном от текущего графика, в итоге моих знаний хватило пока только на это 
OrderSend(MarketInfo("EURUSD",MODE_ASK), OP_BUY, Lots, Ask, Slip, 0, 0, "", Magic, 0, Blue)
Правильно ли я сделал, если нет поправьте меня пожалуйста 

Конечно не правильно.

OrderSend("EURUSD", OP_BUY, Lots, MarketInfo("EURUSD",MODE_ASK), Slip, 0, 0, "", Magic, 0, Blue) 
Если нигде не ошибся, то так. Но в любом случае смысл должен быть понятен. 
 
Уже появился MQL6, кто нить тестировал эту оболочку?
 
Seric29:
Уже появился MQL6, кто нить тестировал эту оболочку?

А разве сегодня 1 апреля?

 
Alexey Viktorov:

А разве сегодня 1 апреля?

А я начал гуглить))

... нашел одностраничный сайт mql6 и одну ссылку на форум в mql5.com

Причина обращения: