Nuovo MetaTrader 4 Client Terminal 387 e MetaTrader 4 Data Center build 387 - pagina 13

 
- Ho aggiornato oggi (1.03.2011) a una nuova versione e ho iniziato ad avere problemi con l'indicatore IND_Correlation.mq4. Quando si accende il terminale, o in caso di fallimento a breve termine della comunicazione, l'indicatore scompare. Devo ricaricare il modello o passare da un lasso di tempo all'altro. Non è conveniente, ragazzi).
 
brici:
- Ho aggiornato oggi (1.03.2011) a una nuova versione e ho iniziato ad avere problemi con l'indicatore IND_Correlation.mq4. Quando si accende il terminale, o in caso di fallimento a breve termine della comunicazione, l'indicatore scompare. Devo ricaricare il modello o passare da un lasso di tempo all'altro. Non è conveniente, ragazzi).
Oggi 2 DC ha suggerito di aggiornare alla versione 388, forse gli sviluppatori hanno corretto qualcos'altro. Ho aggiornato, non ho notato nulla di male finora. L'aggiornamento era del 229, ero sorpreso all'inizio, poi mi sono ricordato che c'era un thread sul 387
 
Renat:

Interromperemo il supporto per la build 225 dopo un po' di tempo a causa della presenza di alcuni bug critici, dando a tutti un mese di preavviso.

In particolare tengo uno dei 225 terminali di build nel caso in cui abbiamo bisogno di eseguire il debug dell'interfaccia con la DLL. Avete proibito il debugging nelle versioni successive. Per quanto ho capito, questo è per evitare che i decompilatori appaiano di nuovo. Quale soluzione suggeriresti per coloro che hanno bisogno di fare il debug dell'interfaccia tra gli script MQL e la DLL?
 
api:
Ho volutamente tenuto uno dei 225 terminali di build nel caso in cui avessi bisogno di fare il debug di un'interfaccia con una DLL. Avete vietato il debugging nelle versioni successive. Per quanto ho capito, questo è per evitare che i decompilatori appaiano di nuovo. Quale soluzione suggeriresti per coloro che hanno bisogno di fare il debug dell'interfaccia tra gli script MQL e la DLL?

In effetti, rimangono solo stampanti o meccanismi di registrazione simili.

Purtroppo, la scelta tra protezione e convenienza doveva essere fatta a favore della protezione.

 
Zhunko:

Ecco i fatti:

1. Si carica l'indicatore allegato sul grafico. Appare una linea spezzata.

2. aggiornare la finestra dal menu contestuale - "Refresh". La linea scompare e non appare.

Tutto accade a causa dell'ottimizzazione nel codice e dell'inizializzazione non necessaria dei buffer degli indicatori quando si aggiorna il grafico.


Grazie. Cercheremo di capirlo.
 

Zhunko

L'indicatore che hai presentato non tiene affatto conto di IndicatorCounted, che è lo strumento principale per ottimizzare i calcoli.

I dati possono cambiare non solo per Refresh, ma anche dopo un errore di connessione. Quindi? Il vostro indicatore non traccia questo in alcun modo. Questo non è corretto.

A proposito, il tuo indicatore non tiene conto del cambiamento del simbolo e/o del periodo (e la reinizializzazione dei buffer lo è sempre stata!). Il tuo esempio, al contrario, mostra la necessità di inizializzare i buffer degli indicatori per evitare illusioni inutili.

 
stringo:

Zhunko

L'indicatore che hai presentato non tiene affatto conto di IndicatorCounted, che è lo strumento principale per ottimizzare i calcoli.

I dati possono cambiare non solo per Refresh, ma anche dopo un errore di connessione. Quindi? Il vostro indicatore non traccia questo in alcun modo. Questo non è corretto.

A proposito, il tuo indicatore non tiene conto del cambiamento del simbolo e/o del periodo , neanche (e la reinizializzazione dei buffer lo è sempre stata!). Il tuo esempio, al contrario, mostra la necessità di inizializzare i buffer degli indicatori per evitare illusioni inutili.

