Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1912

 
DanilaMactep #:
Se non mi sbaglio, è così che è iniziata e non ha funzionato come ricordo ;-)

Te l'ho già mostrato - non so perché non funziona per te - per me funziona sia su mt4 che su mt5.

\\\\\\\\\\\\\\\\\\\\

puoi anche cambiare il colore dei grafici

//+------------------------------------------------------------------+
//|                                       CHART_COLOR_BACKGROUND.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 color Backclr = clrWhite; // Цвет фона графика.
sinput color Foreclr = clrBlack; // Цвет осей, шкалы и строки OHLC графика.
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
//--- переменные для идентификаторов графиков
   long currChart, prevChart = ChartFirst();
   int i = 0, limit = 100;
   bool errTemplate;
   Print("ChartFirst = ", ChartSymbol(prevChart), " ID = ", prevChart);
   while(i < limit) // у нас наверняка не больше 100 открытых графиков
     {
      currChart = ChartNext(prevChart); // на основании предыдущего получим новый график
      errTemplate = ChartBackColorSet(Backclr, prevChart);
      errTemplate = ChartForeColorSet(Foreclr, prevChart);
      if(errTemplate)
        {
         Print("Error ", ChartSymbol(prevChart), "-> ", GetLastError());
        }
      if(currChart < 0)
         break;          // достигли конца списка графиков
      Print(i, ChartSymbol(currChart), " ID =", currChart);
      prevChart = currChart; // запомним идентификатор текущего графика для ChartNext()
      i++;// не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+
//| Функция устанавливает цвет фона графика.                         |
//+------------------------------------------------------------------+
bool ChartBackColorSet(const color clr, const long chart_ID = 0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим цвет фона графика
   if(!ChartSetInteger(chart_ID, CHART_COLOR_BACKGROUND, clr))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__ + ", Error Code = ", GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
//| Функция устанавливает цвет осей, шкалы и строки OHLC графика.    |
//+------------------------------------------------------------------+
bool ChartForeColorSet(const color clr, const long chart_ID = 0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим цвет осей, шкалы и строки OHLC графика
   if(!ChartSetInteger(chart_ID, CHART_COLOR_FOREGROUND, clr))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__ + ", Error Code = ", GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
 
137 Matrix #:

Te l'ho già mostrato - non so perché non funziona per te - per me funziona sia su mt4 che su mt5.

\\\\\\\\\\\\\\\\\\\\

Ecco un altro modo per cambiare il colore dei grafici.

È solo una forza maggiore inevitabile, è solo un colpo - potrei non vedere qualcosa, tutto qui. Ma la ringrazio molto per il suo aiuto.

 
DanilaMactep #:

È solo una forza maggiore - le conseguenze del mio ictus - da qualche parte potrei non vedere qualcosa, tutto qui. Ma la ringrazio molto per il suo aiuto.

Non hai bisogno di aggiungere un .tpl al codice, è già fatto per te.

Dovete solo mettere il nome del modello.

 Template + ".tpl"

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

sinput string Template           = "ADX";          // Имя шаблона(without '.tpl')
      errTemplate = ChartApplyTemplate(prevChart, Template + ".tpl");
      if(!errTemplate)
        {
         Print("Error ", ChartSymbol(prevChart), "-> ", GetLastError());
        }
 
137 Matrix #:

non hai bisogno di aggiungere (.tpl) al codice, è già prescritto per te.

dovete solo inserire il nome del modello nel file .

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Penso di aver capito - la prossima volta, per favore, datemi le istruzioni per l'uso, perché non lo capirete senza un mezzo litro)))))) ;-) Grazie mille per l'aiuto :-)
 
137 Matrix #:

Te l'ho già mostrato - non so perché non funziona per te - per me funziona sia su mt4 che su mt5.

\\\\\\\\\\\\\\\\\\\\

puoi anche cambiare il colore dei grafici

Sasha, non puoi pensare a niente di peggio che usare esempi dalla documentazione o esempi tumblr. E avete anche perso il flag di terminazione forzata del ciclo while da qualche parte. Tutto sommato... senza parole.
 
DanilaMactep #:
Questa opzione non fa assolutamente nulla - rilascio lo script sul grafico e non succede nulla.

Scusate, ho perso il segno di negazione logica!

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 #:
Sasha, non puoi pensare a niente di peggio che usare esempi dalla documentazione o esempi tumblr. Oh, e da qualche parte ha perso la bandiera della terminazione forzata del ciclo while. Beh... senza parole.

Per esempio, il mio compito è trovare una funzione che soddisfi il mio compito, la cerco e se si adatta al mio compito - non importa quante righe abbia - la uso.

L'importante è che la funzione funzioni come voglio io.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Lo faccio per l'autosviluppo e niente di più, puramente per me. Non credo di dover scrivere niente a nessuno.

 
137 Matrix #:

Per esempio, il mio compito è trovare una funzione che soddisfi il mio compito, la cerco e se si adatta al mio compito - non importa quante linee abbia - la uso.

L'importante è che la funzione funzioni come voglio io.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Lo faccio per l'autosviluppo e niente di più, puramente per me. Non credo di scrivere niente a nessuno.

Quando dai un consiglio a qualcuno, non è per te.

Soprattutto con questi errori... Cos'è PERIOD_CURRENT e qual è il risultato nella condizione

      if(TimeFrame != PERIOD_CURRENT)
 
Alexey Viktorov #:

Quando dai un consiglio a qualcun altro, non è più per te stesso.

Soprattutto con questi errori... Cos'è PERIOD_CURRENT e qual è il risultato nella condizione

Non lo so, funziona!

Cambia il grafico in base al periodo ripristinato nelle impostazioni.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Quando qualcuno fa una domanda, cerco di mettermi nei suoi panni e raggiungere il risultato richiesto.

Se non l'avete notato, ho completato questo compito come meglio potevo e ho postato lo script finito - può non essere corretto - ma soddisfa il suo scopo.

 
Alexey Viktorov #:

Quando dai un consiglio a qualcun altro, non è più per te stesso.

Soprattutto con questi errori... Cos'è PERIOD_CURRENT e qual è il risultato nella condizione

 if(TimeFrame != PERIOD_CURRENT)

Non vedo alcun errore qui.

Motivazione: