Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1413

 

Salve. Per favore aiutatemi con un problema in mt5.

La cronologia delle quotazioni delle coppie di valute oltre il 2016 non si carica. Broker - Gerchik.

Ho provato:

1 - scaricare la cronologia attraverso il tester della strategia.

2 - attraverso il terminale degli strumenti. stupidamente mostra la storia solo fino al 2016.

3 - copiare la cronologia dalla normale coppia caricata del server mt5. non serve a nulla, cancella questi file dopo il riavvio del programma e di nuovo la cronologia solo fino al 2016.

4 - il supporto tecnico del broker ha detto di eseguire le coppie senza la lettera Z alla fine, ma hanno tutte le coppie di valute che terminano con la Z - EURUSDz, AUDCADz.

Immagino che il problema sia nel broker e nel suo server, ma perché cancella anche la cronologia copiata? Qualcuno sa dirmi come caricare normalmente la cronologia?

 
gyperion #:

Salve. Per favore aiutatemi con un problema in mt5.

La cronologia delle quotazioni delle coppie di valute oltre il 2016 non si carica. Broker - Gerchik.

Provato:

1 - scaricare la cronologia attraverso il tester della strategia.

2 - attraverso il terminale degli strumenti. stupidamente mostra la cronologia solo fino al 2016.

3 - copiare la cronologia da una coppia normalmente caricata sul server di mt5. non serve a nulla, cancella questi file dopo il riavvio del programma e di nuovo la cronologia è solo fino al 2016.

4 - il supporto tecnico del broker ha detto di eseguire le coppie senza la lettera Z alla fine, ma hanno tutte le coppie di valute che terminano con la Z - EURUSDz, AUDCADz.

Immagino che il problema sia nel broker e nel suo server, ma perché cancella anche la cronologia copiata? Qualcuno sa dirmi come caricare normalmente la cronologia?

Quindi forse non hanno una cronologia, dato che loro stessi non sono una cucina molto vecchia?

 
Aleksey Vyazmikin #:

Quindi forse non hanno una storia, visto che non sono una cucina molto antica?

E quali sono le cucine che non lavorano in Russia? In realtà non ha importanza. La domanda è: come caricare la storia, anche se non ce l'hanno?
 
gyperion #:
E cosa c'è di non funzionante in Russia? Non ha molta importanza. La domanda è: come si fa a scaricare la storia, anche se non ce l'hanno?

Puoi prestarmi dei soldi anche se non ne hai?

 
gyperion #:
E cosa c'è di non funzionante in Russia? Non ha molta importanza. La domanda è come caricare la storia, anche se non ce l'hanno?

Attraverso i personaggi personalizzati creare la propria storia.

Importing High Quality Tick Data to MetaTrader 5
Importing High Quality Tick Data to MetaTrader 5
  • 2021.11.28
  • www.mql5.com
In order to vet a potential trading strategy, it is imperative to ensure that the results obtained f r om optimizations and strategy tests are a true reflection of the performance of your EA
 
Nauris Zukas #:

Attraverso i personaggi personalizzati, la vostra storia.

Ha funzionato in parte, ma l'importante è che abbia funzionato. Continuerò a scavare. Grazie per l'aiuto, signore, ho già provato tutto.
 

Salve a tutti, vorrei scrivere il mio primo robot di trading (Expert Advisor). Funziona perfettamente nel backtest e anche i risultati dei test sono di tutto rispetto. Ma ci sono diverse cose da considerare: tipi di conto, proprietà dei simboli, interferenze con altri EA, ecc.

Ho quattro variabili per questo:

bool isHedging; bool isFIFO; ulong positionTicket; double positionVolume;

Le prime due variabili sono impostate nel metodo init:

if ((bool)AccountInfoInteger(ACCOUNT_HEDGE_ALLOWED)) isHedging = true;
else isHedging = false;
if ((bool)AccountInfoInteger(ACCOUNT_FIFO_CLOSE)) isFIFO = true;
else isFIFO = false;

Se voglio aprire una posizione, prima verifico se questo può causare problemi con il FIFO (cioè se voglio aprire una posizione long, verifico se esiste già una posizione long con lo stesso volume o una posizione short per il rispettivo simbolo, perché altrimenti StopLoss e TakeProfit potrebbero non funzionare correttamente, come ho sentito dire). Infine, utilizzo il metodo OrderSend e stabilisco se è andato a buon fine:

positionVolume = tradeResult.volume;
positionTicket = tradeResult.deal;

Con uno StopLoss o un TakeProfit eseguito, riconosco attraverso il metodo OnTradeTransaction se la mia posizione (interna) EA è stata chiusa controllando se la variabile positionTicket corrisponde a transaction.position.

Se voglio chiudere una posizione di compensazione, chiudo semplicemente una posizione lunga con un'operazione corta con lo stesso volume.

Se voglio chiudere una posizione in un conto di copertura, chiudo la posizione con trade.PositionClose(positionTicket, slippage);

Se voglio chiudere una posizione in un conto di copertura FIFO, chiudo la posizione più vecchia del rispettivo simbolo che corrisponde alla direzione della posizione (lunga/corta) e al volume, che dovrebbe essere la mia a causa delle condizioni di entrata per i conti FIFO descritte sopra.

Ora sono sicuro di aver trascurato qualcosa di fondamentale. Come posso assicurarmi che lo StopLoss e il TakeProfit su un conto di compensazione siano chiusi anche quando chiudo la posizione (interna) dell'EA come descritto sopra? Esistono modi più eleganti ed efficienti per rendere l'EA conforme al FIFO? Con un conto di copertura non FIFO, se apro solo una posizione nell'EA con un MarketOrder, non la modifico e poi voglio chiuderla, il valore tradeResule.deal è sempre lo stesso, così che posso anche chiudere questa posizione senza preoccuparmi con trade.PositionClose(positionTicket, slippage), dove positionTicket è il valore tradeResult.deal salvato?

Sono alla ricerca di risposte da diversi giorni, ma non ne ho ancora trovata nessuna che possa risolvere tutti i miei dubbi. Spero che qualcuno qui possa aiutarmi.

 
Benjamin Fotteler #:

Ora sono sicuro di aver trascurato qualcosa di fondamentale. Come faccio a garantire che StopLoss e TakeProfit su un conto di compensazione siano chiusi anche quando chiudo la posizione (interna) dell'EA come descritto sopra? Esistono modi più eleganti ed efficienti per rendere l'EA conforme al FIFO? Con un conto di copertura non FIFO, se apro solo una posizione nell'EA con un MarketOrder, non la modifico e poi voglio chiuderla, il valore tradeResule.deal è sempre lo stesso, così che posso anche chiudere questa posizione con trade.PositionClose(positionTicket, slippage) senza preoccupazioni, dove positionTicket è il valore tradeResult.deal salvato?

Sono alla ricerca di risposte da diversi giorni, ma non ne ho ancora trovata nessuna che possa risolvere tutti i miei dubbi. Spero che qualcuno qui possa aiutarmi.

Su un conto di compensazione c'è solo una posizione per simbolo. Se l'EA negozia solo un simbolo, questo può essere letto in PositionTotal() - o anche più semplicemente PositionSelect() è sbagliato (=nessuno) o quindi anche selezionato per ulteriori negoziazioni.

Documentation on MQL5: Trade Functions / PositionSelect
Documentation on MQL5: Trade Functions / PositionSelect
  • www.mql5.com
PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

È corretto. Grazie per il suggerimento. Ma cosa faccio, per esempio, se un altro EA funziona sullo stesso simbolo, apre una posizione di 0,5 lotti e uno stop loss di 100 punti, il mio EA apre una "posizione interna all'EA" di 0,5 e uno stop loss di 150 punti, cioè aumenta la posizione esistente a 1 lotto, e poi chiudo la "posizione interna all'EA", cioè riduco la posizione esistente a 0,5 lotti. Quale stop loss avranno i restanti 0,5 lotti? 100 punti o 150 punti? Oppure in questo caso non è possibile impostare in modalità netting uno stop loss indipendente per i "miei" 0,5 lotti tramite SendRequest?

Insomma, non voglio semplicemente cambiare gli stop loss ben studiati di altri EA, ma non voglio nemmeno rinunciare ai miei. Esiste una soluzione efficiente al mio "problema" che non sia quella di aprire una "posizione interna all'EA" in modalità netting solo quando non c'è una posizione aperta per il simbolo?

 
Benjamin Fotteler simbolo, apre una posizione di 0,5 lotti e uno stop loss di 100 punti, il mio EA apre una "posizione interna all'EA" di 0,5 e uno stop loss di 150 punti, cioè aumenta la posizione esistente a 1 lotto, e poi chiudo la "posizione interna all'EA", cioè riduco la posizione esistente a 0,5 lotti. Quale stop loss avranno i restanti 0,5 lotti? 100 punti o 150 punti? Oppure in questo caso non è possibile impostare in modalità netting uno stop loss indipendente per i "miei" 0,5 lotti tramite SendRequest?

Insomma, non voglio semplicemente cambiare gli stop loss ben studiati di altri EA, ma non voglio nemmeno rinunciare ai miei. Esiste una soluzione efficiente al mio "problema" che non sia quella di aprire una "posizione interna all'EA" in modalità netting solo quando non c'è una posizione aperta per il simbolo?

Se su un conto nettato(!) il primo EA per es. EURUSD compra 0,01 lotti (buy) e un secondo EA vende 0,05 lotti (sell) c'è di nuovo solo una posizione sul conto con 0,04 sell. I numeri dei biglietti sono completamente irrilevanti per il momento. E se il secondo ordine per l'unica posizione in EURUSD imposta nuovi (suoi= SL e TP, quelli del primo ordine vengono sovrascritti.

C'è solo una posizione con uno SL e un TP, se specificato.