Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 8

 
Slawa:

Информация про 8 буферов устарела

В новом MQL4 можно установить до 512 буферов.

Чтобы разобраться, смотрите исходники индикаторов в папке MQL4\Indicators\Examples. И читайте документацию

Спасибо,конечно, за ссылку на справочник:) Однако. я его и так уже облазил. Ничего , к сожалению, не нашел конкретного - для чего нужны доп. буфера, что отображается , что нет и пр.. просто функции, а по структуре и назначению, логике работы обновленных "буферов" - ничего нет.

Человек обращается на форум именно за ответом, а не за ссылкой на справочник. Может, кто более подробно объяснит ? :) Или хотя бы ссылку на статью, где это объясняется ?

 
Ilya Melamed:

Спасибо,конечно, за ссылку на справочник:) Однако. я его и так уже облазил. Ничего , к сожалению, не нашел конкретного - для чего нужны доп. буфера, что отображается , что нет и пр.. просто функции, а по структуре и назначению, логике работы обновленных "буферов" - ничего нет.

Человек обращается на форум именно за ответом, а не за ссылкой на справочник. Может, кто более подробно объяснит ? :) Или хотя бы ссылку на статью, где это объясняется ?

Наслаждайтесь:

https://www.mql5.com/ru/articles/1500

https://www.mql5.com/ru/articles/1503

 
Ilya Melamed:

Спасибо,конечно, за ссылку на справочник:) Однако. я его и так уже облазил. Ничего , к сожалению, не нашел конкретного - для чего нужны доп. буфера, что отображается , что нет и пр.. просто функции, а по структуре и назначению, логике работы обновленных "буферов" - ничего нет.

Человек обращается на форум именно за ответом, а не за ссылкой на справочник. Может, кто более подробно объяснит ? :) Или хотя бы ссылку на статью, где это объясняется ?

В новом mql4 можно не использовать доп. буферы.

Отображаться будет то, что Вы запишете в буфер. Может и ничего не отображаться, если тип граф. серии будет DRAW_NONE.  

Основная функция индикатора - OnCalculate(). Начните с этого:

https://docs.mql4.com/ru/basis/function/events#oncalculate 

Функции обработки событий - Функции - Основы языка - Справочник MQL4
Функции обработки событий - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Функции обработки событий - Функции - Основы языка - Справочник MQL4
 
Да было бы чем наслаждаться. Очень старое все.

Ilya Melamed  

Статьи, конечно, прочитайте, но держите в уме, что основная функция другая и начало индикаторов сейчас лучше строить иначе (см. ссылку, что я привел в предыдущем сообщении). Также можете посмотреть в CodeBase индикаторы, написанные Nikolay Kositsin. Он на этом всех съел:).

 

Приветствую.

В MT4 после void OnTick() пишу советник из одной функции:

Print("TEXT");  

(задача - чтоб на каждый тик в журнале писалось "ТЕХТ") 

Компилирую, в журнале тестера на каждый тик пишет "ТЕХТ".  При включении этого же советника на графике в журнал пишется что загрузка успешно завершена и все, текста "ТЕХТ" нет.

При этом функции Comment() и Alert() на графике и в тестере отрабатывают одинаково.

Что я делаю не так? 

 
spoiltboy:

Приветствую.

В MT4 после void OnTick() пишу советник из одной функции:

Print("TEXT");  

(задача - чтоб на каждый тик в журнале писалось "ТЕХТ") 

Компилирую, в журнале тестера на каждый тик пишет "ТЕХТ".  При включении этого же советника на графике в журнал пишется что загрузка успешно завершена и все, текста "ТЕХТ" нет.

При этом функции Comment() и Alert() на графике и в тестере отрабатывают одинаково.

Что я делаю не так? 

Приложите полный код эксперта и название инструмента, на котором запускаете.
 
Alexey Kozitsyn:
Приложите полный код эксперта и название инструмента, на котором запускаете.

Инструмент любой, USDCHF, H1 , к примеру. 

//+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   Print("TEXT");
  }
//+------------------------------------------------------------------+

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
spoiltboy:

Приветствую.

В MT4 после void OnTick() пишу советник из одной функции:

Print("TEXT");  

(задача - чтоб на каждый тик в журнале писалось "ТЕХТ") 

Компилирую, в журнале тестера на каждый тик пишет "ТЕХТ".  При включении этого же советника на графике в журнал пишется что загрузка успешно завершена и все, текста "ТЕХТ" нет.

При этом функции Comment() и Alert() на графике и в тестере отрабатывают одинаково.

Что я делаю не так? 

Всё  так, просто в тот момент тиков не было. Чтобы нагляднее было, добавьте счётчик тиков и печатайте его значение.

 

int tik=0;
void OnTick()
{                                      
tik++;
Print("tik # = ", tik);
}
 
Vitalie Postolache:

Всё  так, просто в тот момент тиков не было. Чтобы нагляднее было, добавьте счётчик тиков и печатайте его значение.

 

int tik=0;
void OnTick()
{                                      
tik++;
Print("tik # = ", tik);
}

При этом функции Comment() и Alert() на графике и в тестере отрабатывают одинаково.

Что я делаю не так? 

 
spoiltboy:

Инструмент любой, USDCHF, H1 , к примеру. 

//+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   Print("TEXT");

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


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