Discussione sull’articolo "Guida Step-By-Step alla scrittura di un Expert Advisor in MQL5 per Principianti" - pagina 30
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Tester - "Modalità di riempimento non supportata"
Provato su 3 diversi broker. Qual è il problema?
Provate a sostituire SYMBOL_FILLING_FOK con SYMBOL_FILLING_IOC.
Saluti, Vladimir.
Ciao a tutti (soprattutto al caro autore)
Ho seguito questo articolo. Mi è piaciuto molto e ho imparato molto da esso.
Grazie per aver scritto un articolo così informativo.
Tuttavia ho un problema. Il mio EA non ha piazzato alcun ordine. Ho scaricato il codice dell'autore ma anche questo non ha piazzato alcun ordine.
Dato che l'articolo ha 13 anni, presumo che il codice sia ormai obsoleto. Qualcuno può aiutarmi?
Il mio codice è nel file sottostante. Grazie a tutti in anticipo.
Visitate la pagina inglese non tradotta, che è il download corretto.
Scarica da questa pagina: Guida passo-passo alla scrittura di un Expert Advisor in MQL5 per principianti - Articoli MQL5
https://www.mql5.com/en/articles/100
Cari tutti;
Da questo articolo in fondo, ha il codice completo mlq5 per scaricare.
Ho scaricato per controllare il funzionamento e ho scoperto che il programma ha un algoritmo non corretto.
Il setup è EURUSD, M1, 100USD con inizio dal 2025/01/01 al 2025/01/31.
Il primo ordine è un ordine di vendita, poi successivamente ci sono molti ordini di acquisto.
Il concetto è che dovrebbe avere un solo ordine, ma si verifica a partire dalla riga 165.
Il flag per verificare se è stato ordinato o meno è separato in 2 variabili flag (Buy_opned,Sell_opened).
Se ora è già presente un ordine di vendita, allora alla riga 216 (Ordersend) verrà creato un nuovo ordine di acquisto anche se ora è presente un ordine di vendita.
Attendere la prossima candela Il flag Buy_open sulla dichiarazione della riga 172 non può essere impostato di nuovo su on. Perché? Perché il primo ordine è di vendita, il secondo è di acquisto.
E sì, la prossima candela si verificherà un nuovo ordine di acquisto sulla riga 216 (Ordersend) e continuerà, molti ordini di acquisto si verificheranno fino a quando non ci sarà denaro.
Vedere il grafico qui.
Vedere l'elenco degli ordini.
Grazie.
Niwath Jeamphue.
Cari tutti;
Da questo articolo in fondo, ha il codice completo mlq5 per scaricare.
Ho scaricato per controllare la funzione e ho scoperto che il programma ha un algoritmo non corretto.
L'impostazione è EURUSD, M1, 100USD a partire dal 2025/01/01 al 2025/01/31.
Il primo ordine è un ordine di vendita, poi successivamente ci sono molti ordini di acquisto.
Il concetto è di avere un solo ordine, ma si verifica a partire dalla riga 165.
Il flag per verificare se è stato ordinato o meno è separato in 2 variabili flag (Buy_opned,Sell_opened).
Se ora è già presente un ordine di vendita, alla riga 216 (Ordersend) verrà emesso un nuovo ordine di acquisto anche se ora è presente un ordine di vendita.
Attendere la prossima candela Il flag Buy_open sulla dichiarazione della riga 172 non può essere impostato di nuovo su on. Perché? Perché il primo ordine è di vendita, il secondo di acquisto.
E sì, la prossima candela si verificherà di nuovo l'ordine di acquisto sulla linea 216 (Ordersend) e continuerà, molti ordini di acquisto si verificheranno fino a quando non ci sarà denaro.
Vedere il grafico qui.
Vedere l'elenco degli ordini.
Grazie.
Niwath Jeamphue.
Non si dovrebbe usare PositionSelect(_Symbol) a meno che non si stia usando un conto di compensazione.
Su un conto di copertura, è necessario selezionare correttamente la posizione con PositionGetTicket() o PositionSelectByTicket(). Consultate la documentazione.
Non si deve usare PositionSelect(_Symbol) se non si utilizza un conto di compensazione.
Su un conto di copertura, è necessario selezionare correttamente la posizione con PositionGetTicket() o PositionSelectByTicket(). Consultate la documentazione.
Grazie per il suo commento. Ma voglio solo dire a tutti che il codice sorgente proviene dalla versione finale completa di questo articolo.
https://www.mql5.com/it/articles/download/100/my_first_ea.mq5
Si prega di provare con te stesso, sarà capire il mio punto principale.
Grazie.
Grazie per il tuo commento. Ma voglio solo dire a tutti che il codice sorgente proviene dalla versione finale completa di questo articolo.
https://www.mql5.com/it/articles/download/100/my_first_ea.mq5
Per favore, prova con te stesso, capirai il mio punto principale.
Grazie.
Questo articolo è del 2010, a quel tempo TUTTI i conti erano conti di compensazione su MT5, anche per il Forex.
I conti di copertura sono stati introdotti nel 2016: https: //www.mql5.com/en/articles/2299
Niwath Jeamphue #:
Provate voi stessi e capirete il mio punto di vista.
Grazie.
Salve. Capisco il tuo punto di vista. Nel file allegato ho modificato il codice sorgente dell'Expert Advisor in modo che venga aperta una sola posizione, indipendentemente dal conto utilizzato - netting o hedge.
Saluti, Vladimir.
Salve. Capisco il suo punto di vista. Nel file allegato ho modificato il codice sorgente dell'Expert Advisor in modo che venga aperta una sola posizione, indipendentemente dal conto utilizzato - netting o hedge.
Saluti, Vladimir.
Conto di copertura,MrBrooklin. Grazie. Ma preferisco ricevere solo un ordine, non tanti ordini.
Ho cambiato algo. dall'originale
Cancella i flag di acquisto e vendita aperti
Se (PositionSelect(_Symbol)==true)
Se si scopre che è una posizione di acquisto allora imposta il flag Buy_opened
Altrimenti se si trova che è una posizione di vendita allora imposta il flag Sell_opened
Zona1 : Prova ad aprire l'ordine Buy in base alla condizione e al flag Buy_opened
Zona2 : Prova ad aprire l 'ordine Sell in base alla condizione e !flag Sell_opened
Al nuovo algoritmo e ora funziona bene.
Se (PositionsTotal() > 0) ritorno
Cancella i flag di acquisto e vendita aperti
Se viene rilevata una posizione di acquisto, allora impostare il flag Buy_opened
Altrimenti, se si trova una posizione di vendita, impostare Sell_opened.
Zona1 : Prova ad aprire l'ordine Buy alla condizione e !flag Buy_opened
Zona2 : Prova ad aprire un ordine di vendita alla condizione e !flag Sell_opened