Consulente multivaluta. Preferibilmente l'opinione degli sviluppatori.

 
C'è un consulente multi-valuta. In poche parole, il punto è questo. Tutti i calcoli vengono eseguiti per un simbolo, mentre il trading viene eseguito per un altro simbolo. L'Expert Advisor lavora con il controllo esplicito dell'apertura di una nuova barra. In questo modo succede la prossima cosa spiacevole. L'Expert Advisor può non aprire (saltare) un trade su un conto reale, ma quando viene controllato nello Strategy Tester, questo trade è presente. Oppure, l'Expert Advisor può aprire un trade reale una barra più tardi del necessario ma, di nuovo, quando si controlla nello Strategy Tester, il trade è lì. A cosa può essere collegato?
 
LeoV:
C'è un EA multivaluta. L'idea breve è la seguente. Per un simbolo vengono eseguiti tutti i calcoli e il trading viene eseguito per un altro simbolo. L'Expert Advisor lavora con il controllo esplicito dell'apertura di una nuova barra. In questo modo succede la prossima cosa spiacevole. L'Expert Advisor può non aprire (saltare) un trade su un conto reale, ma quando viene controllato nello Strategy Tester, questo trade è presente. Oppure, l'Expert Advisor può aprire un trade reale una barra più tardi del necessario ma, di nuovo, quando si controlla nello Strategy Tester, il trade è lì. A cosa può essere collegato?

Una posizione può non aprirsi se arrivano nuove quotazioni e si apre con quelle vecchie...

 
kharko:

Una posizione può non aprirsi se arrivano nuove quotazioni e si apre con quelle vecchie...

Capisco cosa vuoi dire, ma l'EA gestisce questa situazione. Solo guardando il registro, non c'è alcun segnale. Significa che l'EA non si è attivato da solo (non dà richiesta di aprire la posizione). Oppure ha funzionato solo sulla barra successiva. E questo accade non sempre. Ma solo qualche volta. E ciò che è legato ad esso non è affatto chiaro...... Anche se nel tester - tutto va bene e tutto si apre e si chiude correttamente

 
su quale grafico l'EA analizza o commercia? Si usa iBarShift(), con quale flag, o non si usa affatto?
 
LeoV:
C'è un EA multicurrency. In breve, il significato è il seguente. Tutti i calcoli vengono eseguiti per un simbolo, mentre il trading viene eseguito per un altro simbolo. L'Expert Advisor lavora con il controllo esplicito dell'apertura di una nuova barra. In questo modo succede la prossima cosa spiacevole. L'Expert Advisor può non aprire (saltare) un trade su un conto reale, ma quando viene controllato nello Strategy Tester, questo trade è presente. Oppure, l'Expert Advisor può aprire un trade reale una barra più tardi del necessario ma, di nuovo, quando si controlla nello Strategy Tester, il trade è lì. A cosa può essere collegato?

Prova a stampare...

