[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 955

 
35aleks:
come scrivere codice in un EA per capire il rimbalzo dal livello x.xx25

Tutto dipende da come si intende il concetto di "rimbalzo di livello"...

Il prezzo ha toccato, ha attraversato da un lato e subito dopo è tornato indietro,
La candela si è aperta su un lato del livello, poi il prezzo ha attraversato il livello e la candela ha chiuso sullo stesso lato in cui si è aperta,
La candela precedente ha aperto su un lato e chiuso sull'altro, e la candela attuale ha aperto sul lato di chiusura della candela precedente e chiuso sul lato di apertura della candela precedente...
И... È possibile ottenere l'intera valigia di tali criteri... :)

Devi essere più specifico con le tue domande...

 
kgn45:
Lo stoploss è necessario per un EA di classe martingala. qualsiasi opzione per mettere uno stoploss su ogni ordine aperto. Te ne sarei molto grato!
Il tuo codice martini deve essere allegato? O questo è un forum di telepati?
 
kgn45:
Lo stoploss è necessario per un EA di classe martingala. qualsiasi opzione per mettere uno stoploss su ogni ordine aperto. Te ne sarei molto grato!

Lo dirò di nuovo. Ci sono molte varianti da calcolare. E la maggior parte sono qui https://www.mql5.com/ru/code
 
granit77:
Altri come questo.

Grazie per le risposte!
 
Ciao a tutti, domanda: ci sono quattro candele, è necessario trovare il prezzo massimo e minimo di queste candele combinate. Grazie.
 
Maniac:
Ciao a tutti, Ecco una domanda: ci sono quattro candele, ho bisogno di trovare il prezzo massimo e minimo di queste candele insieme. Grazie.

https://docs.mql4.com/ru/series/iLowest

https://docs.mql4.com/ru/series/iHighest

Se le candele non sono in fila, allora MathMax() e MathMin() a coppie

https://docs.mql4.com/ru/math/MathMax

https://docs.mql4.com/ru/math/MathMin

 
kgn45:

per questi due :.

GoldenProfit_hgs.mq4 (22,16 KB)
1_1.mq4 (8,98 KB)

GoldenProfit_hgs.mq4 - codice decompilato. Il codice decompilato non può essere pubblicato sul forum. Il post è stato rimosso.
 

Grazie a tutti per aver ignorato la domanda! L'ho capito da solo. La linea per Sell non ha avuto il tempo di impostare e ha restituito un valore di NULL.

ObjectGet("LOSSELL", 1)!=0

Ecco cosa mancava!!!

//+------------------------------------------------------------------+
//|  Линия                                                           |
//+------------------------------------------------------------------+
void CheckForClose() {  
   for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
      if (OrderSymbol() != Symbol()) continue;
      //---- check order type 
      if (OrderType() == OP_BUY) {
         if (Bid <= ObjectGet("LOSBAY", 1)) {
            OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
            ObjectDelete("LOSBAY");        
            break;
         }
      } else {
         if (OrderType() == OP_SELL) 
         {
            if (Ask >= ObjectGet("LOSSELL", 1)&&ObjectGet("LOSSELL", 1)!=0)
             {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
               ObjectDelete("LOSSELL");
               break;
            }
         }
      }
   }
   //----
   if (OrderType() == OP_SELL) {
      ObjectCreate("LOSSELL", 1, 0, Time[0], Ask+LS*Point);
      if (ObjectGet("LOSSELL", 1)-Ask > LS*Point) ObjectSet("LOSSELL", 1, Ask+LS*Point);
   } else {
      if (OrderType() == OP_BUY) {
         ObjectCreate("LOSBAY", 1, 0, Time[0], Bid-LB*Point);
         if (Bid-ObjectGet("LOSBAY", 1) > LB*Point) ObjectSet("LOSBAY", 1,  Bid-LB*Point);
      }
   }
   if (OrdersTotal() < 1) {
      ObjectDelete("LOSSELL");
      ObjectDelete("LOSBAY");
   }         
}
 
artmedia70:

Il tuo codice martini deve essere allegato? O questo è un forum telepatico?

questo EA ha bisogno di uno stoploss da mettere su ogni ordine
File:
1_2.mq4  9 kb
 
alsu:
Poiché si tratta di numeri doppi, hanno una lunghezza limitata della mantissa e quindi una precisione limitata. Provate questo: NormalizeDouble(0.25+(-0.25),2)
Grazie!