Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1549
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
È bene parlare quando si sa cosa fare...
aiutarmi con consigli su come "far uscire più informazioni utili possibili".
Ho detto tutto molto chiaramente. Beh, per te personalmente, lascia che te lo chieda.
Qui ci sono due funzioni ed entrambe passano attraverso gli ordini storici
Due cicli sugli stessi ordini. Non si può ottenere tutto ciò che queste funzioni restituiscono in un solo ciclo, giusto?
Ciao!
Sto cercando di aggiungere un'inversione di trade al gufo. Lo sto facendo come descritto nelle istruzioni: https://www.mql5.com/ru/forum/128200
Non ho errori durante la compilazione, ma il flip non funziona nel tester.
Il registro dà un errore:
2021.07.29 20:06:34.316 2015.01.08 22:10:00 SMA con codice flip through AUDUSD,M5: OrderSend error 130
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA con inversione via AUDUSD,M5: OrderSend error 4107
2021.07.29 20:06:34.316 2015.01.08 22:05:45 SMA con flip via AUDUSD,M5: stoploss non valido per la funzione OrderSend
Potresti per favore dirmi qual è il problema qui?
Io stesso penso che le variabili specificate in
int ReversOrderSend (string symbol,int cmd,double volume,double price,int slippage,double stoploss,double takeprofit,string comment,int magic=0,datetime expiration=0,color arrow_color=CLR_NONE)Non sono legati al codice principale.
Ho provato in diversi terminali, 4 e 5 segni.
Ecco l'intero codice:
L'ho già detto abbastanza chiaramente. Ti faccio una domanda personale.
Qui ci sono due funzioni ed entrambe fanno un ciclo di ordini storici
Ci sono due cicli sugli stessi ordini. Non si può ottenere tutto ciò che queste funzioni restituiscono in un solo ciclo, giusto?
Alexei, ho già scritto, so che sei un buon programmatore!
Ma io non sono un programmatore, e ciò che è "abbastanza chiaro" per te non lo è per me...
Per quanto riguarda i due cicli, per me"In un solo ciclo prendi tutto" non è possibile, perché restituiscono diversi tipi di dati.
Alexey, ho già scritto, so che sei un buon programmatore!
Ma io non sono un programmatore e quello che è "abbastanza chiaro" per te è una foresta oscura per me...
Per quanto riguarda i due cicli, per me"ottenere tutto in un ciclo" non è possibile, perché restituiscono tipi di dati diversi.
I tipi restituiti non c'entrano niente. Se ci sono 2 loop sugli stessi dati con diversi controlli e filtri, si può sempre mettere tutto in un solo loop, ma il codice non si leggerà così chiaro, ma dovrebbe funzionare più velocemente) In fase di debug non faccio tutto in un solo loop. È più facile cercare i bug in diversi.
Alexey, ho già scritto, so che sei un buon programmatore!
Ma io non sono un programmatore e quello che è "abbastanza chiaro" per te è una foresta oscura per me...
Per quanto riguarda i due cicli, per me"In un solo ciclo per ottenere tutto" non è possibile, perché restituiscono diversi tipi di dati.
Ho due opzioni.
Ho un conflitto tra ordini pendenti.
Per esempio, ho piazzato un ordine pendente per EURUSD, l'EA ha seguito l'algoritmo (acquisto a 1.18901, posizione aperta, EA ha impostato lo stop a 1.18751, take profit a 1.19051 e ordine di vendita a 1.18751) tutto è ok come da programma.
Ma ora è il momento di aprire un'operazione su GBPUSD dove i prezzi sono diversi e l'EA sta facendo tutto bene, tranne che per impostare un ordine pendente. Un ordine di vendita a 1,39393 è scattato e l'EA ha cercato di aprirlo, impostare uno stop a 1,39633 e prendere 1,39153 ma l'ordine di acquisto a 1,39633 è completamente duplicato in EURUSD e un ordine di vendita a 1,18751)
Ho appena trovato un altro problema: uno stop a 1,18751 e un ordine pendente di vendita a 1,18901 e un take a 1,18595 sono scattati su un trade aperto su EURUSD. L'Expert Advisor non ha aggiunto lo stop attivato, che è nella storia.
Questi sono i problemi.
Ciao!
Sto cercando di avvitare un capovolgimento dei mestieri al gufo.
Cosa vuoi dire? Una certa gamma di prezzi da cui si compra/vende?
Buon pomeriggio. Aiuto con l'EA. Secondo la strategia, se uno stop è scattato, allora l'EA dovrebbe aggiungere (il numero di punti) al prossimo set takeaway
dalla storia per ID, ma non lo fa per qualche motivo.
Cosa c'è di sbagliato nel codice?
Makar ha indicato correttamente OrderMagicNumber(), ma ha frainteso l'errore. Leggete la documentazione per la sintassi di questa funzione... dovrebbe essere o l'indice nella lista degli ordini o il biglietto di un certo ordine, ma non un magone. E OrderTicket() non aiuta in questo caso. Non cercate di metterlo lì.
Cosa vuoi dire? Una certa fascia di prezzo da cui si compra/vende?
L'autore del codice, da quanto ho capito, ha suggerito quanto segue:
se owl apre un trade di acquisto con stop e take, allora il suo pezzo di codice apre un trade di vendita allo stesso tempo nello stesso posto (tenendo conto dello spread) anche con stop e take invece di un trade di acquisto.
quindi la logica di ricerca di un punto di entrata dell'EA non cambia, e cambia solo la direzione con spread preso in considerazione.
questo è esattamente ciò di cui ho bisogno
Descrivi in poche parole cosa vuoi da questo EA (la logica di funzionamento),
Penso che tu abbia molte cose inutili nel tuo codice o che io non capisca qualcosa.
i gufi dovrebbero aprire i trade secondo il loro algoritmo
se lo stop, il prossimo commercio con un Martin, e così via fino al numero di moltiplicazioni che ho specificato (funzione -OrdersClose = .....;).
Inoltre, se il gufo è disabilitato insieme al terminale, basta premere il pulsante "auto-trade" con un altro gufo, poi il prossimo trade inizierà con il lotto di partenza, non con l'ultimo aumentato da una martingala.
Sarebbe anche bello potervi allegare un programma, ma questa idea mi è venuta in mente solo ora.
Per esempio: è stato attivato alle 10-00 di lunedì con il lotto di partenza, poi è stato spento durante il giorno quando è stato raggiunto qualche risultato, e il martedì mattina è stato attivato alle 10-00 ed è ripartito con il lotto di partenza.
Tutto.