Errori, bug, domande - pagina 2451
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Se stiamo parlando di FX, lì i tick non cambiano molto il prezzo (di solito). Ma in altri mercati un ordine può seriamente scivolare con un approccio ticky. Sono ancora a favore di provare tra le zecche - non vedo alcun danno, il beneficio potenziale c'è.
Dobbiamo provare...
Risultato:
Isteresi in azione... da un esempio di come funziona un operatore di copia implicita nelle strutture.
Probabilmente, per rilevare una cosa del genere, si doveva raggiungere uno stato interno/stupidità di "non può funzionare niente qui, ma lo controllerò comunque" alla ricerca di un errore nel proprio codice.
Immagino che per rilevare una cosa del genere, tu abbia dovuto raggiungere uno stato interno/stupidità di "niente può andare storto qui, ma lo controllerò comunque" alla ricerca di un bug nel tuo codice.
Il codice stava analizzando il flusso di byte per un particolare protocollo.
I dati spacchettati e non spacchettati (dati per il livello successivo di incapsulamento) non corrispondono.
Il codice stava analizzando il flusso di byte per un protocollo specifico.
I dati spacchettati e non spacchettati (dati per il livello successivo di incapsulamento) non corrispondono.
Isteresi in azione... Un esempio di come funziona un operatore di copia implicita nelle strutture.
Qual è la domanda?
In MQL, una voce condizionale
// a = b;
è uguale a
ArrayCopy( a, b );
Risultato:
ArrayPrint( a ); }
2 2 3
Qual è la domanda?
Secondo me, l'operatore di copia di assegnazione dovrebbe copiare non solo gli elementi dell'array stesso, ma anche il loro numero, lasciando valida la quantità di memoria riservata.
E ora è praticamente il seguente:
Codice sorgente:
L'operatore di copia dovrebbe copiare non solo gli elementi dell'array stesso, ma il loro numero, lasciando valida la quantità di memoria riservata.
Perché allora
in (1) l'errore e in (2) va bene? Qual è la differenza?
La differenza è che gli array sono copiati non dalle regole a = b, ma dalle regole ArrayCopy( a, b )
Non secondo le regole a = b, perché non esiste, e se esistesse, l'errore (1) non esisterebbe
Il conteggio di ogni tick richiede molte risorse, specialmente nel tester di strategia. Non sarebbe più corretto ricalcolare solo l'evento Trade, cioè quando qualcosa nella lista delle posizioni aperte cambia effettivamente? Con OnTradeTransaction(), è più facile controllare l'intervento dell'utente nell'EA. (Ci sono alcuni precedenti :)
In questo robot stavo testando la possibilità di chiudere la griglia con lo schema: Perdita + profitto > X , quindi chiudere entrambi (di solito su simboli diversi). Ma si verifica un fallimento, perché anche se sono chiusi, il tester non ne è consapevole, e procede all'iterazione successiva, "accoppiando" erroneamente quelli esistenti con quelli già chiusi. Cioè ho dovuto aggiungere un ricalcolo dopo ogni chiusura.
Ho ricalcolato con il reset del contatore e su tutti quelli aperti prima, non +1 / -1
Sono d'accordo, è stato rischioso usare inizialmente OnTradeTransaction() In realtà, probabilmente mi rifiuterò di usarlo nei casi in cui le mie richieste non sono asincrone - causano solo problemi.
Non è affatto rischioso. L'unico problema è nell'organizzare la sequenza delle azioni e degli eventi. Il consiglio di Fool è corretto: chiudi la coppia e lascia il ciclo fino al prossimo tick. Al prossimo tick, i prezzi non sono necessariamente peggiori di quelli che sono. Forse, sarà meglio chiuderlo un po' più tardi, ma non ci sarà confusione su cosa si è chiuso con cosa.
La seconda variante: disporre il ciclo non per PositionsTotal, ma per l'array creato in precedenza. E quando si chiude una coppia, questi biglietti dovrebbero essere rimossi dall'array. Questo non permetterà di richiudere le posizioni chiuse. In generale, un volo di fantasia e una logica di azioni.