Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1863

 
Artyom Trishkin #:
Break

Qual è la domanda?).

 
Alexey Viktorov #:

Qual è la domanda?)))

A quanto pare tu e Andrei dovreste smettere di trollare...

L'atmosfera è davvero poco amichevole (come notato sopra). Sono venuto qui per discutere di problemi MQLQL. Ma ho letto qualcosa che non riguarda MQL. Di cosa stai parlando?

Lascia che qualche nuovo arrivato faccia una domanda o qualcosa del genere... O forse ha paura di...? Perdersi nella mischia tra te e Andrei... :)
 

Buon pomeriggio a tutti.

Si prega di consigliare come scrivere correttamente il codice.
Chiudo diversi ordini contemporaneamente in diverse direzioni, diverse coppie di valute, in base a determinate condizioni. Ma a volte il comando non viene eseguito a causa della società di intermediazione e una parte degli ordini rimane aperta. Posso prescrivere il sonno per ogni ordine. Ma voglio qualcosa di più corto.

if ( NormalizeDouble((MaxOpenSell(2) + MaxOpenBuy(2) + MinOpenSell(2))*Point,Digits) >= Profit1 && FindLastSell() >= Block 
         && FindLastBuy() >= 1 && MaxOpenSell(2) > 0 && MA1 < MA2)
      {
         LockTicket = 0;
         CalProfHis = 0;
         bool close =  OrderClose((int)MaxOpenSell(5),MaxOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MinOpenSell(5),MinOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MaxOpenBuy(5),MaxOpenBuy(3), Bid, Slippage, clrBlue);

      }
 
makssub sonno per ogni ordine. Vorrei usare qualcosa di più corto.

https://book.mql4.com/ru/trading/orderclose

Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
makssub sonno per ogni ordine. Mi piacerebbe avere qualcosa di più corto.

Quando si verifica la condizione di uscita/chiusura, dovremmo aggiungere il biglietto all'array. Poi, se l'array non è vuoto, il programma lo percorre in loop, chiamando OrderClose per ogni biglietto. Poi controlla l'esistenza di ogni biglietto e rimuovilo dalla lista. Ripetete queste azioni a intervalli di 1-3 secondi fino a quando la lista è vuota.

 

Salve.

Ho bisogno di calcolare il profitto netto dell'Expert Advisor alla fine del lavoro. Eseguo un ciclo su OrdersHistoryTotal() in OnDeinit e aggiungo OrderProfit().

Profit=Profit+OrderProfit();

Ma alla fine il profitto è diverso da quello riportato nel tester. Ho scoperto che il valore del punto differisce su una parte degli ordini.

Qual è la ragione di questo? Lo spread è impostato manualmente nel tester.

 
AlexandrVV #:

Salve.

Ho bisogno di calcolare il profitto netto dell'Expert Advisor alla fine del lavoro. Inizio un ciclo da OrdersHistoryTotal() in OnDeinit e aggiungo OrderProfit().

Profit=Profit+OrderProfit();

Ma alla fine il profitto è diverso da quello riportato nel tester. Ho scoperto che il valore del punto differisce su una parte degli ordini.

Qual è la ragione di questo? Lo spread è impostato manualmente nel tester.

Lo swap e la commissione sono stati dimenticati per essere aggiunti! Lo spread è già preso in considerazione poiché è sempre tra i prezzi di entrata e di uscita.

 
Mihail Matkovskij #:

Lo swap e la commissione sono stati dimenticati per essere aggiunti! Lo spread è già preso in considerazione in quanto è sempre tra il prezzo di entrata e quello di uscita.

Oh, è vero! Grazie mille!!! )

 
Ciao a tutti. Per favore, ditemi dove posso trovare uno script o un indicatore che mandi una notifica al mio telefono, quando il prezzo raggiunge un certo livello specificato da me.
 

Puoi dirmi qual è il problema, il codice dovrebbe chiudere gli ordini e se mancano dovrebbe aprirne uno nuovo.

Ma per qualche motivo, chiude solo 1 ordine e si ferma fino al prossimo segnale.

2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Signal 1.1322 < clos 1.1304 ExistPosSell 0
2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Signal 1.1322 > clos 1.1304 ExistPosBuy 1
2022.01.17 16:22:08.366 2022.01.04 08:00:00 e: Signal 1.1325 < clos 1.1306 ExistPosSell 0
2022.01.17 16:22:08.366 2022.01.04 04:00:00 e: Signal 1.1325 > clos 1.1306 ExistPosBuy 1
2022.01.17 16:22:08.327 2022.01.04 2022.01.04 00:00:00 e: Signal 1.1326 < clos 1.1296 ExistPosSell 0
2022.01.17 16:22:08.327 2022.01.04 00:00:00 e: Signal 1.1326 > clos 1.1296 ExistPosBuy 1
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Signal 1.1328 < clos 1.1283 ExistPosSell 0
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: close #1 buy 0.01 EURUSD at 1.13598 at price 1.12831

2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Signal 1.1328 > close 1.1283 ExistPosBuy 1
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: open #4 buy 0.01 EURUSD at 1.13512 ok
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Segnale 1.134 < chiusura 1.135 ExistPosSell 0
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Segnale 1.134 > chiusura 1.135 ExistPosBuy 1

if(isNewBar()==true) {  
if(Signal > clos ) {  //--------------------- МА выше цены закрытия предыдущего бара.
     if(ExistPositions( NULL, OP_BUY, Magic) == true) //---------------- Если есть позиция BUY то
ClosePosWithMaxProfitInCurrency(); //--------  закрытие одной позиции с максимальным профитом в валюте депозита.
         if(ExistPositions( NULL, OP_BUY, Magic) == False) //----------- если позиции BUY отсутствуют то
   ticket=OpenPosition(NULL,OP_SELL, NDLot(Lot),0,0, Magic, Com);} //------------ открываем позицию SELL

if(Signal < clos ) { //--------------------- МА ниже цены закрытия предыдущего бара.
    if(ExistPositions( NULL, OP_SELL, Magic) == true) //---------------- Если есть позиция SELL то
 ClosePosWithMaxProfitInCurrency(); //---------------------закрытие одной позиции с максимальным профитом в валюте депозита.
        if(ExistPositions( NULL, OP_SELL, Magic) == False)  //----------- если позиции SELL отсутствуют то
  ticket=OpenPosition(NULL,OP_BUY, NDLot(Lot),0,0, Magic, Com);} //------------ открываем позицию BUY

} return;