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
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.
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?
È 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
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.
Strano, ottengo errori quando compilo.
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.