Errori, bug, domande - pagina 2391

 
Kisolen:
Quando si entra in standby su Windows 10 (home non ricordo quale, ma moderno, e interprise ltsb 1607 (piuttosto vecchio)) su MT5, l'EA smette di essere attaccato al grafico, i trade smettono di essere eseguiti, ma alcune funzioni funzionano ancora (output della finestra grafica auto scritta, che è funzionale). È un bug di MT o un problema con l'EA? Grazie.

La modalità standby è quando il computer è praticamente spento. Tutti i programmi sono fermi.

 
Grazie per la sua risposta all'ultimo commento. C'è un'altra domanda. MT5. Faccio un modello di interfaccia, senza "griglia" sul grafico, chiamo questo modello "Default" così è abilitato di default, tutto funziona in MT stesso, ma non funziona nella finestra di visualizzazione EA. Grazie.
 
Kisolen:
Grazie per la sua risposta al commento precedente. C'è un'altra domanda. MT5. Sto facendo un modello di interfaccia, senza la "griglia" sul grafico, chiamo questo modello "Default" in modo che sia abilitato di default, nel MT stesso tutto funziona, ma non funziona nella finestra di visualizzazione dell'EA. Grazie.

Il modello di grafico "default.tpl" si applica quando si apre un nuovo grafico nel terminale, mentre il modello di grafico "tester.tpl" si applica quando si esegue un tester di strategia in modalità visiva.

Clicca qui per maggiori informazioni: Modelli e profili - Caratteristiche avanzate - Grafici di quotazioni, analisi tecnica e fondamentale

 

Ciao a tutti.

Vorrei attirare l'attenzione degli sviluppatori sul seguente bug in MT5 (build 2006). Quando si chiama la funzioneChartGetInteger con gli identificatori di proprietàCHART_WIDTH_IN_BARS oCHART_VISIBLE_BARS, se è attiva un'altra finestra con lo stesso simbolo ma un TF più piccolo, la funzione restituisce valori errati. Se il grafico ha la scala massima (5), il valore restituito è inferiore al valore reale di 5. Se il fattore di scala è 4, il valore restituito è più piccolo di 10. Se il fattore di scala è 3, allora rispettivamente per 20, ecc. Il codice per l'indicatore di prova, per riprodurre il glitch è qui sotto. Questo glitch è riprodotto stabilmente su TF D1 e sullo strumento RTS-3.19. Ho anche registrato un video con la dimostrazione del bug per chiarezza. Nella build 274(a giudicare dalla cronologia) un bug simile era già stato risolto, ma apparentemente non fino in fondo. :)

//+------------------------------------------------------------------+
//|                                                     DBS_Bug2.mq5 |
//|                                            Copyright © 2019, DBS |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1                                         //количество индикаторных буферов
#property indicator_plots   1                                         //количество графических построений
//+------------------------------------------------------------------+ 
//| Функция инициализации индикатора                                 | 
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+ 
//| Функция расчёта индикатора                                       | 
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,                                //количество истории в барах на текущем тике
                const int prev_calculated,                            //количество истории в барах на предыдущем тике
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---Debug
   int chart_bars=int(ChartGetInteger(0,CHART_WIDTH_IN_BARS));     //к-во баров на экране
   int vis_bars=int(ChartGetInteger(0,CHART_VISIBLE_BARS));        //к-во баров видимых на экране
   PrintFormat("%s: Debug #2! rates_total=%i chart_bars=%i vis_bars=%i",__FUNCTION__,rates_total,chart_bars,vis_bars);
   return(rates_total);
  }
//+------------------------------------------------------------------+

Avevo un valore di ritorno di questa funzione ancora più divertente (soprattutto durante il caricamento del terminale). Alla massima scala del grafico (5) il valore di ritorno =5 (indipendentemente dal numero effettivo di barre sul grafico). Se lo zoom è 4, allora valore di ritorno =10. Se il fattore di scala è 3, allora rispettivamente =20, ecc. Sfortunatamente, non sono riuscito a catturare questo inconveniente su un video. Tuttavia, ho ucciso l'intera giornata per capire perché il mio indicatore funziona in modo errato su D1, mentre è OK su altri TF.


