Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 414

 
L'obiettivo è quello di aprire un singolo ordine

Creiamo una funzione in cui facciamo un loop degli ordini aperti e, se 0, li apriamo.

Variante 2 :
Condizione orderdtotal ==0

Questo ci dà, come minimo, un'apertura o un'apertura infinita di ordini su ogni tick

Perché?
 
Alekseu Fedotov:

Per cominciare:

variabili, visibilità delle variabili

come sono dichiarati, dove?

Penso che il codice sia molto chiaro
 
Mickey Moose:
L'obiettivo è di aprire un ordine

Creiamo una funzione in cui facciamo un loop degli ordini aperti e, se 0, li apriamo.

Variante 2 :
Condizione orderdtotal ==0

Questo ci dà, come minimo, un'apertura o un'apertura infinita di ordini su ogni tick

Perché?
Cosa non è chiaro nel codice? Vi spiegherò se c'è qualcosa
 
ZZuretc:
Ciò che non è chiaro, lo spiegherò se c'è qualcosa
Non è chiaro perché dovrei usare una funzione di conteggio personalizzata quando c'è un totale d'ordine out-of-the-box
 
Mickey Moose:
Non è chiaro perché dovrei usare una funzione di conteggio personalizzata se c'è un totale d'ordine già pronto

Perché quello standard restituisce il numero totale di ordini e posizioni nel conto indipendentemente dal simbolo, dal mago e dal tipo.

 

Ciao a tutti! Potresti dirmi come impostare la condizione del prezzo che attraversa una linea orizzontale? E come fare questa funzione con la massima precisione (che reagirebbe su ogni tick)?

Grazie in anticipo))

 
Mickey Moose:
L'obiettivo è quello di aprire un ordine.
Creiamo una funzione in cui facciamo un loop degli ordini aperti e, se 0, li apriamo.
Variante 2 :
Condizione orderdtotal ==0
Questo ci dà, come minimo, un'apertura o un'apertura infinita di ordini su ogni tick
Perché?

Ad ogni tick il terminale riceve l'ultima quotazione dal server e anche le informazioni sugli ordini. Quando il terminale invia il comando OrderSend() al server, il server ha bisogno di un po' di tempo per elaborare questo comando e aprire l'ordine. Fino ad allora, invierà informazioni sull'assenza di un ordine ad ogni tick (chiamiamolo vuoto). La funzione OrdersTotal() restituirà zero, e il robot invierà un nuovo OrderSend().

Quando il server apre l'ordine, i tick vuoti finiscono. La funzione OrdersTotal() restituirà un valore positivo, il robot si calmerà. Se le quotazioni cambiano frequentemente, i tick arriveranno spesso, e ci saranno molti tick vuoti. Il robot invierà molti OrderSend(). Il server aprirà molti ordini.

La conclusione è che dovremmo fare una pausa dopo OrderSend().

 
STARIJ:

Ad ogni tick il terminale riceve dal server l'ultima quotazione e le informazioni sugli ordini. Quando il terminale invia il comando OrderSend() al server, il server ha bisogno di un po' di tempo per elaborare il comando e aprire l'ordine. Fino ad allora, invierà informazioni sull'assenza di un ordine ad ogni tick (chiamiamolo vuoto). La funzione OrdersTotal() restituirà zero, e il robot invierà un nuovo OrderSend().

Quando il server apre l'ordine, i tick vuoti finiscono. La funzione OrdersTotal() restituirà un valore positivo, il robot si calmerà. Se le quotazioni cambiano frequentemente, i tick arriveranno spesso, e ci saranno molti tick vuoti. Il robot invierà molti OrderSend(). Il server aprirà molti ordini.

Conclusione - dovremmo fare una pausa dopo OrderSend().

Se la risposta a OrderSend() è positiva, c'è un ticket, e, di conseguenza, una posizione è stata aperta/ordinata, dovremmo richiedere nuovamente l'ambiente di trading, invece di aspettare indefinitamente.

 

Che dire di una funzione che prende e modifica una non-magia?

Ma perché le altre funzioni non piazzano ordini multipli, ma solo SellLimit?

 
ZZuretc:
Che dire di una funzione che prende e modifica una non-magia?

La magia dell'ordine non può essere modificata.