Quali illusioni? Non ne ho bisogno. È solo una spazzata verticale e basta. Non mi interessa quali dati ci sono nel buffer. Finché imposta la dimensione verticale.

Perché questa caratteristica è apparsa solo nella 387 e non era presente nelle build precedenti? Sicuramente, tutte le lamentele sugli indicatori al giorno d'oggi sono causate da questa caratteristica inutile.

Meglio fare una funzione separata per l'inizializzazione forzata dei buffer degli indicatori.

 

Ho una domanda per gli sviluppatori.

Se si usano indicatori personalizzati, nella bild 388 e in quelle future, capisco che IndicatorCounted() è una garanzia contro gli errori di conto.

Ma se l'algoritmo di calcolo viene utilizzato direttamente all'interno di un Expert Advisor, cosa dovrei fare in questo caso? Sembra che IndicatorCounted() non funzioni in Experts, almeno, ho controllato e dà -1.

Ho visto che ti è stato chiesto di fare una funzione, il che indica che il download o l'aggiornamento dei dati è avvenuto, ma tu taci su questo punto. È fondamentalmente difficile da fare, o semplicemente non hai il tempo di fare tutto in una volta, o semplicemente non hai il tempo, o non vuoi preoccupartene?

Ho già scritto che ho perso un sacco di soldi accendendo il mio Expert Advisor con dati scaricati in modo incompleto.

Allora cosa può consigliare per utilizzare gli algoritmi di calcolo direttamente nell'Expert Advisor per non incorrere in dati incompleti?

Uso spesso il costrutto in Expert Advisors:

void my_function()
{
   static int bars;
   int limit=Bars-bars-1;
   bars=Bars-1;
   if (limit<0) return;
   if (limit>1)
   {
      limit=Bars-period-1;
      // Еще данные
   }
   for (int i=limit; i>=0; i--)
   {
      // Расчет переменных
   }
}

Forse si può aggiungere qualcos'altro per aumentare l'affidabilità?

Dopo tutto, lo scopo del trading, come lei stesso ha capito, non è solo quello di calcolare e disegnare indicatori personalizzati e di altro tipo, ma principalmente quello di fare soldi. Il mercato è già estremamente mobile e complesso, e probabilmente non potete immaginare quale tensione nervosa si verifica a volte quando si lavora in conti reali. E quando devi stare attento ai difetti di progettazione dei terminali, è un grande sforzo per la tua salute, la tua mente e tutto il resto. Dopo tutto, programmare il terminale è un obiettivo e un compito molto complesso, ma molto specifico. E l'elaborazione di un segnale continuamente guizzante, che cambia continuamente la frequenza, l'ampiezza, gli spread, le notizie, la manipolazione dei prezzi da parte delle banche e dei grandi commercianti, l'avidità dei broker, in generale, come su un campo minato. Con questo problema anche i dottori di ricerca diventano come bambini piccoli e lasciano Forex in preda al terrore, se lo provano. La perdita di grandi quantità di denaro o di depositi in generale sembra la morte di una persona. Poi si gira di nuovo e ricomincia tutto da capo. Ti rispetto come un buon professionista nel tuo business, e quello che hai fatto funziona già bene in generale, ma spero che alla fine farai un prodotto migliore e più affidabile.

 
ANG3110:

Ho una domanda per gli sviluppatori.

Anche se non sono uno sviluppatore, ma lasciatemi dire qualcosa.

Se si usano indicatori personalizzati, nella bild 388 e in quelle future, capisco che IndicatorCounted() è una garanzia contro gli errori di conto.

Questo era in tutte le build, hanno solo corretto alcuni bug.

Ma se l'algoritmo di calcolo viene utilizzato direttamente all'interno di un Expert Advisor, cosa dovrei fare in questo caso? Sembra che IndicatorCounted() non funzioni in Experts, almeno, ho controllato e dà -1.