Stampa(.



prima del segnale, dopo il segnale, all'apertura, dopo l'apertura

stampare condizioni esplicite

come



// Print( " wait for MyOPEN == 1 " + MyOPEN );


se ( MyOPEN == 1 )

{

Print( " inserito da MyOPEN == 1 " );
.


...


}



---

Oh, e ancora di più sull'apertura di nuovi BAR!!!

Notate che ci sono delle barre saltate! E il Tester non genera barre mancanti

non cercare solo un bar, cerca un nuovo bar

---

proprio ora nel mio tempo reale

sul grafico EURUSD M5 dall'inizio della giornata si sono formate 140 barre, ma nel CHF 137 barre, cioè 3 barre perse :-)

se si cerca semplicemente la barra corrispondente all'EUR in CHF, si può perdere una barra

---


e poi ci sono le requote



Se hai avuto un SEGNALE e non puoi perderlo, usa la condizione per entrare o uscire dal mercato!

e controlla se il tuo segnale è RIEMPITO!

e finché non è fatto - eseguire il codice da eseguire - per non entrare in un ciclo, fare un contatore

dopo aver lasciato il bancone - controllare se è necessario entrare - uscire

e se ha bisogno di entrare - eseguirlo di nuovo



----

inoltre, il codice commerciale

inoltre, questo codice non può essere semplice!


(c'è un codice che è responsabile del lavoro di meccanica - apertura della chiusura senza perdita, cioè lavoro con gli ordini dopo aver ricevuto i segnali)

 
LeoV:
C'è un Expert Advisor multi-valuta. L'idea breve è la seguente. Tutti i calcoli vengono eseguiti per un simbolo, mentre il trading viene eseguito per un altro simbolo. L'Expert Advisor lavora con il controllo esplicito dell'apertura di una nuova barra. In questo modo succede la prossima cosa spiacevole. L'Expert Advisor può non aprire (saltare) un trade su un conto reale, ma quando viene controllato nello Strategy Tester, questo trade è presente. Oppure, l'Expert Advisor può aprire un trade reale una barra più tardi del necessario ma, di nuovo, quando si controlla nello Strategy Tester, il trade è lì. A cosa può essere collegato?

Questi sono chiamati requotes. Nel tester, i trade non sono requotes. Pertanto, se il ticket del trade aperto è negativo, è necessario resettare la bandiera della barra formata.




static int prevtime = 0; // Ora di inizio della barra



...


int start() {


if (Time[0] == prevtime) return(0); // la barra è la stessa, quindi exit

prevtime = Time[0]; // barra fresca, mantenere il tempo


...


int ticket = -1;


...


ticket = OrderSend(...); // prova ad aprire la posizione

if (ticket < 0) { // la posizione non è stata aperta per qualche motivo.

Dormire(30000);

// Qui resettiamo il flag della barra formata, in modo da ripetere l'operazione sul prossimo tick, non sulla prossima barra

prevtime = Time[1];

}


}

 

L'EA lavora su barre orarie. Non si tratta di requotes - l'EA monitora questo e invierà una nuova richiesta se necessario. Ho scritto del fatto che l'EA non si attiva nemmeno per cercare almeno di iniziare ad aprire un ordine. Cioè, 2-3 ordini, si apre bene (come dovrebbe essere), e il quarto (o il terzo) può anche non iniziare ad aprirlo o aprirlo un'ora dopo. Anche se, se controllate questo momento nel tester, questo ordine sarà al posto giusto.

La questione, come ho capito, è che i tick per gli strumenti non arrivano in modo uniforme. E il tick per l'apertura di una nuova barra per il simbolo su cui viene fatto il calcolo può arrivare molto più tardi che per il simbolo su cui facciamo trading. O viceversa. E qui può verificarsi una discrepanza. Ma come si può evitare questo?

 
Il tuo Expert Advisor presuppone che le candele orarie su diversi strumenti si aprano in modo sincrono. In altre parole, quando appare una nuova candela oraria su EURUSD, parte l'Expert Advisor che controlla i valori sul timeframe orario di GBPUSD. Ma se in quel momento la nuova ora sulla sterlina non è iniziata - tutto va a rotoli. In generale, dobbiamo riorganizzare un po' la logica dell'EA.
 
Rosh:
Il tuo Expert Advisor implica che le candele di un'ora su diversi simboli si aprano in modo sincrono. Cioè, quando appare una nuova candela a 1 ora su EURUSD, l'Expert Advisor inizierà a controllare i valori sul timeframe orario di GBPUSD. Ma se in quel momento la nuova ora sulla sterlina non è iniziata - tutto va a rotoli. In generale, dobbiamo riorganizzare un po' la logica dell'EA.

Grazie per la risposta, ho pensato che fosse questa la ragione. Per favore, puoi dirmi come? Perché questo è un grosso problema. Ecco uno screenshot, da quello vero. Possiamo vedere che nello Strategy Tester la posa è stata aperta alle 15.00 e nel conto reale è stata aperta solo alle 16.00. Anche se abbiamo gli stessi parametri nello Strategy Tester e sul conto reale.

 
LeoV:

L'EA lavora su barre orarie. Non si tratta di requotes - l'EA monitora questo e invierà una nuova richiesta se necessario. Ho scritto del fatto che l'EA non si attiva nemmeno per cercare almeno di iniziare ad aprire un ordine. Cioè, 2-3 ordini, si apre bene (come dovrebbe essere), e il quarto (o il terzo) può anche non iniziare ad aprirlo o aprirlo un'ora dopo. Anche se, se controllate questo momento nel tester, questo ordine sarà al posto giusto.

La questione, come ho capito, è che i tick per gli strumenti non arrivano in modo uniforme. E il tick per l'apertura di una nuova barra per il simbolo su cui viene fatto il calcolo può arrivare molto più tardi che per il simbolo su cui facciamo trading. O viceversa. E qui può verificarsi una discrepanza. Ma come evitarlo?

Considerate che un nuovo tick di QUALSIASI barra oraria (per qualsiasi strumento) è l'inizio dell'ora

---

correggere la logica in questa vena...

non appena la barra delle ore si apre su qualsiasi strumento

ricalcolare l'altro strumento, assumendo che la barra si sia già chiusa anche se non ha formato una nuova barra

perché in un paio di tic o pochi secondi apparirà lì


---

diciamo che si contano 2 o 3 strumenti

puoi prendere l'inizio dell'ora su almeno 20 simboli - preferibilmente gli strumenti in yen poiché sono molto veloci



 
// ---  практически гарантия ловли начала часа двумя БОДРЫМИ парами
   if ( TimeSaveBehchH1 == iTime("GBJJPY",PERIOD_H1,0) )
   {
       TimeSaveBehchH1 = iTime("GBJJPY",PERIOD_H1,0); // новый бар  
   }
   if ( TimeSaveBehchH1 == iTime("USDJPY",PERIOD_H1,0) )
   {
       TimeSaveBehchH1 = iTime("USDJPY",PERIOD_H1,0); // новый бар  
   }
//---
   if ( TimeSaveBehchH1 == iTime("EURUSD",PERIOD_H1,0) ) // в довершении ловим на своей рабоче паре
   {
       TimeSaveBehchH1 = iTime("EURUSD",PERIOD_H1,0); // новый бар  
   }
   if ( TimeSaveBehchH1 == iTime("USDCHF",PERIOD_H1,0) ) // ловим на второй паре 
   {
       TimeSaveBehchH1 = iTime("USDCHF",PERIOD_H1,0); // новый бар 
   }


per essere onesti e questo non è molto bello ... la zecca non è venuta a queste coppie e tu volerai di nuovo

se si mostra un pezzo di codice che genera un input - si può essere in grado di trovare l'errore nella logica più velocemente

 
LeoV:
Rosh:
Il tuo Expert Advisor presuppone che le candele dell'ora su diversi simboli si aprano in modo sincrono. Cioè, quando appare una nuova candela a 1 ora su EURUSD, l'Expert Advisor inizierà a controllare i valori sul timeframe orario di GBPUSD. Ma se in quel momento la nuova ora sulla sterlina non è iniziata - tutto va a rotoli. In generale, dobbiamo riorganizzare un po' la logica dell'EA.

Grazie per la risposta, ho pensato che fosse questa la ragione. Per favore, puoi dirmi come? Perché questo è un grosso problema. Ecco uno screenshot, da quello vero. Possiamo vedere che nello Strategy Tester la posa è stata aperta alle 15.00 e nel conto reale è stata aperta solo alle 16.00. Anche se nel tester e sul reale i parametri sono gli stessi.

...

Per il simbolo scambiato il tick della nuova barra è arrivato prima, per questo le vecchie barre del simbolo analizzato hanno partecipato all'analisi, l'inizio ha lavorato fuori e sta aspettando la prossima ora. È divertente indovinare senza vedere un pezzo di codice.