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

 
rriaz #:
Есть ещё моменты. Отец даже пароль говорит, что не знает! ( Я завтра буду у него, могу сделать скриншоты или что-либо ещё. Программа установлена только на телефоне

Я сожалею, скорее это мошенники и вам нужно в правоохранительные органы.

 
Alexey Viktorov #:

Может в этом проблема? Попробуйте периодически удалять ресурс

но тогда придётся создавать его динамически

То-есть сначала удалить ресурс, затем его создать заново. Проблема только в том, что я не знаю как это будет работать. Да и будет ли вообще. Надо пробовать…

Не помогло. ResourceCreate создает новый файл только для картинок, поэтому он не видит индикатор. Я так понял, просто надо периодически очищать память. Попробую с ZeroMemory что нибудь придумать

 

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

Открываю 8 графиков- все разные на тф н1 с шаблоном скальпинг-скрин ниже.

8 ОТКРЫТЫХ ГРАФИКВ С ШАБЛОНОМО СКАЛЬПИНГА

Накидываю на самый левый график(AUD/USD) скрипт для перевода всех графиков на д1 и шаблон среднесрока- код ниже.

string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl";//ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0)
   {
    if(ChartPeriod(prevChart) != PERIOD_D1)// ЕСЛИ ПЕРИОД ГРАФИКА НЕ Д1
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_D1); // УСТАНАВЛИВАЕМ ПЕРИОД ГРАФИКА КАК Д1
      ChartApplyTemplate(prevChart, tplName); // И УСТАНАВЛИВАЕМ НА ГРАФИК ШАБЛОН СРЕДНЕСРОКА
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/


Ко всем графикам пременился шаблон среднесрока кроме самого левого графика- на который накидывал скрипт.

Далее беру и накидываю на самый левый график скрипт для перевода графиков на н1 и шаблон скальпинга. Код скрипта ниже

+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
string tplName = "FIBOmAGIC СКАЛЬПИНГ.tpl";
void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0 && IsStopped())
   {
    if(ChartPeriod(prevChart) != PERIOD_H1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_H1);
      ChartApplyTemplate(prevChart, tplName);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+


Вроде всё чётко выходит- шаблон скальпинга применяется ко всем графикам. Но бывает одно но. если два раза накинуть один  и тот же скрипт на самый левый график то 5 графиков из 8 становятся инструментом aud/usd.

ПОСЛЕ ДВУХ ПОДРЯТ ПРИМЕНЕНИЙ ОДНОГО СКРИПТА ЧАСТЬ ГРАФИКОВ СТАНОВИТСЯ ОДНОГО ИНСТРМЕНТА

Почему такое происходит и как этого избежать кроме как не накидывать один скрипт 2 раза подрят?

 
DanilaMactep #:

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

Открываю 8 графиков- все разные на тф н1 с шаблоном скальпинг-скрин ниже.

Накидываю на самый левый график(AUD/USD) скрипт для перевода всех графиков на д1 и шаблон среднесрока- код ниже.


Ко всем графикам пременился шаблон среднесрока кроме самого левого графика- на который накидывал скрипт.

Далее беру и накидываю на самый левый график скрипт для перевода графиков на н1 и шаблон скальпинга. Код скрипта ниже


Вроде всё чётко выходит- шаблон скальпинга применяется ко всем графикам. Но бывает одно но. если два раза накинуть один  и тот же скрипт на самый левый график то 5 графиков из 8 становятся инструментом aud/usd.

Почему такое происходит и как этого избежать кроме как не накидывать один скрипт 2 раза подрят?

Попробуйте так

void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0 && IsStopped())
   {
    //if(ChartPeriod(prevChart) != PERIOD_H1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_H1);// или PERIOD_D1
      ChartApplyTemplate(prevChart, tplName);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/
 
Alexey Viktorov #:

Попробуйте так

такой вариант вообще ничего не делает- скрипт отпускаю на график и просто ничего не происходит.
 
DanilaMactep #:
такой вариант вообще ничего не делает- скрипт отпускаю на график и просто ничего не происходит.

А объявление переменной

string tplName = "FIBOmAGIC СРЕДНЕСРОК.tpl";//ИМЯ ПОДГРУЖАЕМОГО ШАБЛОНА

случайно не удалили?

 
Alexey Viktorov #:

А объявление переменной

случайно не удалили?

Если бы удалил компилятор орал бы что неидентифицированная переменная. Но сейчас ещё раз попробу...
 
Alexey Viktorov #:

А объявление переменной

случайно не удалили?

перепроверил. переменная не удалена. вставляю вашь вариант. Компилирую и скрипт ничего не делает.
 
DanilaMactep #:
такой вариант вообще ничего не делает- скрипт отпускаю на график и просто ничего не происходит.

не ужели у вас так не работает?

//+------------------------------------------------------------------+
//|                                           ChartApplyTemplate.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//----
sinput string Template           = "ADX";          // Имя шаблона(without '.tpl')
sinput ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; // Период
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   long currChart, prevChart = ChartFirst();
   int i = 0, limit = 100;
   bool errTemplate;
   while(i < limit)
     {
      currChart = ChartNext(prevChart);
      if(TimeFrame != PERIOD_CURRENT)
        {
         ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), TimeFrame);
        }
      errTemplate = ChartApplyTemplate(prevChart, Template + ".tpl");
      if(!errTemplate)
        {
         Print("Error ", ChartSymbol(prevChart), "-> ", GetLastError());
        }
      if(currChart < 0)
         break;
      Print(i, ChartSymbol(currChart), " ID =", currChart);
      prevChart = currChart;
      i++;
     }
  }
//+------------------------------------------------------------------+
 
137 Matrix #:

не ужели у вас так не работает?

если я не ошибаюсь с этого кода всё и начиналось- он не работал насколько я помню;-) А и я в коде чё-то не догнал куда втыкать имя шаблона. В общем говоря жесть какая-то получается...
Причина обращения: