Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 74
![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
c'è una variabile
int Level = 0;
Mentre il programma è in esecuzione, cambia costantemente. Aiutami a scrivere una condizione: se Level NON è cambiato, allora non fare nulla. Se Level è cambiato (non importa se è cambiato in alto o in basso), allora fai qualche azione { operatore }
inserire un'altra variabile
int Level1 = 0;
int Level = 0;
se (Livello !=Livello1)
{};
e poi Livello1 =Livello
ma davvero non capisco perché abbiamo bisogno di estrarre un array su ogni tick se possiamo farlo dopo ogni operazione commerciale
inserire un'altra variabile
int Level1 = 0;
int Level = 0;
se (Livello !=Livello1)
{};
e poi Livello1 =Livello
Non capisco davvero perché devo estrarre un array ad ogni tick, se posso farlo dopo ogni operazione di trading
{
ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
}
Inoltre, ho bisogno che accada quando SELL_Lvl aumenta:
Ma, poiché la condizioneSELL_Lvl>0 è soddisfatta, la linea viene ridisegnata di nuovo, ma con un nuovo valore diSELL_NoLossLevel. C'è un modo più semplice e ovvio per ridisegnare la linea, in funzione diSELL_Lvl?
{
ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
}
Poi ho bisogno di far ridisegnare la linea quando SELL_Lvl aumenta:
Ma poiché la condizioneSELL_L_Lvl>0 è soddisfatta, la linea deve essere ridisegnata di nuovo, ma con un nuovo valore diSELL_NoLossLevel. C'è un modo più semplice e ovvio per ridisegnare la linea, a seconda del valore diSELL_Lvl?
Trasferire l'oggetto al nuovo valore senza cancellarlo o ricrearlo:
Trasferire l'oggetto al nuovo valore senza cancellarlo o ricrearlo:
Questa è certamente un'opzione, ma vorrei che la linea fosse ridisegnata dal valore diSELL_NoLossLevel a seconda cheSELL_Lvlsia cambiato
in questo modo if(ObjectGet("Vendi livello senza perdite", 1) !=SELL_NoLossLevel{ObjectDelete("Vendi livello senza perdite");}
La linea è ridisegnata ad ogni tick mentre ho bisogno che sia ridisegnata solo seSELL_Lvl cambia
Naturalmente è una variante, ma vorrei che la linea fosse ridisegnata daSELL_NoLossLevel a seconda cheSELL_Lvl sia cambiato
in questo modo if(ObjectGet("Vendi livello senza perdite", 1) !=SELL_NoLossLevel{ObjectDelete("Vendi livello senza perdite");}
La linea è ridisegnata su ogni tick, mentre ho bisogno che sia ridisegnata solo seSELL_Lvl cambia
Spiega chiaramente la condizione di ridisegno della linea, con valori di prezzo reali.
Per la linea evidenziata: quanto è cambiata? Cosa indica il fatto che SELL_Lvl è cambiato?
Voglio sapere quale funzione usare per chiudere un ordine pendente in mcl5.
È meglio fare un giro, determinare quello giusto e documentarsi
Cancellare l'ordine in sospeso
Ordine commerciale per cancellare un ordine in sospeso. Richiede 2 campi da specificare:
Meglio andare in bicicletta, identificare quello giusto e seguire la documentazione
Scrivete la condizione per il ridisegno della linea in modo chiaro, con valori di prezzo reali, e allora capirete cosa dovete fare.
Sull'evidenziato: cambiato di quanto? Cosa indica il fatto che SELL_Lvl è cambiato?
Apprezzerei se poteste dirmi come trovare il prezzo di un ordine minimo.
C'è un esempio nella documentazione.
Probabilmente sarebbe meglio passare attraverso gli ordini nel ciclo e, a condizione che l'ordine successivo sia inferiore al precedente, selezionarlo per lavorare ulteriormente con esso. Così, quando usciamo dal ciclo, l'ordine da cancellare sarà selezionato.
Oppure potete prima salvare la sua posizione nella lista dell'ordine nel ciclo e dopo l'uscita dal ciclo selezionarla per l'indice salvato.