E facciamone un "cartone animato" (multicurrency) - pagina 4

 
rid писал(а) >>

forse uno di questi andrà bene, -

La funzione PriceOpenLastPos().
Questa funzione restituisce il prezzo aperto dell'ultima posizione aperta. La selezione delle posizioni da prendere in considerazione è specificata da parametri esterni:
sy - Nome dello strumento di mercato. Se questo parametro è impostato, la funzione considererà solo le posizioni del simbolo specificato. Il valore predefinito - "" significa qualsiasi strumento di mercato. Il valore nullo indica lo strumento corrente.
op - operazione commerciale, tipo di posizione. Valori validi: OP_BUY, OP_SELL o -1. Il valore predefinito -1 significa qualsiasi posizione.
mn - Identificatore di posizione, MagicNumber. Il valore predefinito -1 significa qualsiasi identificatore.

https://forum.mql4.com/ru/11287/page24

Grazie, lo proverò, questa funzione funziona anche nell'indicatore?

 

Non posso dirlo. Dopo tutto, l'indicatore non apre posizioni . Perché l'indicatore ha bisogno del prezzo delle posizioni aperte o chiuse?

Ha altri compiti.

Penso che funzionerà anche nell'indicatore.

 
rid писал(а) >>

Non posso dirlo. Dopo tutto, l'indicatore non apre posizioni . Perché l'indicatore ha bisogno del prezzo delle posizioni aperte o chiuse?

Ha altri compiti.

Penso che funzionerà anche nell'indicatore.

Sapete come inserire correttamente questa funzione nell'indicatore?

Durante la compilazione, l'editor genera un errore sulla prima parentesi e sulle variabili successive.

double PriceOpenLastPos( string sy="", int op=-1, int mn=-1) {
datetime t;
doppio r=0;
int k=OrdiniTotali();

if (sy=="0") sy=Symbol();
per (i=0; i<k; i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
se (OrderSymbol()==sy || sy==") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
se (op<0 || OrderType()==op) {
se (mn<0 || OrderMagicNumber()==mn) {
se (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
ritorno(r);
}
}

'(' - definizione di funzione inaspettata D:-MT4\esperti-indicatori\Astrea.mq4 (627, 24)
'sy' - variabile non definita D:MT4\experts\indicators\Astrea.mq4 (632, 7)
ecc.

 

È difficile da dire. Non sono uno specialista in indici.

E non capisco perché il prezzo di apertura dell 'ordine dovrebbe essere considerato nell'indicatore.

Siete sicuri che questo particolare indicatore sia necessario per i vostri scopi?

Forse sarebbe più facile implementare le funzioni di cui hai bisogno in un EA separato che tenga conto degli ordini?

 
rid писал(а) >>

È difficile da dire. Non sono uno specialista in indici.

E non capisco perché il prezzo di apertura dell'ordine dovrebbe essere considerato nell'indicatore.

Siete sicuri che questo particolare indicatore sia necessario per i vostri scopi?

Forse, sarebbe più facile implementare le funzioni necessarie in un EA separato che considererà gli ordini?

Implemento la logica di generazione dei segnali di trading in un indicatore e invio il segnale generato all'EA attraverso una variabile globale per aprire/chiudere gli ordini.

Ho bisogno del prezzo aperto di un ordine per prendere alcune decisioni ed è per questo che sto cercando di risolvere questo problema. Ho un indicatore dinamico, si può solo debuggare in una demo o in un tester in modalità visualizzazione.

 

Ora ho inserito questa funzione nel primo tacchino in cui mi sono imbattuto (ATR) e tutto si è conformato.

(1 solo avvertimento, come dovrebbe).

E in quale parte del codice inserite questa funzione? Deve essere inserito alla fine del codice, al di fuori della funzione START.

E poi, nella funzione START chiamatelo per calcolare il vostro

 
rid писал(а) >>
Ho appena incollato questa funzione nel primo tacchino disponibile (ATR) e tutto ha funzionato.

Come è stato inserito? Tutto il testo di cui sopra uno a uno, o come sottofunzione nulla?

 
Uno a uno.
 
rid писал(а) >>
>> Uno a uno.

Strano, ottengo errori quando compilo.

 
rid писал(а) >>

Ora ho inserito questa funzione nel primo tacchino in cui mi sono imbattuto (ATR) e tutto si è conformato.

(1 solo avvertimento, come dovrebbe).

E in quale parte del codice inserite questa funzione? Deve essere inserito alla fine del codice, al di fuori della funzione START.

Dovreste chiamarlo nella funzione START per fare i calcoli.

L'ho fatto, l'ho inserito al di fuori della funzione di avvio, e la compilazione è andata a buon fine.

>> Grazie.