Non funziona e non funzionerà

Ho visto che ti è stato chiesto di fare una funzione, il che indica che il download o l'aggiornamento dei dati è avvenuto, ma tu taci su questo punto. È fondamentalmente difficile da fare, o semplicemente non hai il tempo di fare tutto in una volta, o semplicemente non hai il tempo, o non vuoi preoccupartene?

MT4 non sarà modificato - al massimo si correggono i bug

Ho già scritto che ho perso un sacco di soldi accendendo il mio Expert Advisor con dati scaricati in modo incompleto.

Queste sono solo parole... Abbiamo bisogno di un'analisi del perché e del come... Può essere colpa di un algoritmo sbagliato/indocumentato dell'Expert Advisor

Allora che consigli hai sull'utilizzo degli algoritmi di calcolo direttamente nell'Expert Advisor per non incorrere in dati sotto riempiti?

Dobbiamo decidere la terminologia. Cosa sono i "dati sottostimati"? Potete creare nel vostro EA la vostra funzione IndicatorCounted(), come questa: https://www.mql5.com/ru/articles/247

Forse, si può aggiungere qualcos'altro per aumentare l'affidabilità?

Inoltre, è possibile tracciare il salto delle barre e su questa base, considerare che la storia è scaricata in modo incompleto, ecc.

 

AlexSTAL:

Queste sono solo parole... Abbiamo bisogno di un'analisi del perché e del come... Può essere colpa di un algoritmo sbagliato/incompleto dell'Expert Advisor

Allora qual è il tuo consiglio quando usi gli algoritmi per calcolare direttamente nell'EA in modo da non finire con dati sottopagati.

Dobbiamo definire la terminologia. Che cosa sono i "dati non riempiti"? Potete creare nel vostro EA la vostra funzione IndicatorCounted(), come questa: https://www.mql5.com/ru/articles/247

Forse, si può aggiungere qualcos'altro per aumentare l'affidabilità?

Inoltre, si può tracciare il salto delle barre e su questa base, considerare che la storia è sotto-quantificata, ecc.

OK, darò un'occhiata all'articolo a cui si riferisce.

Riguardo ai dati sottocapitolati... Ora, a causa del passare del tempo, non sarò in grado di citare i registri. Ma aveva un aspetto simile a questo.

Su American broker ATC, EA è stato lasciato acceso e il terminale è stato chiuso. Il giorno dopo il terminale è stato aperto e dopo l'apertura e il login automatico c'è stata una pausa senza quotazioni. L'Expert Advisor ha inviato un'ulteriore richiesta di aprire una posizione e la cronologia ha iniziato ad essere scambiata e la posizione è stata aperta secondo i calcoli del giorno precedente nella zona in cui avrebbe dovuto essere chiusa ma è stata appena aperta e immediatamente persa contro il mercato che si stava muovendo nella direzione opposta. La posizione finì per essere chiusa con una profonda perdita, non ricordo quanto fu persa ma molto.

Un altro caso. Ho lasciato un Expert Advisor con un calcolo del canale nel suo algoritmo, qualcosa di simile a Bollinger, ma che richiedeva molte barre perché aveva un algoritmo di adattamento. Non ho visto il momento in cui è iniziato lo scambio, ma l'ho visto circa 20 minuti dopo. Si è scoperto che le deviazioni dalla media adattata non sono state considerate e il canale si è rotto nella linea, come se si trovasse sulla media. Il mio Expert Advisor apriva e chiudeva una posizione dopo l'altra e ha perso circa 4.500 dollari in 20 minuti per 0,2-0,3 lotti. 4.500$ in un mercato totalmente vincente. Questo potrebbe accadere se ci fossero pochi dati o se mancasse qualcosa per il disegno che ho citato sopra.

Ora spengo sempre gli EA dopo il trading. Ora li disabilito sempre quando riapro il terminale e aspetto che i dati vengano pompati e solo allora li accendo quando ne sono sicuro.