Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1099

 
Artyom Trishkin:

Да, бывало.

Интересны сценарии.

 
fxsaber:

Интересны сценарии.

Давно не торгую. Прям д а в н о.

Но было на робофорекс, что после отправки запроса на сервер советник тупо висел в ожидании реквоты, и ничегошеньки уже не делал. А хотелось и на другом символе работать.

 
Artyom Trishkin:

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

Это называется несколько независимых логик в одном советнике. Народ такие по разным чартам разбрасывает.

 
fxsaber:

Это называется несколько независимых логик в одном советнике. Народ такие по разным чартам разбрасывает.

В одном всё было. Случай когда чиф с ума сошёл когда его отвязали от доллара. Пришлось по другим символам руками работать. Но из возможного профита смог словить только 60 долларов. Не висел бы советник в ожидании реквоты - раза в три больше бы словил скорее всего.

 

Не получается получить данные индикатора со старшего таймфрейма из советника.

2019.07.22 07:23:02.556 Core 1  2017.10.05 07:00:00   Не удалось скопировать значения индикатора. Error =4806,  copied =-1

Причем при оптимизации работает. Начинаешь запускать в визуализаторе вываваливается эта ошибка.

Что не так с индикатором ? 

Файлы:
ind.mq5  11 kb
 
EgorKim:

Не получается получить данные индикатора со старшего таймфрейма из советника.

Причем при оптимизации работает. Начинаешь запускать в визуализаторе вываваливается эта ошибка.

Что не так с индикатором ? 

А код советника где?

Вероятная причина - в пути где лежит индикатор (прописанный путь к индикатору в советнике через iCustom). Также в одной папке должен быть и mq5 и ex5 файл индикатора.

 
EgorKim:

Не получается получить данные индикатора со старшего таймфрейма из советника.

Причем при оптимизации работает. Начинаешь запускать в визуализаторе вываваливается эта ошибка.

Что не так с индикатором ? 

Итак, Ваш индикатор находится в папке [date folder]\MQL5\Indicators\ind.mq5 , там же лежит и скомпилированный файл.

Пример советника, который обращается в индикаторному буферу "0" - "Means":

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//--- input parameters
input int      Input1=9;
//---
int    handle_iCustom;              // variable for storing the handle of the iCustom indicator /*
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create handle of the indicator iCustom
   handle_iCustom=iCustom(Symbol(),Period(),"ind");
//--- if the handle is not created 
   if(handle_iCustom==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code 
      PrintFormat("Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d",
                  Symbol(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early 
      return(INIT_FAILED);
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double means[];
   ArraySetAsSeries(means,true);
   int start_pos=0,count=3;
   if(!iGetArray(handle_iCustom,0,start_pos,count,means))
      return;

   string text="Means:"+"\n";
   for(int i=count-1;i>=0;i--)
     {
      text=text+"#"+IntegerToString(i)+": "+DoubleToString(means[i],Digits())+"\n";
     }
   Comment(text);
  }
//+------------------------------------------------------------------+
//| Get value of buffers                                             |
//+------------------------------------------------------------------+
double iGetArray(const int handle,const int buffer,const int start_pos,const int count,double &arr_buffer[])
  {
   bool result=true;
   if(!ArrayIsDynamic(arr_buffer))
     {
      Print("This a no dynamic array!");
      return(false);
     }
   ArrayFree(arr_buffer);
//--- reset error code 
   ResetLastError();
//--- fill a part of the iBands array with values from the indicator buffer
   int copied=CopyBuffer(handle,buffer,start_pos,count,arr_buffer);
   if(copied!=count)
     {
      //--- if the copying fails, tell the error code 
      PrintFormat("Failed to copy data from the indicator, error code %d",GetLastError());
      //--- quit with zero result - it means that the indicator is considered as not calculated 
      return(false);
     }
   return(result);
  }
//+------------------------------------------------------------------+

И результат в тестере:


и онлайн:


Файлы:
Test.mq5  7 kb
 
Vladimir Karputov:

Итак, Ваш индикатор находится в папке [date folder]\MQL5\Indicators\ind.mq5 , там же лежит и скомпилированный файл.

Пример советника, который обращается в индикаторному буферу "0" - "Means":

И результат в тестере:


и онлайн:


У меня нет ошибок на текущем таймфрейме .

Проблема появляется если получать данные со старшего таймфрейма.

Явно проблема в индикаторе ,а не в моем советнике)

Причем в режиме оптимизации ошибки нет. Включаешь одиночный проход и визуализацию - есть ошибка. Дурка...

Вот тема из той же оперы, как я понимаю

https://www.mql5.com/ru/forum/190003

Не получается брать данные индикатора со старшего ТФ
Не получается брать данные индикатора со старшего ТФ
  • 2017.04.14
  • www.mql5.com
Уже четвёртый день в индикаторе пытаюсь получить данные стандартного индикатора АО со старшего таймфрейма, и всё никак...
 
EgorKim:

У меня нет ошибок на текущем таймфрейме .

Проблема появляется если получать данные со старшего таймфрейма.

Явно проблема в индикаторе ,а не в моем советнике)

Причем в режиме оптимизации ошибки нет. Включаешь одиночный проход и визуализацию - есть ошибка. Дурка...

Вот тема из той же оперы, как я понимаю

https://www.mql5.com/ru/forum/190003

У вас нет обращений к старшему таймфрейму - его данные не поддерживаются в актуальном состоянии:
Проблема перевода с МТ4 на МТ5. Или, точнее, невозможность без'ошибочного исполнения некоторых алгоритмов в МТ5.
Проблема перевода с МТ4 на МТ5. Или, точнее, невозможность без'ошибочного исполнения некоторых алгоритмов в МТ5.
  • 2019.07.21
  • www.mql5.com
Сначала цитата из справочника языка MQL5. Рубрика Организация доступа к данным...
 

Вот в таком виде индикатор набросьте на график H1 с параметрами по умолчанию.

Ошибка есть

Artyom Trishkin

Дак я прошу помощи что в индикаторе исправить

Файлы:
ind2.mq5  22 kb