Errori, bug, domande - pagina 942

 

stap:

Poiché la domanda si riferisce ai test, bisogna tenere conto di quanto segue. Le sequenze di tick sono generate durante i test . Le sequenze di tick sono generate sulla base dei valori storici di offerta dei 4 punti di controllo (Open, High, Low e Close). Di conseguenza, nel tester, l'Expert Advisor elabora i tick generati sulla base dei valori di offerta.

Il secondo punto. Attualmente, i dati storici non memorizzano i valori di prezzo. Basta guardare la tabella nella sezione"MQL5 Reference- Access to timeseries and indicators". Tra le funzioni come CopyClose() o CopyLow() non potete trovare la funzione CopyLast(). Di conseguenza, anche se desiderato, è impossibile generare una coda di tick basata sui valori dei prezzi.

Prova anche a leggere gli articoli Fundamentals of Testing in MetaTrader 5 e Tick Generation Algorithm in MetaTrader 5 Strategy Tester.

 
Yedelkin:

Dato che la domanda riguarda i test...


In primo luogo, grazie per la sua pronta risposta. Le vostre informazioni si sono rivelate utili per capire.

Ho controllato ed è vero che gli ordini stop vengono attivati prima del prezzo indicato nell'ordine come prezzo di esecuzione (c'è un fatto di fare un vero affare) a causa dei prezzi ask e bid uguali al prezzo di esecuzione dell'ordine.

Così, si scopre che il terminale controlla l'esecuzione degli ordini pendenti non in base al prezzo delle transazioni eseguite, ma in base al prezzo delle quotazioni ask o bid in arrivo. Almeno, lo fa nella modalità di test EA. Per favore, correggetemi se mi sbaglio.

Inoltre, ho deciso di condurre un piccolo esperimento. Il compito è quello di trovare i valori storici di ask e bid disponibili e utilizzati per testare gli Expert Advisors. Input: Exchange - FORTS, server - uno dei broker, strumento - RIH3, periodo dal 17.12.12 al 12.03.13, Expert Advisor con il codice è stato testato nello Strategy Tester per ottenere i valori storici Ask e Bid (il test è stato eseguito in modalità OHLC su M1)

MqlTick last_tick;

if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Last = ",last_tick.last);
     }
   else Print("SymbolInfoTick() failed, error = ",GetLastError());

Il risultato è stato interessante. I valori di spread Ask e Bid si sono rivelati costanti e uguali da 10 a 340 pip in diversi intervalli di tempo. Per esempio, dalle 10:00:00 20.02.13 alle 18:49:59 25.02.13 lo spread su ogni tick era di 140 punti, e dalle 19:00:00 25.02.13 alle 18:44:59 26.02.13 lo spread era di 30 punti, inoltre dalle 19:00:00 26.02.13 alle 18:49:59 in ogni tick era di 270 punti, ecc. Naturalmente non sono un mammut del mercato azionario, ma spread di 140, 270 e più pip in un futures RTS liquido sono una rarità.

Quindi la mia unica conclusione è che, per testare gli Expert Advisors nello Strategy Tester, il terminale/broker/scambio azionario MT5 (non so chi altro) sicuramente non offre prezzi Ask e Bid storici.

Da qui sorgono due domande:

1. Come testare in modo affidabile un EA (=strategia di trading) se gli ordini pendenti saranno eseguiti in modalità di test utilizzando prezzi di domanda e offerta che non corrispondono ai loro valori reali. Se lavoro sul forex nel terminale Quik, ho la ferma convinzione che gli ordini pendenti non devono funzionare ai prezzi ask e bid (=i prezzi ai quali non sono stati fatti accordi. Per esempio, per uno strumento poco liquido posso inviare al prezzo put con uno spread enorme), ma solo se l'accordo reale viene fatto sulla borsa al prezzo indicato nell'ordine come prezzo di esecuzione.

