Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 88

 
Gregory Kovalenko:

Salve. Come posso ottenere il profitto/perdita attuale sull'ordine aperto attuale?

Provando

- Restituisce solo positivo, profitto, se la posizione è in deficit al momento, la perdita non viene mostrata.

P.S. Nella cronologia degli ordiniOrderProfit() mostra anche il meno.

Come stai cercando di ottenere un profitto, mostra tutto il codice
 

per quanto riguarda il profitto attuale sull'ordine (non ha trovato l'iniziatore del post)

double profit=OrderProfit()+OrderSwap()+OrderCommission();
 
Renat Akhtyamov:

per quanto riguarda il profitto attuale sull'ordine (non ha trovato l'iniziatore del post)


Grazie, c'era effettivamente un errore nella logica del codice, ecco perché
double profit=OrderProfit()+OrderSwap()+OrderCommission();

non ha funzionato.

Ora è sorta una domanda interessante.

Se guardo l'ultimo ordine nella storia, vedo una perdita. Vorrei diminuire il tp e aumentare il lotto. tp

MarketInfo(Symbol(),MODE_STOPLEVEL)

Come faccio a calcolare quale lotto è necessario, conoscendo il prezzo attuale per aprire e il nuovo tp - per chiudere la perdita?

 
Gregory Kovalenko:

Grazie, c'era effettivamente un errore nella logica del codice.

non ha funzionato.

Ora c'è una domanda interessante.

Guardo l'ultimo ordine nella storia e vedo una perdita. Vorrei diminuire il tp e aumentare il lotto. tp - come calcolare quale lotto è necessario.

Come faccio a calcolare quale lotto è necessario, conoscendo il prezzo attuale per aprire e il nuovo tp - per chiudere la perdita?

Questa domanda è interessante, ma è legata allo sviluppo della strategia. Personalmente, passo.
 
Gregory Kovalenko: Come si fa a calcolare quale lotto è necessario, conoscendo il prezzo attuale per aprire e il nuovo tp - per chiudere la perdita?

Calcola quanto della perdita sarà coperta da un ordine con un lotto uguale a OrderLots(). Apre un ordine con un lotto uguale a OrderLots(), diviso per il valore ottenuto.

In altre parole, se OrderLots() chiude 0,5 perdite, si apre un ordine con il lotto OrderLots()/0,5 = OrderLots()*2.

Se OrderLots() chiude la perdita due volte, usa OrderLots() / 2

 
LRA:

Calcola quanto della perdita sarà coperta da un ordine con un lotto uguale a OrderLots(). Apre un ordine con un lotto uguale a OrderLots(), diviso per il valore ottenuto.

È più facile calcolare quanta parte della perdita sarà coperta dall'ordine con lotto = 1. Apre un ordine con lotto = 1, diviso per il valore risultante.
 

Ho una domanda quadrupla.

Tutti hanno un limite di 3000 pips nelle impostazioni del grafico, o qualcuno ha qualche scala verticale che funziona?

Ecco uno screenshotsjfhakslljas


 

Applicazione di "programmi di looping"

Per favore, spiega i pro e i contro. È meglio che aspettare un nuovo tick da start()? Aumenta la velocità di risposta a un nuovo tick?

start()
   {
   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }
   return;
   }

 
smart_man:

Applicazione di "programmi di looping"

Per favore, spiega i pro e i contro. È meglio che aspettare un nuovo tick da start()? Aumenta la velocità di risposta a un nuovo tick?

start()
   {
   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }
   return;
   }

Non dovresti farlo. Consumerà molte risorse. E cosa c'è di sbagliato nella velocità di risposta senza looping?
 
smart_man Spiegare i pro e i contro. È meglio che aspettare un nuovo tick da start()? Aumenta la velocità di risposta a una nuova zecca?

   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }

Un tick è un nuovo dato proveniente dal server. E deve essere elaborato immediatamente dopo il suo arrivo. Se lo fate in un ciclo con un ritardo di 5 ms, allora la maggior parte dei tic arriverà proprio durante questo ritardo. Così, l'elaborazione sarà ritardata di 0 ... 5 ms.