![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Non sappiamo cosa stai cercando di fare
Se vuoi solo una negoziazione aperta alla volta, controlla che non ci siano ordini aperti prima di inviarne uno nuovo.
Se volete solo una negoziazione per barra, testate solo una volta per barra
Se volete una combinazione di condizioni, testate la combinazione.
Lo spiego qui:
Ho al massimo 6 supporti e 6 resistenze per ogni ora. Può essere 2 supporti e 2 resistenze o qualsiasi cosa, ma al massimo 6 supporti e 6 resistenze per ogni ora.
Voglio aprire un ordine limite a quei livelli S/R all'inizio di ogni ora.
Ho creato una funzione di acquisto e una di vendita... in modo da non dover scrivere lo stesso codice di acquisto/vendita per un totale di 12 livelli S/R.
Ora, quando ho usato questo codice seguente:
Crea più ordini uguali:
Il tuo problema non è la funzione che hai postato, il tuo problema è nel codice che chiama la funzione.
Ovviamente non c'è nessun controllo per vedere se gli ordini sono già stati effettuati
Il tuo problema non è la funzione che hai postato, il tuo problema è nel codice che chiama la funzione.
Ovviamente non c'è nessun controllo per vedere se gli ordini sono già stati piazzati
codice per chiamare la funzione (snapshot)
Come controllare se gli ordini sono già stati piazzati o no? Con condizioni buyticket > 0?
codice per chiamare la funzione (snapshot)
Come controllare che gli ordini siano già stati piazzati o no? Con condizioni buyticket > 0?
È difficile dare consigli perché non so cosa stai facendo alla fine dell'ora con gli ordini non attivati e come stai gestendo gli ordini attivati.
Potresti creare un array (o 2) dichiarato globalmente e memorizzare i numeri di ticket per gli ordini aperti. Prima di aprire un nuovo ordine, controlla che l'elemento dell'array che corrisponde al livello abbia un valore >0.
Naturalmente, dovrai anche controllare i numeri di ticket e se cancelli gli ordini non attivati, imposta l'elemento dell'array a 0. Potresti anche dover controllare se l'ordine è stato chiuso e, a seconda della tua logica, reimpostarlo a 0
È difficile dare consigli perché non so cosa stai facendo alla fine dell'ora con gli ordini non attivati e come stai gestendo gli ordini attivati.
Potresti creare un array (o 2) dichiarato globalmente e memorizzare i numeri di ticket degli ordini aperti. Prima di aprire un nuovo ordine, controlla che l'elemento dell'array che corrisponde al livello abbia un valore >0.
Naturalmente, dovrai anche controllare i numeri di ticket e se cancelli gli ordini non attivati, imposta l'elemento dell'array a 0. Potresti anche dover controllare se l'ordine è stato chiuso e, a seconda della tua logica, reimpostarlo a 0
Come ho impostato i livelli di scadenza degli ordini Un-triggered, essi scadono alle 0:59 o al 59° minuto. Per l'ordine Triggered sono impostati SL e TP.
In precedenza ho progettato Ea che prende un ordine di acquisto o di vendita in ogni ora... nessun problema, il codice era semplice. Ma qui sembra molto difficile.
Ok, proverò a codificarlo come hai detto tu. Se sorgono problemi posterò qui. Inoltre sarebbe bello se tu potessi condividere qualche semplice esempio di codice per il conteggio del numero di ticket.
Grazie per il tuo suggerimento.
Ho risolto temporaneamente il mio problema con il seguente codice e l'esecuzione sul grafico orario. Semplice
Bars è inaffidabile (un refresh/reconnect può cambiare il numero di barre sul grafico) il volume è inaffidabile (mancano i tick) Usa sempre il tempo. Nuova candela - MQL4 forum
Grazie per il codice. L'ho aggiunto nella funzione Tick. Ma ora il mio EA non sta prendendo alcun trade. Dato che uso la funzione buycall/sell call per piazzare ordini pendenti. Non ho potuto aggiungere questa funzione all'interno della funzione.
Qualche idea?
Inoltre, anche il reverse trade sugli ordini fermati non funziona.
Qualche evidenziazione sul codice inverso? Perché non funziona?
Grazie.