SOLO LETTURA

Il forum è ora un archivio di sola lettura.

Per segnalazioni di bug e domande sulla piattaforma → [email protected]

La nostra comunità vive su Discord e YouTube: unisciti a noi!

UNISCITI A NOI SU Discordia YouTube

"Errore "L'ordine non può essere trovato

3 risposte

odomike

Abbonato, bbp_partecipante, comunità, 32 risposte.

Visita il profilo

12 anni fa #111948

Ciao,

 

Ho deciso di creare un EA basato sul sistema di trading manuale SonicR (http://www.forexfactory.com/showthread.php?t=114792). Invece di utilizzare gli stessi indicatori personalizzati utilizzati nella strategia, ho deciso di utilizzare gli indicatori standard della MT4 (EMA 34 High e Low, CCI Period 63, SMA 10 Close) per replicare la strategia. Questo per essere sicuro di non incontrare problemi con SQ EA Wizard. Non ho avuto alcun problema con l'impostazione della strategia e delle regole di trading in SQ, ma dopo aver salvato il file .mql4 e aver effettuato il test in metatrader 4, ottengo sempre questo errore "ORDER CANNOT BE FOUND" nel giornale del tester e l'EA non effettua alcuna operazione. È così confuso perché ho esaminato la strategia e le regole di trading più e più volte per assicurarmi che non ci siano errori di sorta e non riesco a vederne. Allora perché ricevo questi errori?

 

Qualcuno può aiutarmi a risolvere questo problema? Apprezzo molto tutti i vostri gesti gentili.

 

Grazie in anticipo.

~Michael.

 

N.B.: Poiché non ho utilizzato alcun indicatore personalizzato per creare la strategia, è possibile replicarla molto facilmente sul proprio computer.

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

12 anni fa #123679

Odomike,

Il problema è che 3 regole si incrociano sopra/sotto allo stesso tempo in questo EA. Una buona regola empirica è quella di far incrociare una sola regola sopra/sotto mentre le altre regole utilizzano invece > o <.

 

Ho messo i vostri indicatori su un grafico per mostrare il perché.  

 

 

Le piccole linee verticali blu mostrano quando la candela incrocia la MA1, poi la MA2 e infine quando il CCI incrocia il livello 2. Ci sono 6 candele tra l'incrocio della prima MA e l'incrocio del CCI. Poiché non tutte si incrociano esattamente nella stessa barra, è per questo che si riceve il messaggio di errore.

 

Pertanto, è necessario utilizzare il Cross Below/Above per l'ultimo elemento che si incrocia nella sequenza dei tre indicatori. Ad esempio, se il CCI è sempre l'ultimo elemento da incrociare, si possono utilizzare queste regole:

 

Lungo

Il CCI supera il livello 1

Offerta > MA1

Offerta > MA2

 

Se un indicatore non è sempre l'ultimo a incrociarsi, cioè può incrociarsi in qualsiasi ordine, è possibile scrivere le regole in base a questo criterio. Quindi le regole potrebbero essere:

 

Lungo

(((( Il CCI supera il livello 1

       Offerta > MA1

       Offerta > MA2)

OR (CCI > Livello 1

       L'offerta incrocia la MA1

       Offerta > MA2)

OR (CCI > Livello 1

       Offerta > MA1

       L'offerta incrocia sopra la MA2)))

 

Spero che questo sia d'aiuto.

 

-Stearno

0

odomike

Abbonato, bbp_partecipante, comunità, 32 risposte.

Visita il profilo

12 anni fa #123711

Grazie mille stearno. Ho deciso di non continuare a costruire il mio EA basato sul sistema SonicR. Ho notato alcuni errori che mi hanno spinto a prendere questa decisione.
Ho deciso di costruire un altro EA basato sul modello di RSIOMA_V2 indicatore. Ho aggiunto l'indicatore personalizzato a EA Wizard e ha riconosciuto tutte le proprietà dell'indicatore. Nei parametri della mia strategia, ho aggiunto le proprietà dell'indicatore come alcuni dei parametri configurabili dall'utente per l'EA. Ora, nelle regole della strategia, ho fatto questo ... 
 
SpreadInPips <= Diffusione massima consentita (Il valore predefinito è 2. Sto cercando di utilizzare questo valore per evitare le oscillazioni dei comunicati stampa mentre l'EA opera).
RSIOMA incrocia al di sotto di Sell_Trigger (Il valore predefinito per RSIOMA è 14 e Sell_Trigger è 70)
 
L'idea è che una volta che l'oscillazione RSIOMA scende al di sotto di 70, si dovrebbe attivare un'operazione di vendita. Questo per quanto riguarda la regola dell'entrata corta.
 
Poi per Regola di ingresso lungo:
 
SpreadInPips <= MaxAllowedSpread
RSIOMA incrocia sopra il Buy_Trigger (Il valore predefinito per Buy_Trigger è 30)
 
Stessa idea del sell trigger ... RSIOMA supera 30 e l'EA attiva un'operazione di acquisto.
E quando la tendenza è già in atto e c'è una leggera inversione, e poi la tendenza continua, allora:
 
SpreadInPips <= MaxAllowedSpread
RSIOMA incrocia sotto il Buy_Trigger
 
O
 
SpreadInPips <= MaxAllowedSpread
RSIOMA incrocia sopraSell_Trigger
 
Il mio problema è che non so quando usare e quando usare le croci sotto o le croci sopra o come configurare tutto per funzionare bene. E continuo a ricevere questo fastidioso errore nel giornale di Strategy tester: "BROKER STOP DIFFERENCE: 0.00". Non so cosa significhi. Questo errore si presenta una volta che l'EA si avvia e poi, l'EA non piazza un trade. E ricevo sempre questo errore:
 
"TestGenerator: errore di dati non corrispondenti (il valore alto 171,18600 del 2014.03.12 09:05 non viene raggiunto dal timeframe minimo, il prezzo alto 171,17400 non corrisponde)"
 
Per favore, aiutatemi.
 
In secondo luogo, come posso controllare il tempo in cui l'EA opera e quando non deve operare? Per esempio:
 
1. Voglio che il mio EA inizi a operare dall'1:00 alle 6:00 GMT, poi si fermi e non effettui altre operazioni.
2. Poi ricomincia dalle 8:00 GMT alle 20:00
 
Come posso fare in modo che ciò avvenga? So che EA Wizard è in grado di gestire tali operazioni, ma con facilità. Credo di non aver fatto qualcosa di giusto e ricevo sempre un errore ogni volta che cerco di farlo funzionare.
 
Grazie ancora una volta per il vostro aiuto e supporto. Lo apprezzo molto.
——————————————————————————————
 
N.B.: L'immagine allegata mostra i possibili punti di ingresso per gli ordini di acquisto e di vendita nel grafico mostrato. E le ultime due parti delle regole della strategia non sono presenti nel file sorgente che ho allegato. Per favore, aiutatemi.

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

12 anni fa #124327

Michael,

Buone domande.

 

Per limitare il tempo, ho allegato le schermate di ciò che faccio personalmente. Utilizzo l'ora rispetto a una variabile. Poi imposto le variabili nei parametri per le ore che voglio negoziare.  

 

Personalmente utilizzo due serie di ore in modo da avere la possibilità di operare in due sessioni in un giorno (ad esempio, London Open e NY Open). Utilizzo parametri per impostare le variabili in modo da poterle ottimizzare. Potete prendere questa stessa idea e fare molte variazioni che si adattano meglio a ciò che desiderate.

 

La tua strategia mi sembra corretta. Hai provato a fare un backtest? A proposito, ho scoperto che è sempre meglio fare prima un backtest per vedere se gli ordini vengono eseguiti e così via. Ma poi faccio un backtest visivo per osservare gli indicatori che l'EA utilizzerà sul grafico, in modo da poter vedere visivamente ogni volta che l'EA deve aprire o chiudere un ordine e assicurarmi che stia facendo ciò che voglio. Posso quindi dedurre perché non lo fa e imparare a dire meglio al computer, attraverso queste condizioni, come fare ciò che voglio. 

 

Per quanto riguarda le altre domande su quando usare >< e quando usare la croce sopra/sotto.  

 

Un modo semplice da ricordare che uso per tenerli differenziati è: incroci sopra/sotto, l'inizio della barra deve essere su un lato e la fine della barra sull'altro lato.

 

Con ><, la scelta di questa opzione è molto più libera, in quanto significa che la barra deve essere al di sopra o al di sotto dell'elemento di confronto. Non importa se è andata al di sopra ora, molte barre indietro, è sempre stata al di sopra, ecc. L'unica cosa che conta è che in questo momento, quando l'EA esegue questa regola, deve essere maggiore o minore di (sopra o sotto).  

 

Ho incluso un piccolo grafico per illustrare con immagini. La linea rossa è la media mobile.  

 

Se dico che Close[1] < media mobile, la barra 'A' è quella che ottengo.  

 

Se dico che Close[1] > Moving Average, la barra 'C' è quella che otterrei.

 

Se dico che Close[1] incrocia sopra la media mobile, la barra 'B' è quella che ottengo.

 

In sostanza, dobbiamo chiederci: "In quel momento (nell'esempio precedente, utilizziamo la chiusura dell'ultima barra per quel momento, Close[1]), voglio che il mio indicatore sia al di sopra della chiusura, al di sotto della chiusura, o voglio che il minimo dell'ultima barra sia su un lato dell'indicatore e il massimo sull'altro lato".  

 

Forse un esempio può essere utile. Ecco un esempio di ciò che ho imparato utilizzando questi confronti:

 

Quando si utilizzano > 30 pips. Quindi, quando l'ordine ha raggiunto un profitto di 29 pips e il successivo è passato a 30 pips, la regola ha attivato l'azione per chiudere il 50% dell'ordine. Nella barra successiva, l'ordine è passato a 31 pips di profitto. Indovinate un po'. Il profitto dell'ordine è ancora superiore a 30 pip. Quindi l'azione è stata attivata di nuovo e ha chiuso 50% dell'ordine. Questo è continuato fino a quando c'era solo un mini lotto e non è stato più possibile chiudere 50%. Ma devo dire che il backtesting è stato divertente perché quando guardavo l'EA visivamente, chiudeva gli ordini come una mitragliatrice.

 

Così ho capito che la causa di questo problema era perché ho usato Profit > 30 pip. E quello che non ricordavo è che 31, 32, 33, 34 pips sono tutti maggiori di 30. Quindi ho usato la chiusura 50% quando Profit incrocia sopra 30 pips. Così ha funzionato, è passato da 29 a 30 pips in una barra, e poi ha chiuso 50% del mio ordine. Ora, quando è salito a 31, 32, 33, 34 pips di profitto, non chiude più gli ordini.  

 

Ma il problema con questa regola era quando il profitto scendeva a 25, poi risaliva a 29 e 30 e chiudeva 50% dell'ordine perché la regola era di nuovo soddisfatta. (Questo non è correlato, ma il modo in cui ho risolto il problema è stato che quando la regola chiudeva 50% dell'ordine, impostava anche il valore di una variabile a 2. Ho quindi aggiunto un'altra condizione alla regola che diceva di non fare una chiusura parziale quando quella variabile era = 2. Questo ha risolto il mio problema e ha fatto in modo che solo la regola fosse soddisfatta. Questo ha risolto il mio problema e ha fatto in modo che si chiudesse solo una volta).

 

Spero che quanto sopra sia di aiuto.

 

-Stearno

 

 

0

Stai visualizzando 3 risposte - da 1 a 3 (di 3 totali)