2. Se i prezzi ask e bid nella modalità di test non sono storicamente affidabili, allora a quali prezzi verrebbe monitorata l'esecuzione degli ordini pendenti nella modalità di commercio reale - anche a prezzi ask e bid? Sono reali e affidabili, cioè provenienti dalla borsa? Se nel manuale del terminale si dice che "L'esecuzione di tutti i tipi di ordine nei simboli con la modalità "Exchange execution" si esegue per Last price (prezzo di un'ultima operazione eseguita)", allora perché la modalità di test dei simboli con la modalità exchange execution mostra che gli ordini pendenti vengono eseguiti ai prezzi bid e ask nelle loro proprietà? O è solo in modalità di test e nel trading reale sarà come descritto nel manuale, cioè gli ordini pendenti saranno controllati/eseguiti ai prezzi delle operazioni che hanno effettivamente avuto luogo?

Mi scuso per aver scritto troppo, ho pensato di condividere i miei pensieri, forse qualcuno lo troverà utile per la storia...




 
stap: Quindi, sembra che il terminale controlli l'esecuzione degli ordini pendenti non in base al prezzo delle transazioni eseguite ma in base al prezzo delle quotazioni di acquisto o vendita in arrivo. Almeno nella modalità di test EA. Per favore, correggetemi se mi sbaglio.

Sai, a causa della mancanza di una versione della piattaforma per il mercato azionario russo, non ho ancora tracciato il funzionamento del terminale nella modalità di esecuzione di scambio. Ma posso subito proporre di dividere le domande sul funzionamento del terminale nel modo di esecuzione dello scambio e il funzionamento del tester nel modo di esecuzione dello scambio.

Per verificare la correttezza dell'affermazione "tutti i tipi di ordine lavorano a Last price" quando il terminale lavora in modalità di esecuzione in borsa, prova (non mi viene in mente niente di meglio) a piazzare diversi ordini pendenti sopra e sotto le quotazioni attuali ed esegui anche il tuo codice descritto sopra. E cercate di tracciare visivamente a quali prezzi (bid, ask o last) gli ordini vengono eseguiti.

Il compito è quello di trovare i valori storici di ask e bid disponibili e utilizzati per i test degli EA.

Non è del tutto corretto parlare di "valori storici della domanda". Ho scritto ieri che una serie di tick viene generata in base a certi valori di offerta salvati. I valori di ask, d'altra parte, sono molto probabilmente modellati sulla base dei valori di bid e spread. Per esempio, come hai provato in modalità OHLC su M1, qui è semplicemente ask==bid+spread.

Non conosco la natura dei futures RTS, quindi non posso commentare lo spread "pips". Ma in EURUSD per esempio un punto è 0,00001.

Quindi ci sono due domande:

Lo rendi più semplice. Gli sviluppatori conoscono le risposte corrette per la vostra situazione. Quindi trova la sezione "Service Desk" nel tuo profilo e chiedi loro di introdurre la possibilità di elaborare gli ordini pendenti in modalità di esecuzione in borsa agli ultimi prezzi (secondo il manuale di MT5). Descrivi un po' la tua situazione e vedi la risposta. Forse tutto è già stato pensato prima di noi :)

 
Yedelkin: Sai, a causa della mancanza di una versione della piattaforma per il mercato azionario russo...


Grazie per gli acuti commenti e i consigli!

I broker BCS e Otkritie offrono già la possibilità di effettuare operazioni sulla borsa russa (finora solo il mercato dei futures e delle opzioni FORTS) tramite il terminale MT5.

 
stap: I broker BCS e Otkritie stanno già offrendo la possibilità di eseguire operazioni sulla borsa russa (finora solo il mercato dei futures e delle opzioni FORTS) tramite il terminale MT5.
La dichiarazione era: "a causa della mancanza di una versione della piattaforma per ilmercato azionario russo". In altre parole: per il mercato azionario russo.
 
Come posso trovare la mia password di investitore se la lettera di registrazione del broker è persa? Non riesco a trovare la mia password.
 
foton: Come posso trovare la mia password di investitore se la lettera di registrazione del broker è persa? Grazie.
Ha provato a contattare il suo broker?
 
Come faccio a mettere un blocco in un messaggio privato?
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Zeleniy:
Come faccio a mettere un blocco in un messaggio privato?
Da te stesso? ))
 
tol64:
Da te stesso? ))

Da te, per non accendere il computer al segnale e vedere di nuovo i leccapiedi.