Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 149

 
fxsaber:

Grazie, buona regola. Sono diventato vittima della mia stessa incompetenza. Davvero, c'è bisogno di qualche altra regola per un caso così ovvio.


Forse per entrambi i casi Attenzione intelligente da fare?

Non)))) Sarebbe noioso a tutti)))

 
Vladimir Simakov:
Qual è il problema con questo codice? Deinit ha inchiodato l'oggetto con un puntatore costante (qui conosco l'handle). Sparo normale degli arti in stile C++, altrimenti i creatori hanno sciolto tutti)))

Non ci saranno problemi all'avvio. Una volta avviato, puoi aspettare un po' e poi creare una situazione per l'EA che la sua esecuzione si interrompa.

Non è un mistero, è solo che la comprensione viene molto meglio se si cerca il problema in un codice apparentemente innocuo.
 
fxsaber:

Non ci saranno problemi all'avvio. Una volta avviato, puoi aspettare un po' e poi creare una situazione per l'EA che la sua esecuzione si interrompa.

Non è un mistero, è solo che la comprensione viene molto meglio se si cerca il problema in un codice apparentemente innocuo.
So qual è il problema. Cambio di orario e oops... Voglio dire, è lo standard qui. Attenzione? Per quale motivo? Per quanto mi riguarda, quando mi trovo di fronte a una cosa del genere, la conto solo nell'innalzamento della mia abilità. Con il tuo esempio, IMHO, qui sulla forza del 20 per cento della comunità sono in grado di incontrare, quindi perché privarli di sviluppo?
 
Vladimir Simakov:
So qual è il problema qui. Cambio di orario e oops... Voglio dire, è lo standard qui. Attenzione? Per quale motivo? Per quanto mi riguarda, quando mi trovo di fronte a una cosa del genere, la conto solo nell'innalzamento della mia abilità. Con il tuo esempio, IMHO, qui sulla forza del 20 per cento della comunità sono in grado di incontrare, quindi perché privarli di sviluppo?

Ho avuto una situazione ancora più interessante. Non c'è stato alcun cambiamento, ma OnDeinit è stato chiamato dopo la riconnessione. Ora terrò d'occhio Reason.

 

Mi trovo costantemente di fronte alla necessità di cercare nel Market Watch il simbolo richiesto. Per esempio, il simbolo del grafico corrente.

Ogni volta ci vuole molto tempo prezioso. L'ho reso automatico digitando il seguente script.

// После запуска и нажатия ENTER делает активным в Обзоре рынка символ чарта.
#include <WinAPI\winuser.mqh>

#define  GA_ROOT           0x00000002

#define  WM_KEYDOWN        0x0100
#define  WM_LBUTTONDOWN    0x0201

#define  VK_DELETE         0x2E

#define  WM_CHAR           0x0102

#define  GET_HANDLE                                                                       \
  long Handle = user32::GetAncestor(::ChartGetInteger(0, CHART_WINDOW_HANDLE), GA_ROOT); \
                                                                                         \
  for (int i = 0; i < sizeof(ControlID) / sizeof(int); i++)                              \
    Handle = user32::GetDlgItem(Handle, ControlID[i]);


bool SetSymbolNavigator( const string SymbName )
{
  const bool Res = ::SymbolInfoInteger(SymbName, SYMBOL_EXIST);

  if (Res)
  {
    static const int ControlID[] = {0xE81C, 0x804B, 0x27A0, 0x271B, 0x3E9};
    GET_HANDLE

    user32::SendMessageW(Handle, WM_LBUTTONDOWN, 0, 0);
    user32::SendMessageW(Handle, WM_KEYDOWN, VK_DELETE, 0);

    const int Size = ::StringLen(SymbName);
    
    for (int i = 0; i < Size; i++)
      user32::SendMessageW(Handle, WM_CHAR, SymbName[i], 0);
  }

  return(Res);
}

void OnStart()
{
  SetSymbolNavigator(_Symbol);
}
 
fxsaber:

Mi trovo costantemente di fronte alla necessità di cercare nel Market Watch il simbolo richiesto. Per esempio, il simbolo del grafico corrente.

Ogni volta ci vuole molto tempo prezioso. L'ho automatizzato usando il seguente script come tasto di scelta rapida.

Collega, chiarisci lo scopo. Vuoi che il simbolo appaia nel "Market Watch" o che sia evidenziato nel "Market Watch"?

 
Denis Kirichenko:

Collega, chiarisci lo scopo. Vuoi che il simbolo appaia nel Market Watch o che sia evidenziato nel Market Watch?

Da evidenziare. Un sacco di quelli personalizzati, per esempio. Ho bisogno di eseguire Tester su quello personalizzato, quale grafico posso vedere.

Poi eseguo questo script e dopo di che, faccio cadere il simbolo selezionato in Market Watch con il mouse nel tester. Il tutto richiede un paio di secondi.

 
fxsaber:

Da evidenziare. Per esempio, ce ne sono molti personalizzati. Ho bisogno di eseguire il tester su quello personalizzato, di cui posso vedere il grafico.

Poi eseguo questo script, e dopo di che, faccio cadere il personaggio evidenziato in Market Watch con il mouse nel tester. Il tutto richiede un paio di secondi.

Allora questo script non funziona per me. Non succede niente, il simbolo non è evidenziato.

Avviare, premere Invio. Vedo un errore nel registro:

2019.11.29 11:47:38.609 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found

Sì, ho chiamato lo scriptSetActiveSymbol.mq5.

 
Denis Kirichenko:

Vedo un errore nei log

Semplicemente non parte così. Non c'è nessun file.

 
fxsaber:

Semplicemente non parte così. Non c'è nessun file.

C'è. Ho dato solo una voce del registro. Quello completo è così:

2019.11.29 12:37:18.851 Scripts script SetActiveSymbol (AUDJPY,H1) loaded successfully
2019.11.29 12:37:18.878 Scripts script SetActiveSymbol (AUDJPY,H1) removed
2019.11.29 12:37:26.419 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found
Motivazione: