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

 

Ecco la mia funzione di modifica degli ordini in sospeso. Quando modifico, imposto un nuovo prezzo e un nuovo stoploss. La funzione funziona parzialmente, ma per qualche motivo il tester sta ottenendo errori 1.

La mia funzione è scritta correttamente?

void MovingPendingOrders(/*int ticket, double newPrice*/)
{
  double priceS = NormalizeDouble((Low[1] - i_thresholdFromInput*pt),Digits);           // Новая цена открытия для OP_SELLSTOP
  double priceB = NormalizeDouble((High[1] + i_thresholdFromBasedSL*pt),Digits);        // Новая цена открытия для OP_BUYSTOP
  bool b_mod, s_mod;
  
  int total = OrdersTotal() - 1;
  int s_ticket, b_ticket;

  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() != i_myMagic) continue;
      {
        if(OrderType() == OP_BUYSTOP)
        {
          b_ticket = OrderTicket();
          b_mod = true;
        }
        if(OrderType() == OP_SELLSTOP)
        {
          s_ticket = OrderTicket();
          s_mod = true;
        }
      }
  }
  
  if(IsTradeAllowed())
  {
    if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
    if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);
  }
  Print("MovingPendingOrders переоткрыл ордер по новой цене");
}
 
hoz:

La mia funzione è scritta correttamente?

 bool b_mod = false; 
 bool s_mod = false;
 
hoz:

Ecco la mia funzione di modifica degli ordini in sospeso. Quando modifico, imposto un nuovo prezzo e un nuovo stoploss. La funzione funziona parzialmente, ma per qualche motivo il tester sta ottenendo errori 1.

La mia funzione è scritta correttamente?

...e ad ogni spunta si modifica più e più volte. ?!
 
BeerGod:

Vi prego di consigliarmi come fare in modo che un EA emetta un commento sopra un frame che copre il grafico per renderlo leggibile, ho visto questo implementato ma non so come.

Ora non so come fare:

Dovrebbe essere così:

Dovremmo usare un qualche tipo di font. Forse anche creare il proprio.
 
silatyt:
...e ad ogni spunta si modifica più e più volte. ?!

Non sapevo dove metterlo, ho incasinato la logica dell'Expert Advisor per inesperienza. Per testare il funzionamento, l'ho messo in... Sì, era su ogni tick, ecco perché l'errore. Poi, dopo la funzione che definisce una nuova barra, l'ho inserita e ho corretto il codice come mi ha dettoTheXpert e tutto è andato come doveva.
 

Buon pomeriggio. Potreste dirmi come dovrebbe essere un pezzo di codice EA che è responsabile di quanto segue:

1. Passa attraverso i parametri uno per uno (in un dato intervallo, ad esempio da 10 a 20) dell'indicatore, su cui si basa l'EA, fino a quando la condizione per aprire il commercio non è soddisfatta.

2. Se la condizione dopo la ricerca non è soddisfatta - aspetta 5 minuti.

 
Buon pomeriggio. Sapete se è possibile inviare l'esecuzione del codice dalla linea 35 alla linea 18 (linee per esempio) con gli strumenti standard di mql4. Una specie di salto nel codice.
 
tpg_k156:
Buon pomeriggio. Sapete se è possibile inviare l'esecuzione del codice dalla linea 35 alla linea 18 con gli strumenti standard di mql4 (linee per esempio). Una specie di salto nel codice.

Interruttore operatore / if - else

e funzioni

 
sergeev:

operatori switch / if - else

e funzioni



quindi è possibile forzare il corpo della stessa funzione a eseguire di nuovo se stessa? come ad esempio
int Gipo()                   // Пользовательская функция  
{
всякая фигня
if(получили-что-надо)
 {
 return(что-надо);
 }
else
 {
 Gipo();
 }
}
???
 
tpg_k156:

quindi è possibile forzare il corpo della stessa funzione a eseguire di nuovo se stessa? come


Sì, si chiama ricorsione.



Motivazione: