Il mercato si sbaglia sempre

 
Una continuazione del tema "Arbitraggio". Ci sono già molte pagine, e i critici hanno fatto un casino, quindi un nuovo argomento.

Sono riuscito ad aumentare il capitale sul saldo. Si presenta così (EURJPY H1):





Codice sorgente EA allegato al post. Anche il rapporto del tester.

Per questo, ho dovuto aggiungere un altro parametro di input al codice: beginEquity - il capitale iniziale. Cioè l'equilibrio iniziale. Nello Strategy Tester, l'Expert Advisor controlla automaticamente se il livello di beginEquity viene superato. E se viene superato, ricomincia il gioco, cioè cambia beginPrice in Bid, beginEquity nel capitale attuale e cambia il numero magico (aumenta di 1).

Ma su Demo e Real, l'Expert Advisor genererà solo un avviso chiedendo di cambiare questi parametri manualmente. La questione è che l'Expert Advisor non salva i parametri precedenti da nessuna parte all'arresto del terminale o del computer, e non sarà in grado di ripristinarli dopo il riavvio (chi ne ha veramente bisogno può creare un file database o memorizzare i parametri in variabili globali).
Pertanto, dovremo monitorare i segnali di Expert Advisors e se iniziano a visualizzare messaggi, dovremo cambiare manualmente i parametri di input di cui sopra per l'intero gruppo.
 
Eccomi qui, critico, a trovare anche te, Yuri. Ora vado a cagare anche qui. L'analisi superficiale del rapporto mostra che dal 20 agosto 2004 alle 22:00 del 4 maggio 2007 al deposito iniziale di 200.000 sono stati fatti 72.252 profitti, e alle 22:00 tutte le posizioni rimanenti sono state chiuse, il che ha portato circa 528.000 profitti in una volta sola (7 volte di più che in tutta la storia dei test!). L'effetto è probabilmente causato semplicemente dalla fine del periodo di test.
 
Mathemat:
Eccomi qui, critico, a trovare anche te, Yuri. Ora vado a cagare anche qui. L'analisi superficiale del rapporto mostra che dal 20 agosto 2004 alle 22:00 del 4 maggio 2007 con un deposito iniziale di 200.000 uno ha fatto 72.252 profitti, e alle 22:00 tutte le posizioni rimanenti sono state chiuse, il che ha portato circa 528.000 profitti in un colpo solo (7 volte di più che in tutta la storia dei test!). L'effetto è probabilmente dovuto semplicemente alla fine del periodo di prova.
Il momento del completamento del test può essere visto sul grafico di destra come una barra verde strettamente orizzontale (equity) e una forte "crescita" non lineare del saldo sotto questa barra molto orizzontale. In altre parole, il tester chiude tutte le posizioni e il saldo "cresce" finché non è uguale al capitale. Ovviamente, c'erano molte posizioni aperte con profitto positivo in quel momento. Altrimenti il patrimonio netto non può salire più in alto del saldo.

Il Tester chiude tutte le posizioni aperte alla fine del periodo di prova. Se il capitale non è uguale al saldo in quel momento, il saldo sarà uguale all'ultimo valore del capitale dopo aver chiuso tutte le posizioni. Pertanto, non chiamate questo comportamento del tester un "effetto", perché è il principio di funzionamento.
 
Ciao!
Ecco la tua festa della nonna! Scherzo.
Come ha detto Mathemat "per analisi di superficie" beh, molto bello! Non un solo valore negativo. Lo metterò alla prova online. Ma ecco quello che non capisco (forse ho capito male): non spengo il mio giocatore e non chiudo il terminale. L'allarme sarà visualizzato in tali condizioni o l'EA farà trading da solo come dovrebbe? Cosa succede se sono disconnesso da internet per un po' e poi mi riconnetto? Senza alcuna disconnessione da parte mia?
Per me la questione è molto importante a causa della mia assenza dal computer per almeno 18 ore al giorno (sonno, lavoro, ecc.) e se in quel tempo si verifica la disconnessione, o non posso inserire nuovi dati. ..... bene, non proprio buono.
Inoltre, se ho capito bene: se si accende la camma o il terminale, basta inserire i valori attuali e tutto andrà come al solito, cioè ricollegare l'EA?
Inoltre, se l'avviso viene visualizzato, ma non facciamo nulla, l'EA continua a fare trading secondo le vecchie impostazioni o aspetta che vengano inserite quelle nuove?
Se possibile, si prega di dare questi punti più dettagliatamente!!!!
Grazie per un altro motivo per scervellarmi un po'! (in senso buono).
Sinceramente !!!!
 
Non so perché, ma in modalità tester l'Expert Advisor apre le operazioni in lotti di circa dieci, è una coincidenza o no?
Non so perché, ma in modalità tester l'Expert Advisor apre le operazioni in mazzi di circa dieci pezzi. Se prendete 5 minuti dall'inizio 3000, l'EuroUSD, dal 02.01.2007 a questo giorno, apre dieci posizioni che vengono chiuse per qualche motivo non alla fine del periodo, ma da qualche parte il 12.02.2007 un solido affondo, e questo affondo è fondamentalmente quei primi dieci ordini aperti. E questo quadro si ripete non solo in piccoli momenti. Anche se aumentiamo il deposito fino a 50.000, sta perdendo. Cambiare il lasso di tempo, a 1 ora, sta perdendo ancora. C'è qualcosa di sbagliato qui!
Il primo è il più bello finora. Forse ho fatto qualcosa di sbagliato?
Sinceramente!
 
Ciao!

Ho una piccola domanda: ho scaricato l'Expert Advisor, ma genera un errore durante la compilazione:
MODE_MARGINREQUIRED' - variabile non definita C:\Program Files\PFG FX Trader\experts\ArbitrageReverse_1. 5.mq4 (244, 49)
A cosa serve la variabile MODE_MARGINREQUIRED e come impostarla?

 
Implex:
Ciao!

Ho una piccola domanda: ho scaricato l'Expert Advisor, ma genera un errore durante la compilazione:
MODE_MARGINREQUIRED' - variabile non definita C:\Program Files\PFG FX Trader\experts\ArbitrageReverse_1. 5.mq4 (244, 49)
A cosa serve la variabile MODE_MARGINREQUIRED e come impostarla?


Aggiorna il tuo terminale all'ultima build 204 scaricando la distribuzione da: http://www.metatrader4.com/files/mt4setup.exe
 

Anche se non ho finito il test del vecchio EA come previsto, ho pensato a come migliorare quella versione. E poi Yuri ne ha inventato un altro. Non è più "quinto elemento", ma "sesto". Come posso lavorare qui? Mi tremano le mani.

Ma seriamente, ho una domanda sul codice. Può essere ingenuo, quindi non mi rivolgo solo a Yury. Forse qualcun altro lo chiarirà. Sarò grato a loro.

In ArbitrageReverse_1.1.mq4, e nella nuova versione di ArbitrageReverse_1.5.mq4, si ripete la stessa struttura, che non mi è chiara: è una chiamata della funzione utente closeby(ticksell, tickbuy) dopo un arrotondamento a blocchi degli ordini attualmente aperti. Per ArbitrageReverse_1.1.mq4 è la linea [106], per 1.5 è la linea [128]. La funzione ha senso - se ci sono ordini SELL aperti e ordini BUY aperti (un simbolo ciascuno), SELL sarà chiuso da BUY. Quello che non mi piace è che non c'è nessuna condizione preliminare perché questa operazione abbia luogo. In altre parole, solo se abbiamo BUY e SELL, gli ordini dovrebbero chiudersi. Ma più avanti nel codice, già nel blocco 'dt' la chiamata della funzione closeby(ticksell, tickbuy) (per v:1.1 linea [163], per v:1.5 [189]) è inquadrata nelle condizioni. E questo mi sembra più corretto. In linea di principio, vedrò presto cosa sta succedendo io stesso, avendo tracciato tutti gli assegnamenti alle variabili, mentre lavoro sui miei bug minori. Ma ora chiederò direttamente a Yuri:
La chiamata closeby è necessaria nella linea [106] v:1.1 o [128] v:1.5 e se è così, cosa "chiuderà" in [163] per v:1.1 o in [189] per v:1.5 se risulta che tutto ciò che può essere chiuso deve essere chiuso prima? Capisco che ci possa essere una differenza nei volumi del lotto, ma ancora, qualcosa qui mi sembra "fuori".