P.S. Log dallo stesso grafico (RTS-3.19, D1) dopo un paio d'ore (dopo l'interruzione della connessione). Realisticamente 55 barre sono mostrate sul grafico. E MT5 nel log dice che solo 5 si adattano allo schermo, e non ci sono barre visibili:)Screenshot

2019.02.24 21:27:09.692 DBS_Volume (RTS-3.19,D1)        DBS Volume (VOLUME_REAL): SetVolScale: Debug #1!  max_vol_idx=3 max_vol=402550 time=2019.02.19 00:00 rates_total=220 chart_bars=5 vis_bars=0
MetaTrader 5 Client Terminal build 274
MetaTrader 5 Client Terminal build 274
  • 2010.05.15
  • MetaQuotes Software Corp.
  • www.metatrader5.com
Terminal: Исправлено отображение истории торговли на чарте. Terminal: Исправлена ошибка в навигации чарта (при отключеном сдвиге и автоскроле). Terminal: Исправления по сообщениям на форуме и крешлогам. Terminal: В файл помощи добавлено описание Тестера Стратегий MetaTester: Исправлена ошибка в загрузке параметров тестирования при смене...
 
Dmitriy Burlachenko:

Salve sviluppatori.

La Guida alla libreria standard MQL5 ha la funzione WindowHandle, ma quando la si usa, il compilatore dice 'WindowHandle' - funzione non definita'. Domanda: chi è il glitch del codice o il compilatore? :)

È SB.

int CChart::WindowHandle(void) const;
 
Dmitriy Burlachenko:

Salve sviluppatori.

La Guida alla libreria standard MQL5 ha la funzione WindowHandle, ma quando la si usa, il compilatore dice 'WindowHandle' - funzione non definita'. Domanda: chi è il glitch del codice o il compilatore? :)


Stai usando Help in modo scorretto.

Guardate attentamente:MQL5 ReferenceStandard LibraryPrice ChartsWindowHandle

Torna indietro di un passo e leggi la sezioneGrafici dei prezzi


Aggiunto:

Esempio di caso d'uso (nota: è necessario eseguire prima il metodoAttach) e solo dopo lavorare con l'oggetto

//+------------------------------------------------------------------+
//|                       Gets window handle of the chart (HWND).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"
#property description "Gets window handle of the chart (HWND)"
//---
#include <Charts\Chart.mqh>
CChart   m_chart;                      // CChart object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   m_chart.Attach(); // assigns the current chart to the class instance

   Print("CChart.WindowHandle: ",m_chart.WindowHandle());
   Print("CChart.ChartId: ",m_chart.ChartId());
  }
//+------------------------------------------------------------------+

Risultato:

2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.WindowHandle: 13830128
2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.ChartId: 131571247244850547
 
Dmitriy Burlachenko:

Salve sviluppatori.

La Guida alla libreria standard MQL5 ha la funzioneWindowHandle, ma quando la si usa, il compilatore dice 'WindowHandle' - funzione non definita'. Domanda: chi è il glitch del codice o il compilatore? :)

uso:

ChartGetInteger(0,CHART_WINDOW_HANDLE,0);
 
Vladimir Karputov:

State usando l'aiuto sbagliato.

Guardate attentamente:MQL5 ReferenceStandard LibraryPrice ChartsWindowHandle

Torna indietro di un passo e leggi igrafici dei prezzi


Aggiunto:

Esempio di utilizzo (nota - è necessario eseguire prima il metodoAttach) e solo dopo lavorare con l'oggetto

Risultato:

Grazie.

 
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2019.02.21
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

MQL5 ME 2006

#property strict

class A
 { 
public:
  int f();
 };

void OnStart()
  {
   A a;
   a.f();
  }

Stesso codice in MQL4 come dovrebbe essere,"la funzione 'f' deve avere un corpo"