Auguri per MT5 - pagina 31

 

Si prega di considerare


Proposta di aggiungere a MQL5 la funzionalità che permette di cambiare da un indicatore o esperto o da uno script

Max bar nella finestra...

Può essere utile rendere un limite controllabile del programma



 
Agli sviluppatori. Vi prego di prestare attenzione alla mia richiesta18097(capisco che questa cosa è controversa, ma comunque)...


PS

Inoltre, se puoi - per favore fai in modo che i risultati dell 'ottimizzazione e il grafico dell'ottimizzazione vengano cancellati, nel caso in cui il test sia in corso in modalità normale.

O è un trucco per poterlo guardare in qualsiasi momento?

 
Interesting:


PS

Inoltre, se puoi - per favore fai in modo che i risultati dell'ottimizzazione e il grafico dell'ottimizzazione vengano cancellati, nel caso in cui il test sia in corso in modalità normale.

O è solo un trucco per poterlo vedere in qualsiasi momento?

Mi opporrei a un tale suggerimento. Dopo l'ottimizzazione, per analizzare i risultati ho bisogno di controllare più passaggi separatamente in modalità normale (ottenuto cliccando sul passaggio corrispondente). Se i risultati dell'ottimizzazione scompaiono dopo il primo test in modalità normale, si perde una preziosa opportunità di lavorare con i risultati.

 
Yedelkin:

Mi oppongo a questo suggerimento. Dopo l'ottimizzazione, ho bisogno di testare molti passaggi individualmente in modalità normale per analizzare i risultati (ottenuti cliccando sul passaggio corrispondente). Se i risultati dell'ottimizzazione scompaiono dopo il primo test in modalità normale, si perde una preziosa opportunità di lavorare con i risultati.

Beh, io non insisto, che è quello che dice la linea - > O è un tale trucco per essere in grado di vedere in qualsiasi momento?

 

1)Hai bisogno di aggiungere eventi normali, non quello che hai implementato.

La prima cosa che mi è venuta in mente

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected...

cambiamenti di stato delle richieste, ecc.

2) fare una documentazione simile a quella umana, come qui: http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "Portare API alle masse" -)

ps Sembra che gli sviluppatori o facciano software per neofiti o siano loro stessi

System.Data Namespace ()
System.Data Namespace ()
  • msdn.microsoft.com
The namespace provides access to classes that represent the ADO.NET architecture. ADO.NET lets you build components that efficiently manage data from multiple data sources. In a disconnected scenario such as the Internet, ADO.NET provides the tools to request, update, and reconcile data in multiple tier systems. The ADO.NET architecture is...
 
anubis:

1)Hai bisogno di aggiungere eventi normali, non quello che hai implementato.

La prima cosa che mi è venuta in mente

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected...

cambiamenti di stato delle richieste, ecc.

2) fare una documentazione simile a quella umana, come qui: http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "Portare API alle masse" -)

ps ps Sembra che gli sviluppatori o facciano software per i neofiti o siano essi stessi dei neofiti.

Esiste una cosa come gli eventi USER. Potete implementarne un numero qualsiasi da soli.

Ho catturato gli eventi OnConnected e OnDisconnected tramite un timer per molto tempo. Se volete, potete anche creare OnBar e OnBarClose o qualsiasi altro evento.

Poi puoi facilmente catturarli in OnChartEvent con l'aiuto di tale blocco (c'è tutto questo nella guida, perché reinventare la ruota?).

  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  }

PS

E a livello di classe si può gestire qualsiasi (beh, quasi qualsiasi) evento...

 
Interesting:

Esiste una cosa come gli eventi UTENTE. Potete implementarne un certo numero voi stessi.

Ho catturato OnConnected e OnDisconnected con un timer per molto tempo. Se volete, potete anche creare OnBar e OnBarClose o qualsiasi altro evento.

Dopo di che basta catturarli in OnChartEvent con l'aiuto di questo blocco (è tutto nella guida, perché reinventare la ruota?).

PS

E a livello di classe si può gestire qualsiasi (beh, quasi qualsiasi) evento...

Interessante vedere come lo implementate (OnConnected?)

 

dentraf:

Interessante vedere come si implementa questo (OnConnected?)

Sì, per favore :)

Ecco un esempio di gestione di questi eventi in Expert Advisor con la classe CMqlManagerConnect (modulo allegato al post).

1. Copiare il modulo nella cartella \MQL5\Include\ (preferibilmente in una sottodirectory)

Ho tutto qui - MQL5\Include\Units\Objects.

2. Nell'Expert Advisor aggiungete un link a questo file.

////////////////////////////////////////////////////////////////////////////////
//              Object classes, used in working the trade system              //
////////////////////////////////////////////////////////////////////////////////
#include <\Units\Objects\UManagerConnect.mqh> //Class - CMqlManagerConnect

3. Crea una variabile di tipo CMqlManagerConnect.

////////////////////////////////////////////////////////////////////////////////
//             Global variables, used in working the trade system             //
////////////////////////////////////////////////////////////////////////////////
//****************************************************************************//
//               Objects created on the grounds of the classes                //
//****************************************************************************//
CMqlManagerConnect ManagerConnect; //Менеджер контролирующий состояние коннекта

4. Nel timer va così

void OnTimer()
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//
//****************************************************************************//
//                  Контроль состояния соединения с сервером                  // 
//****************************************************************************//
ManagerConnect.OnEventTimer();
//----------------------------------------------------------------------------//
}

5 Dovresti scrivere il seguente testo in OnChartEvent

void OnChartEvent(const int id,         // идентификатор события  
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam  // параметр события типа string
                  )
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//

//****************************************************************************//
//                          Processing user events                            //
//****************************************************************************//
  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  //Выводим текстовое сообщение о событии в комментарий
  Comment("User Event ",sparam);

    if(id==CHARTEVENT_CUSTOM+1)
    //Соединеие с сервером востановлено
    {
    //тут обрабатываем все что нам нужно
    }

    if(id==CHARTEVENT_CUSTOM+2)
    //Соединеие с сервером потеряно
    {
    //тут обрабатываем все что нам нужно
    }

  }
//----------------------------------------------------------------------------//  
}

PS

Potete, ovviamente, non passare gli eventi a OnChartEvent, ma elaborarli direttamente nella classe (sia nella base che nei discendenti). Ma anche con questo approccio, ti consiglio di lasciare il riferimento a OnChartEvent, perché potresti aver bisogno di dire agli altri grafici degli eventi... :)

File:
 
Interesting:

Sì, per favore :)

Ecco un esempio di come questi eventi sono gestiti nell'Expert Advisor usando la classe CMqlManagerConnect (il modulo è allegato al post).

1. Copiare il modulo nella cartella \MQL5\Include\ (preferibilmente in una sottodirectory)

Ho tutto qui - MQL5\Include\Units\Objects.

2. Nell'Expert Advisor aggiungete un link a questo file.

3. Crea una variabile di tipo CMqlManagerConnect.

4. Nel timer va così

5 Dovresti scrivere il seguente testo in OnChartEvent

PS

Potete, naturalmente, non passare gli eventi a OnChartEvent, ma elaborarli direttamente nella classe (o nella classe base o nei discendenti). Ma anche con questo approccio, ti consiglio di lasciare il riferimento a OnChartEvent, perché potresti aver bisogno di dire agli altri grafici degli eventi... :)

Hai scritto tu stesso la classe CMqlManagerConnect? Hai una soluzione per il recupero del server quando perdi la connessione al server?
 
dentraf:
Hai scritto tu stesso la classe CMqlManagerConnect? Hai una soluzione per l'enumerazione dei server quando perdi la connessione al server?
Naturalmente l'ho scritto io stesso (per esempio), ma ho un modo diverso di risolvere questo problema. Non c'è una soluzione di forza bruta (almeno per ora), ma dovremo affrontare anche questo problema (la gente ha già contattato gli sviluppatori a questo proposito)...