La chiamata closeby(tickbuy, ticksell) in [200] per v:1.1 o in [224] per v:1.5 è più o meno chiara - se un ordine aperto SELL o BUY è definito negli ordini aperti, e nel blocco "dt", a seconda delle condizioni, un ordine opposto può essere aperto dalla funzione OrderSend - allora la chiusura sarà eseguita rispettivamente.

Comunque, se ho chiesto qualcosa di stupido, mi scuso. Indicatemi l'errore e lo correggerò.

Sinceramente, Fed.

 
Ho già pubblicato un EA su CodeBase che, aderendo alla tattica dell'arbitraggio, guadagna anche sugli swap positivi. Dopo la verifica del moderatore il codice sarà disponibile QUI
 
Ciao!
Ho cercato di capire - la logica di questa modifica dipende dal beginPrice , beginEquity che deve essere cambiato manualmente. penso che gli unici risultati sull'euroyenne erano gli stessi e il resto erano scarichi netti quando il test era chiuso ... e l'equity non è spesso superiore al saldo. Grazie
 
Fed:

Anche se non ho ancora completato il test del vecchio EA, come avevo intenzione di fare, stavo già pensando a come migliorare quella versione. E poi Yuri ne ha inventato un altro. Non è più "quinto elemento", ma "sesto". Come posso lavorare qui? Mi tremano le mani.

Ma seriamente, ho una domanda sul codice. Può essere ingenuo, quindi non mi rivolgo solo a Yury. Forse qualcun altro lo chiarirà. Sarò grato a loro.

In ArbitrageReverse_1.1.mq4, e nella nuova versione di ArbitrageReverse_1.5.mq4, si ripete la stessa struttura, che non mi è chiara: è una chiamata della funzione utente closeby(ticksell, tickbuy) dopo un arrotondamento a blocchi degli ordini attualmente aperti. Per ArbitrageReverse_1.1.mq4 è la linea [106], per 1.5 è la linea [128]. La funzione ha senso - se ci sono ordini SELL aperti e ordini BUY aperti (un simbolo ciascuno), SELL sarà chiuso da BUY. Quello che non mi piace è che non c'è nessuna condizione preliminare perché questa operazione abbia luogo. In altre parole, solo se abbiamo BUY e SELL, gli ordini dovrebbero chiudersi. Ma più avanti nel codice, già nel blocco 'dt' la chiamata della funzione closeby(ticksell, tickbuy) (per v:1.1 linea [163], per v:1.5 [189]) è inquadrata nelle condizioni. E questo mi sembra più corretto. In linea di principio, vedrò presto cosa succede io stesso, avendo rintracciato tutti gli assegnamenti alle variabili, mentre lavoro sui miei bug minori. Ma ora chiederò direttamente a Yuri:
La chiamata closeby è necessaria nella linea [106] v:1.1 o [128] v:1.5 e se è così, cosa "chiuderà" in [163] per v:1.1 o in [189] per v:1.5 se risulta che tutto ciò che può essere chiuso deve essere chiuso prima? Capisco che ci possa essere una differenza nei volumi del lotto, ma ancora, qualcosa qui mi sembra "fuori".

La chiamata closeby(tickbuy, ticksell) in [200] per v:1.1 o in [224] per v:1.5 è più o meno chiara - se un ordine aperto SELL o BUY è definito negli ordini aperti, e nel blocco "dt", a seconda delle condizioni, un ordine opposto può essere aperto dalla funzione OrderSend - allora la chiusura sarà eseguita rispettivamente.

Comunque, se ho chiesto qualcosa di stupido, mi scuso. Indicatemi l'errore e lo correggerò.

Sinceramente, Fed.

Se in modalità demo e reale la chiusura delle posizioni dei contatori fosse così perfetta come nei test, sicuramente sarebbe sufficiente lasciare solo una chiamata a closeby() prima dell'ultimo return(0) nell'evento start. Pertanto, in modalità test, non importa quanto sia rintracciabile, non avverrà alcuna chiusura in chiamate aggiuntive.

Ma in modalità demo e nella vita reale, spesso le posizioni chiuse non vengono chiuse sul contatore per qualche motivo (per esempio, non c'è connessione con il server per un breve periodo), e quindi abbiamo dovuto fornire ulteriori chiamate a closeby().