[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 1044
![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
Non mi interessa, voglio solo tracciare una linea...
Это для не стандартного подхода, того чего нет в отчете оптимизатора. файл здесь terminal\tester\files
Сохраняйте отчет из "Результаты оптим." сохран как>>
Ora capisco come salvare qualcosa. Per favore, ditemi come salvare automaticamente i risultati dell'ottimizzazione. Fondamentalmente, mi interessa solo il massimo drawdown e profitto.
Ora capisco come salvare qualcosa di cui ho bisogno. Per favore, consigliate come salvare automaticamente i risultati dell'ottimizzazione. In linea di principio, mi interessa solo il massimo drawdown e profitto.
In Deinit, contate attraverso OrdersHistoryTotal la somma di tutti i redditizi, non redditizi, drawdown, profitti e al file ;)
Qualcosa del genere
No, cloze.
Più o meno lo stesso, sul periodo inferiore puoi visualizzare il vettore di quello più vecchio sul grafico H1 nelle impostazioni ind H4.
A cosa serve?
In Deinit, usate OrdersHistoryTotal per contare lasomma di tutti i profittevoli, non profittevoli, drawdown, profitti e archiviatela ; )
Qualcosa del genere
Sì, c'è quello. Purtroppo questo metodo fornisce dati diversi da quelli di MT. Basta salvare atomicamente i risultati dell'ottimizzazione in un file ed è tutto...
Si scorrono gli ordini aperti e pendenti in ordine di numero di posizione nella lista, si seleziona quello che interessa e si recupera il suo ticket
e continuare a lavorare con il biglietto.
Se non sai cosa farci, semplicemente non sai cosa farci.
Per favore, ditemi perché dobbiamo farlo se abbiamo già selezionato lo stesso ordine?
O forse non capisco qualcosa: QUESTO codice :
string symbol = Symbol();int cnt;
for(cnt = OrdersTotal(); cnt >= 0; cnt--){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) {
ticketbuy=OrderTicket();OrderSelect(ticketbuy, SELECT_BY_TICKET, MODE_TRADES);lotsbuy2=OrderLots() ;
double bid = MarketInfo(symbol,MODE_BID);
RefreshRates();
OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); }
e questo:
string symbol = Symbol();int cnt;
for(cnt = OrdersTotal(); cnt >= 0; cnt--){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) {
lotsbuy2=OrderLots() ;
double bid = MarketInfo(symbol,MODE_BID);
RefreshRates();
OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); }
farà la stessa cosa?
Grazie per la vostra risposta.
Perché dobbiamo farlo se abbiamo già selezionato lo stesso ordine?
O forse non capisco qualcosa: QUESTO codice :
string symbol = Symbol();int cnt;
for(cnt = OrdersTotal()-1; cnt >= 0; cnt--){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) {
ticketbuy=OrderTicket();OrderSelect(ticketbuy, SELECT_BY_TICKET, MODE_TRADES); lotsbuy2=OrderLots() ;
double bid = MarketInfo(symbol,MODE_BID);
RefreshRates();
OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); }
}
e questo:
string symbol = Symbol();int cnt;
for(cnt = OrdersTotal()-1; cnt >= 0; cnt--){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) {
lotsbuy2=OrderLots() ;
double bid = MarketInfo(symbol,MODE_BID);
RefreshRates();
OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); }
}
farà la stessa cosa?
Il codice segnato in rosso è ridondante, poiché l'ordine è già stato selezionato e non è necessario selezionarlo di nuovo per elaborarlo.
Grazie per la vostra risposta.
Perché dobbiamo farlo se abbiamo già selezionato lo stesso ordine?
O forse non capisco qualcosa: QUESTO codice :
string symbol = Symbol();int cnt;
for(cnt = OrdersTotal(); cnt >= 0; cnt--){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) {
ticketbuy=OrderTicket();OrderSelect(ticketbuy, SELECT_BY_TICKET, MODE_TRADES);lotsbuy2=OrderLots() ;
double bid = MarketInfo(symbol,MODE_BID);
RefreshRates();
OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); }
e questo:
string symbol = Symbol();int cnt;
for(cnt = OrdersTotal(); cnt >= 0; cnt--){
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == symbol && OrderMagicNumber()==Magicbuy) {
lotsbuy2=OrderLots() ;
double bid = MarketInfo(symbol,MODE_BID);
RefreshRates();
OrderClose(ticketbuy,lotsbuy2,bid,3,Magenta); }
farà la stessa cosa?
Nella prima variante, il secondo OrderSelect su ticketbuy, utilizza un secondo controllo, credo (se l'apertura sull'ordine pendente scivola o +1 ordertotal...).
Nel post precedente ha trovato correttamente gli errori (tranne il verde).
L'acquisto del biglietto non è segnato nel secondo. Abbiamo bisogno di identificare