Errori, bug, domande - pagina 3087

 
Aliaksandr Hryshyn #:

Per favore:

wnd - descrittore della finestra principale, trova il tuo.

0x8134 - terzo parametro per cancellare i log dalla scheda di registro

Controllato, funziona.

Ne avevo bisogno e l'ho avuto, grazie

#import "user32.dll"
long SendMessageW(long wnd, uint Msg, long param, ulong l = 0);
long GetAncestor(long hwnd, uint gaFlags);
#import
#define  GA_PARENT 1
#define  GA_ROOT 2
#define  GA_ROOTOWNER 3
//+------------------------------------------------------------------+
void OnStart()
{
   long handle = ChartGetInteger(0, CHART_WINDOW_HANDLE);
   if(handle != 0)
   {
      long h = GetAncestor(handle,GA_ROOTOWNER);
      SendMessageW(h, 0x111, 0x8135);
   }
}
 
Aliaksandr Hryshyn #:
Igor Makanu #:

Grazie! Peccato, funziona solo quando la scheda Log è attiva.

 
fxsaber #:

Grazie! Peccato che funzioni solo quando la scheda Log è attiva.

Questo è quello che ho scritto - trovare la scheda giusta e darle il focus e poi semplicemente inviare il messaggio.... non funzionerà in un paio di righe di codice

ma per il debug, il codice di @Aliaksandr Hryshyn funziona.

 
Igor Makanu #:

per il debug del codice@Aliaksandr Hryshyn funziona, mi sembra conveniente

Sì, grazie.

 
MQL_User #:

Ciao a tutti.

Qualcuno può dirmi se c'è un modo per disabilitare lo scorrimento orizzontale del grafico spostando il cursore del mouse in orizzontale?

Sì, c'è. Anche la ruota può farlo.

Sta tutto nell'aiuto. La cosa principale è leggerla.

Документация по MQL5: Операции с графиками / ChartSetInteger
Документация по MQL5: Операции с графиками / ChartSetInteger
  • www.mql5.com
ChartSetInteger - Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber #:

Grazie! Peccato, funziona solo quando la scheda Log è attiva.

Potrebbe aiutare (funziona in 4):

#define   GA_ROOT 2

// получаем системный дескриптор основного окна терминала
hMetaTrader = GetAncestor(WindowHandle(Symbol(), Period()), GA_ROOT);

// ищем окно "Терминал"
hControlBar = GetDlgItem(hMetaTrader, 0xE81E);
hControlBar = GetDlgItem(hControlBar, 0x0051);

// ищем список указанной вкладки (0 - эксперты, 1 - журнал)
hListView = GetDlgItem(hControlBar, (iTab == 0 ? 0x8A6A : 0x81B9));
 
Andrey Khatimlianskii #:

Potrebbe aiutare (funziona in quattro):

Grazie, dovrò guardare i codici delle finestre in cinque.

 
Artyom Trishkin #:

È possibile. E anche con una ruota.

Sta tutto nell'aiuto. La cosa principale è leggerla.

Artem, grazie.

Stavo cercando nelle impostazioni del programma per disabilitare questa opzione e in qualche modo non pensavo che si potesse fare dal codice.

 

Ciao!

Una ricerca nel forum ha dato diverse risposte, ma in questo caso, nessuna era la soluzione. Pertanto, farò di nuovo una domanda simile, forse questa volta sarà ascoltata.

Ho un terminale MT5 build 3036, che è il più "nuovo".

Creo un indicatore personalizzato nell'editor usando la procedura guidata e lo compilo in bianco (per evitare tutti i possibili errori nel codice).

//+------------------------------------------------------------------+
//|                                              CustomIndicator.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
//+------------------------------------------------------------------+

Poi attacco l'indicatore compilato al grafico ed eseguo il passaggio di timeframe e ad ogni passaggio appare la registrazione nel log che l'indicatore è stato spostato in un nuovo timeframe e cancellato dal precedente. Questo accade ogni volta che i periodi vengono scambiati.

MG      0       15:37:11.020    Indicators      custom indicator CustomIndicator (GBPUSD,M5) loaded succesfully
ML      0       15:37:27.861    Indicators      custom indicator CustomIndicator (GBPUSD,M1) loaded succesfully
DP      0       15:37:30.884    Indicators      custom indicator CustomIndicator (GBPUSD,M3) loaded succesfully
EG      0       15:37:32.004    Indicators      custom indicator CustomIndicator (GBPUSD,M1) removed
OI      0       15:37:32.004    Indicators      custom indicator CustomIndicator (GBPUSD,M5) removed
EO      0       15:37:33.974    Indicators      custom indicator CustomIndicator (GBPUSD,M5) loaded succesfully
KG      0       15:37:37.010    Indicators      custom indicator CustomIndicator (GBPUSD,M3) removed
JJ      0       15:37:37.048    Indicators      custom indicator CustomIndicator (GBPUSD,M15) loaded succesfully
HN      0       15:37:42.004    Indicators      custom indicator CustomIndicator (GBPUSD,M5) removed
CP      0       15:37:48.800    Indicators      custom indicator CustomIndicator (GBPUSD,M30) loaded succesfully
IG      0       15:37:52.003    Indicators      custom indicator CustomIndicator (GBPUSD,M15) removed


Se si usa un indicatore pronto dal "set standard", questo non succede. Questo succede solo con gli indicatori compilati dalla build "fresca".


La domanda - qual è l'errore?

 

Ciao di nuovo!

Qualcuno sa come mettere sul mercato un Expert composto da diversi file - l'Expert stesso e un paio di indicatori, che vengono caricati attraverso #resource?

Motivazione: