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

 
Roman:

Подскажите, есть ли хук для индикатора mql5? Задать два свойства отображения.

И как то привязать разный вывод, каждый к своему свойству отображения.

Есть. Но только для mql5 и для маркета не прокатит. В индикаторах пишете поиск индикатора с именем второго и если его нет, то ChartIndicatorAdd().

 
Alexey Viktorov:

Есть. Но только для mql5 и для маркета не прокатит. В индикаторах пишете поиск индикатора с именем второго и если его нет, то ChartIndicatorAdd().

Ну это уже два индикатора. Не один с одновременным двойным свойством отрисовки на главном графике и в подокне.

Хотя, как вариант одновременного запуска двух разных индикаторов - пойдёт. Но данные нужно будет получать от двух индикаторов, а не от одного.

 
Artyom Trishkin:

Ну это уже два индикатора. Не один с одновременным двойным свойством отрисовки на главном графике и в подокне.

Хотя, как вариант одновременного запуска двух разных индикаторов - пойдёт. Но данные нужно будет получать от двух индикаторов, а не от одного.

Да, правильно, смысл был отрисовать на графике и в подокне, из одного кода.

Artyom Trishkin:

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

Вот тут и загвоздка. Как из подокна вывести на график?
Если есть пример, будет понятней.

 

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

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants?#enum_symbol_calc_mode

Но проблемы остались.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как правило...
 

Скажите, как перевести из MQL4 в MQL5 данный код:

datetime  bar_day   = TimeDay(Time[Bars - 1]);

?

Перепробовал кучу вариантов, вот один из них:

int bars=Bars;
//+------------------------------

   datetime  bar_day   = TimeDayMQL4(iTimeMQL4(NULL,0,(bars - 1)));

где TimeDayMQL4 и iTimeMQL4 ф-ции созданные в библиотеке совместимости с MQL4 вот их код:

int TimeDayMQL4(datetime date)
  {
   MqlDateTime tm;
   TimeToStruct(date,tm);
   return(tm.day);
  }

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

Но все-равно не получается, получаю 1970 год ...

 
Sayberix :

Скажите, как перевести из MQL4 в MQL5 данный код:

?

Это просто. Следите за статьей: https://www.mql5.com/ru/articles/81

Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
jaffer wilson:

Это просто. Следите за статьей: https://www.mql5.com/ru/articles/81

Обновил свой пост. Пробовал, не получается. В переменных вот такое получаю значение: D'1970.01.01 00:00:24'

Использую еще TimeMonthMQL4 и TimeYearMQL4
 
jaffer wilson:

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

https://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants?#enum_symbol_calc_mode

Но проблемы остались.

Я не разбирался - не подскажу к сожалению.

 
Roman:

Да, правильно, смысл был отрисовать на графике и в подокне, из одного кода.

Вот тут и загвоздка. Как из подокна вывести на график?
Если есть пример, будет понятней.

На график вывести есть два варианта:

  1. Графические объекты
  2. Канвас

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

Либо, что удобнее, сначала в этот буфер заносить все рассчитанные данные по каждому бару, а потом по этим данным уже строить графику в основном окне. Как её строить - на ваш выбор. Я бы на канвасе остановил свой выбор.

 
Sayberix:

Обновил свой пост. Пробовал, не получается. В переменных вот такое получаю значение: D'1970.01.01 00:00:24'

Использую еще TimeMonthMQL4 и TimeYearMQL4

Из статьи что привел Jaffer

void OnStart()
{
   datetime Time[];
   int count = 2;        //сколько копируем 
   ArraySetAsSeries(Time, true);
   CopyTime(_Symbol, PERIOD_D1, 0, count, Time); 
   
   Print(Time[1]); //1-окрытие вчерашнего дня, 0-открытие текущего дня
}
Причина обращения: