Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 192

 
traveller00:

Dalle statistiche: circa 200-300 scambi al giorno. Anche con controlli normali, ma senza controlli veramente difficili, in media 2-3 volte alla settimana ho beccato un'apertura di un doppio lotto. Calcola la probabilità e valuta se hai bisogno o sei pronto ad accettare tale probabilità. Personalmente, ho fatto i miei assegni al massimo.

Grazie. Qual è il tuo ping?
 
Vasiliy_Saharov:
Grazie. E qual è il suo ping?

Salta nell'intervallo 55-60ms. Ma non si tratta del ping. Come ho detto, è anche con controlli normali. Qui è dove l'attesa era già, solo adeguata, come aspettare 1 secondo. Ma è lì che volava fuori anche per gamme che superano il ping di ordini di grandezza.

P.S. Interessante test per gli ordini fantasma al soggetto https://www.mql5.com/ru/forum/1111/page2220#comment_7834585
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.06.20
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Vasiliy_Saharov:
Se avete un algoritmo per concludere 0,1 lotti, allora c'è una probabilità di commettere 0,1 due volte, e siccome penso che questa probabilità tende a zero, e tre volte, penso sia impossibile. Figuriamoci 20 volte. Dopotutto, stiamo parlando di roba di applicazione. Come regola generale, il server risponde probabilmente nel limite di 10minsec (è giusto? Non sono sicuro). Quanto è alta, secondo lei, la probabilità di ottenere una seconda transazione? Fai tu stesso questo controllo? Succede che il server può impiegare molto tempo per rispondere?

La risposta del server con il risultato della transazione può essere ritardata per ragioni molto diverse, e non si può contare su 10ms in ogni caso (anche se il ping è 1ms)

Naturalmente faccio questo controllo. Più precisamente, uso il pronto MT4Orders che prende in considerazione questo (e molte altre cose).

 
const int a=2;

void OnStart()
{
  int b[a];  //'[' - invalid index value
}

Questo comportamento diverso dal C++ è una caratteristica o un bug?

 
Igor Makanu:

nell'indicatore non aspetterà il risultato di CopyXXX

come opzione nel timer nell'indicatore per elaborare CopyXXX e chiamare questo indicatore da EA

Ha funzionato, grazie per l'idea!

 

Come il cambio di orario estate/inverno può rompere MT5-Tester.

Il modo più semplice per spiegare il problema è con un esempio. C'è un simbolo con queste restrizioni sulle sessioni di quotazione.

Tuttavia, nella cronologia dei prezzi ci sono dei prezzi dopo le 22:15 alle 23:15. Questi sono prezzi validi nonostante siano usciti dalla sessione di quotazione.


Il fatto è che prima del passaggio all'orario invernale, la sessione era: 03:00 - 23:15. La spiegazione è facile. Il server di trading cambia l'ora, ma il simbolo di quotazione no. Per esempio, l'indice. A causa di ciò, il tempo delle sessioni sul simbolo corrispondente cambia sul server di trading.


Questa circostanza porta a conseguenze molto spiacevoli nel MT5-Tester. Non puoi fare trading a prezzi validi tra le 22:15 e le 23:15 e ottenere un rifiuto sotto forma di [Mercato chiuso]. Cioè il commercio era davvero in corso, ma il Tester non ti permette di farlo.


In effetti, il Tester distorce il commercio dando risultati consapevolmente falsi. È abbastanza problematico notare questa peculiarità. Per risolvere la situazione devi correggere tu stesso il tempo della sessione.


Dimenticate questo problema (e alcuni altri), potete passare a un simbolo personalizzato, che calcola/scrive automaticamente i tempi di sessione appropriati.


Nella schermata superiore delle impostazioni del simbolo, c'è una linea inferiore "Usa limite di tempo". Forse quando entrerà in vigore, potrete ancora aggirare questo problema attraverso di esso.


Per ora la regola è valida - i simboli personalizzati possono aumentare significativamente la probabilità che i risultati del MT5 Tester siano corretti.


Ricordate, quando fate richieste per la storia dei prezzi (CopyRates/CopyTicks) nel terminale, non concentratevi sulle sessioni di quotazione.

 
fxsaber:

Come il cambio di orario estate/inverno può rompere MT5-Tester.

Grazie per aver condiviso osservazioni interessanti - ho anche sollevato il problema del tempo prima, ma ho notato un markup errato in futuro quando il prezzo sulle barre è inferiore a 0.

La domanda sorge spontanea, ci sono situazioni in cui è generalmente corretto proibire il commercio nel tester, o almeno, dove c'è una quotazione di uno strumento con un divieto di commercio su di esso in realtà in certe ore? Capisco che ci sono diversi indici, e non è chiaro come contare il profitto su di essi, ma in questo caso si può contare forzatamente in punti e semplicemente scrivere un messaggio nel log che lo strumento non è negoziato, ma si può controllare il TS.

 
Aleksey Vyazmikin:

ci sono quotazioni per uno strumento con un divieto di negoziare su di esso in realtà a certe ore?

Il primo minuto dopo la mezzanotte è vietato. Quando può essere importante, metto un assegno.

// true - торговые сессии совпадают с котировочными, false - иначе.
bool IsSessionsQuoteEqualTrade( const string Symb )
{
  bool Res = true;
  
  for (int i = 0; (i < 7) && Res; i++)
  {
    datetime FromQuote;
    datetime ToQuote;

    datetime FromTrade;
    datetime ToTrade;
    
    if (SymbolInfoSessionQuote(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromQuote, ToQuote) && (FromQuote != ToQuote))
      Res = SymbolInfoSessionTrade(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromTrade, ToTrade) &&
            (FromQuote == FromTrade) && (ToQuote == ToTrade);
  }
  
  return(Res);
}

Quando ci sono diverse sessioni in un giorno, non lo controllo.

 
fxsaber:

Il primo minuto dopo mezzanotte è off-limits. Quando può essere importante, lo controllo.

Non controllo se ci sono diverse sessioni in un giorno.

Questa è una situazione artificiale creata dalle società di intermediazione. Supponiamo che ci siano scambi su un'asta chiusa, ma sono quotati.

 
Aleksey Vyazmikin:

Questa è una situazione artificiale creata dal DC, ma ci sono esempi reali? Diciamo che ci sono scambi in un'asta chiusa eppure sono quotati.

Assolutamente tutte le regole sono artificiali.

Motivazione: