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

 
Artyom Trishkin:

L'errore 1 non è un errore, ma il risultato è sconosciuto. Il punto è che state cercando di modificare lo stop allo stesso prezzo al quale è già impostato. Prima di modificarlo, confronta il prezzo dello stop con il prezzo al quale vuoi impostarlo. Se è già a quel prezzo, non c'è niente da modificare.

Esiste una cosa del genere o c'è qualcosa di sbagliato?

 
Andrey Sokolov:

Esiste una cosa del genere o c'è qualcosa di sbagliato?

Non esiste una cosa del genere. Poi domanda: hai scritto ...

Fatto una funzione che quando un ordine raggiunge ... ... ...

... perché chiedete se c'è o non c'è? Se l'hai fatto da solo, dovresti sapere esattamente cosa hai fatto. O cosa? Non posso immaginare di fare qualcosa senza sapere cosa sto facendo...

 
Artyom Trishkin:

Non c'è. Allora la domanda è: hai scritto...

... perché chiedete se c'è o non c'è? Se l'hai fatto da solo, dovresti sapere esattamente cosa hai fatto. O cosa? Non posso immaginare di fare qualcosa senza sapere cosa sto facendo...

 if (OrderStopLoss()!=OrderOpenPrice()

Bisogna spostare lo sl al prezzo di apertura, qui, controllando che non ci sia. Cosa c'è che non va?

 
Andrey Sokolov:

Bisogna spostare lo sl al prezzo di apertura, qui, controllando che non ci sia. Cosa c'è che non va?

Il prezzo di apertura dell'ordine è il prezzo di stop?

 
Artyom Trishkin:

Il prezzo di apertura dell'ordine è il prezzo di stop?

Quindi se modifichiamo lo sl al prezzo di apertura, non è così?

 
Andrey Sokolov:

Quindi se la modifica trasferisce il sl al prezzo di apertura, non è così?

Cosa succede la prossima volta?

 
Artyom Trishkin:

Cosa succede la prossima volta?

E la prossima volta non saràOrderStopLoss()!=OrderOpenPrice()

No?

 
coldunprofi:

Ciao, come fare in modo che l'EA apra una posizione con un volume specificato di ordini singoli di entrambe le posizioni, ad es.

Il volume di un singolo ordine è di 1,35 lotti, il volume totale delle posizioni aperte è di 500 lotti. L'EA apre un ordine di acquisto di 1,35 lotti, e poi apre un ordine di vendita di 1,35 lotti,

e poi ripete fino a quando 500 lotti di acquisto e 500 lotti di vendita sono aperti, e poiché il numero di lotti non è un multiplo di 1,35, l'ultimo ordine deve essere inferiore a 1,35

Prendete qualsiasi pannello in CodeBase, trattate il codice sorgente e ora quando appare/variabili esterne, fategli fare le stesse azioni dei pulsanti. Si limiterà a sondare periodicamente le variabili (ad esempio nel timer) e ad emulare la pressione dei pulsanti
 
coldunprofi:

Ciao, come fare in modo che un EA apra una posizione con un volume specificato di un singolo ordine di entrambe le posizioni in base a variabili esterne, ad es.

Il volume di un singolo ordine è di 1,35 lotti, il volume totale delle posizioni aperte è di 500 lotti, l'Expert Advisor apre un ordine di acquisto di 1,35 lotti, poi apre un ordine di vendita di 1,35 lotti,

e poi ripetere fino a quando 500 lotti di acquisto e 500 lotti di vendita sono aperti, e poiché il numero di lotti non è un multiplo di 1,35, l'ultimo ordine deve essere inferiore a 1,35

Ciao. Non sarebbe più facile farlo in questo modo

MathMin(Lot,500-(общий лот уже открытых ордеров))
dove Lot per esempio sarà 1,35
 
Andrey Sokolov:

E la prossima volta non saràOrderStopLoss()!=OrderOpenPrice()

non è vero?

Prima di OrderModify() stampa i valori del prezzo di apertura e del nuovo prezzo di stop.

E tieni per te il tuo irrispettoso "no?" se vuoi aiuto. Tuttavia, ho postato un modello completamente funzionante per qualsiasi trawl in questo thread - puoi cercarlo.

Motivazione: