Errori, bug, domande - pagina 2766

 
Alexey Viktorov:

La seconda domanda è: come si imposta il giorno, in quale formato? O non importa a che ora del giorno sarà impostato?

In MqlTradeRequest::expiration il tempo zero dovrebbe essere impostato

 
A100:

tramite ORDER_TIME_SPECIFIED e MqlTradeRequest::expiration

Avresti dovuto leggere la documentazione molto tempo fa.

Ancora una volta! Non mi interessa il tipo ORDER_TIME_SPECIFIED, mi interessa

GIORNO_SPECIFICATO_DELL'ORDINE

L'ordine sarà valido fino alle 23:59:59 della data specificata. Se quell'ora non cade in una sessione di trading, la scadenza sarà all'ora di trading più vicina.

Se faccio trading su TF W1, voglio impostare la scadenza a venerdì. Naturalmente, possiamo calcolare il tempo fino a venerdì, non solo posso leggere, ma anche contare fino a 1000. Ma la mia domanda è quella che mi interessa. Voglio anche sapere il formato per specificare il GIORNO. O non è importante specificare l'ora esatta del giorno, basta che cada nel giorno desiderato? Cosa succederà al vostro ordine se chiudete il vostro trade il venerdì alle 21:00, per esempio, e l'ordine viene aperto il lunedì? Che dovrebbe essere la prima scadenza o attivazione.

 
A100:

Il tempo zero dovrebbe essere impostato.

Grazie per aver cancellato il messaggio a cui ho impiegato così tanto tempo a rispondere.

Sei sicuro di questo? Lo farei per precauzione. Ma mi piacerebbe saperlo con certezza.

 
Alexey Viktorov:

Grazie per aver cancellato il messaggio a cui ho impiegato così tanto tempo a rispondere.

Sei sicuro di questo? Lo farei per precauzione, naturalmente. Ma voglio essere sicuro.

Devi piazzare manualmente un ordine pendente con data (senza tempo) e leggere programmaticamente i suoi valori di type_time e expiration.

Non l' ho inventato io, l'ho fatto così.

 
A100:

Impostare manualmente un ordine in sospeso affinché scada in una data specifica (senza orario) e leggere programmaticamente i suoi valori di type_time e expiration

Non l ' ho inventato io, l'ho fatto io.

Grazie per il suggerimento. Non scambio affatto le mani e non pensavo nemmeno che si potesse controllare in questo modo. L'ho fatto in un modo leggermente diverso. Ecco il codice.

  trade.OrderOpen(_Symbol, ORDER_TYPE_SELL_STOP, 0.1, 0, 1.24000, 0.0, 0.0, ORDER_TIME_SPECIFIED_DAY, D'2020.06.03 23:41:02');

e questo ordine.


Si scopre che il tempo non viene preso in considerazione.

Ma abbiamo ancora la seconda domanda. Cosa verrà eseguito prima, la scadenza o l'attivazione dell'ordine...

L'unica cosa che temo è un comportamento diverso in tester e reale o demo. E anche nella demo, puoi aspettare di essere stupefatto...
 
Alexey Viktorov:

Ma senza chiarimenti c'è una seconda domanda. Cosa eseguirà per primo o attiverà l'ordine...

Dipende dal broker e dal fattore umano - come organizzano le cose lì. Ho notato che l'ordine giornaliero di venerdì è rimasto in sospeso fino alla sessione di trading di lunedì (anche durante la sessione di quotazione era ancora in sospeso).

Una sera ho chiamato la banca nella sala di negoziazione e ho chiesto perché il mio ordine non è stato eseguito? Dissero: Non lo vediamo! Come non lo vedi? Eccolo nella mia MetaTrader - l'ho piazzato qualche ora fa e il prezzo è già stato lì un'ora fa. Lavoriamo con un altro programma. La mattina, un nuovo impiegato viene a scaricare i dati da MetaTrader e noi vediamo tutto.

Così, i vostri ordini al di sotto della soglia non interessano a nessuno (e al di sopra della soglia si scambiano in modalità prezzo-on-demand) perché non vengono emessi da nessuna parte e il rivenditore riceve al massimo una posizione aggregata

 

Il terminale è stato aggiornato alla costruzione 2470 in aperto

Ed ecco il problema, il robot ha iniziato a mostrare risultati peggiori nel tester rispetto a prima dell'aggiornamento.

Ho iniziato ad indagare e questo è quello che ho visto.

Quando ho eseguito il robot attraverso la storia in modalità normale, alla fine ha chiamato un grafico che mostra tutti i miei scambi e ho scrollato verso il basso e sono rimasto sorpreso di quello che stava succedendo lì

Come si può vedere dal grafico, in un conto di compensazione, il petrolio futures sta aprendo alcune posizioni, anche se il robot non ha alcuna media, scalatura ecc. C'è solo una posizione stop and take, dopo l'apertura della posizione l'algoritmo di entrata è disabilitato.


Ma, ho preso e fatto lo stesso test, ma solo sul test visivo, facendo il test visivo, tutto è buono lì


Per favore ditemi se si tratta di un aggiornamento bug, in generale, tutti cosparsi dopo l'aggiornamento, prendere e fermare è stato precedentemente impostato sul prezzo Ask e bid metodo separato dopo il mercato apparirà posizione, ora hanno cominciato a bastone e spostare insieme con i prezzi, ho dovuto rifare e mettere il prezzo e stop sul prezzo di apertura di una posizione e aggiungere lo spread al trattino.

Cosa fare dove scavare

 
Konstantin Seredkin:

Il terminale è stato aggiornato alla costruzione 2470 in aperto

Ed ecco il problema, il robot ha iniziato a mostrare risultati peggiori nel tester rispetto a prima dell'aggiornamento.

...

Cosa fare

Scava per controllare "L'Expert Advisor funziona nel test?

 
Artyom Trishkin:

Scava verso il controllo "L'EA giusto sta eseguendo il test?

È l'unico nel terminale, non ce ne sono altri, anche quelli standard sono stati rimossi

 
Konstantin Seredkin:

È l'unico nel terminale, non ce ne sono altri, anche quelli standard sono stati rimossi

A giudicare dal comportamento che hai descritto, si tratta di un EA diverso con un algoritmo completamente diverso.

Motivazione: