Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1559
![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
Buon pomeriggio signori programmatori!!!
Per favore aiutate un principiante con una funzione.
La funzione conta il profitto totale per storia.
Il problema è che funziona per un broker e non vuole funzionare per un altro.
Funziona su Hercic ma non su RoboForex. Ho un conto ECN su RoboForex.
Non so quale sia il problema. Ecco il codice:
doppio ultima perdita()
{
int typ = -1,cnt = 0;
doppio lastloss = 0;
for(int i = OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if(cnt == 0) typ = OrderType();
if(cnt > 0 && OrderType()!= typ) break;
lastlos += OrderProfit() + + OrderSwap() + OrderCommission();
cnt++;
}
}
}
return(lastlos);
}
Mi chiedo se il compilatore non imprechi a questa linea?
lastlos += OrderProfit() + + OrderSwap() + OrderCommission();
Forse uno + deve essere rimosso, per funzionare correttamente?
E perché aggiungete swap e commissioni ai profitti? Anche sePotrebbe essere anche negativo...
E di che tipo di profitto totale stiamo parlando se state elaborando solo 1 o pochi ordini corrispondenti ma non tutti?
Il prossimo:
arresto del ciclo.
1)Ad alta velocità o se non su ticks nel tester chiuderà al primo prezzo disponibile.
2) Avete un grande aumento in corso e con un grande lotto 1 punto può essere più del livello ammissibile.
3)Non capisco cosa vuoi, di cosa hai bisogno per tracciare se l'azzeramento dopo ogni trade?
3) Non capisco cosa vuoi tracciare se azzeri dopo ogni scambio?
Sto parlando di tracciare il profitto/perdita "dentro" ogni trade, cioè, mentre il prezzo è "in bilico" tra stop e take, cambia anche l'ammontare del profitto e della perdita del trade corrente. Spesso succede che il prezzo arriva alla zona di profitto ma non raggiunge il punto di presa - si gira e l'affare viene chiuso allo stop. Ho bisogno di tracciare i profitti e le perdite (in denaro) per poterli fissare tempestivamente senza spostare uno stop e un take, cioè senza rompere i parametri impostati di take e stop. Questo è rilevante per i grandi lotti con un Martin abilitato.
Quando un affare viene chiuso - il tracciamento si ferma e ricomincia per un nuovo affare.
3) Non capisco cosa vuoi tracciare se azzeri dopo ogni scambio?
Sto parlando di tracciare il profitto/perdita "dentro" ogni trade, cioè mentre il prezzo "ondeggia" tra lo stop e il take, l'ammontare del profitto e della perdita del trade corrente cambia. Spesso succede che il prezzo arriva alla zona di profitto ma non raggiunge il punto di presa - si gira e l'affare viene chiuso allo stop. Ho bisogno di tracciare i profitti e le perdite (in denaro) per poterli fissare tempestivamente senza spostare uno stop e un take, cioè senza rompere i parametri impostati di take e stop. Questo è rilevante per i grandi lotti con un Martin abilitato.
Quando un trade viene chiuso, il tracking si ferma e ricomincia per un nuovo trade.
Dovete solo specificare i parametri di profitto e perdita meno stoploss e takeprofit, cioè
se TakeProfit è 200 pip 0,1 lotto, allora il profitto è di $20, impostare il livello di profitto di $15 e il trade si chiuderà prima
E perché aggiungete lo swap con commissione al profitto? Con
può anche essere negativo...
Grazie per questo, anche io ho fatto questa cosa stupida
Tutto quello che dovete fare è specificare i parametri di profitto e perdita meno stoploss e takeprofit, cioè
Se TakeProfit è 200 pips 0.1 lot, allora il profitto è $20, impostate il livello di profitto a $15 e il trade si chiuderà prima
Ok, grazie, ci penserò e lo eseguirò nel tester.
Sto chiedendo aiuto alla comunità...
Come dichiarare e creare oggetti globali MQL5 correttamente?
Se lo faccio in questo modo
Il compilatore si lamenta della linea in OnTick(): 'NB_M1' - identificatore non dichiarato, che è logico, perché una variabile locale è creata in OnInit().
Se inserite la dichiarazione globale prima di OnInit():
si compila senza errori e l'esperto funziona. Sembra che l'oggetto sia creato due volte - durante la dichiarazione globale e in OnInit().
Ma ilcompilatore ha questoavvertimento
la dichiarazione di 'NB_M1' nasconde la variabile globale -> per linea in OnInit()
vedere la dichiarazione precedente di 'NB_M1'
Significa che una variabile locale (all'interno di una funzione) viene creata in OnInit() che nasconde una variabile globale con lo stesso nome?
E se è così, come può questa variabile locale essere "vista" da un'altra funzione, OnTick() ?
Grazie per questo, anche io ho fatto questa stupidaggine.
Makar, prima facevi la cosa giusta e ora vuoi fare la cosa stupida...
Ripensate alla vostra quinta elementare di matematica o giù di lì. Quanto è (-3)-(-7) e quanto è (-3)+(-7)?
È difficile controllare con una calcolatrice, Excell per aiutarvi.
Salve. Conoscete qualche libreria disponibile in MQL per scrivere strutture di dati in un file e caricarle successivamente? Idealmente una libreria che lavora con il formato json, parserjson, ecc.
Non so come dirvi di leggere la documentazione. Se l'hai letto e la funzione standard non è adatta per qualche motivo, avresti dovuto dirlo subito...
Makar, prima facevi la cosa giusta e ora vuoi fare la cosa stupida...
Ripensate alla vostra quinta elementare di matematica o giù di lì. Quanto è (-3)-(-7) e quanto è (-3)+(-7)?
È difficile controllare con una calcolatrice, Excell per aiutarvi.
Sì, grazie. Sono saltato alle conclusioni. Ho capito bene)