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

 

SanAlex:

Ho il sospetto che non tutti capiscano di cosa stiamo parlando. - Il profitto è una cosa - ma i profitti su ogni coppia sono diversi.

Questo è il motivo per cui l'Expert Advisor deve essere installato su ogni coppia.

Non è necessario scaricare tutti i grafici.

//+--------------------------------------------------------------------------------------------------------------------+
//| Expert tick function                                                                                               |
//+--------------------------------------------------------------------------------------------------------------------+
void OnTick()
  {
//---
   if(Open_Pr("EURUSD")>MyProfit)DelOrders("EURUSD");
   if(Open_Pr("GBPUSD")>MyProfit)DelOrders("GBPUSD");
   //...и так все нужные пары 
//---
  }

e aggiungere alla funzione di cancellazione e chiusura degli ordini

//+--------------------------------------------------------------------------------------------------------------------+
//| Функция удаления и закрытия ордеров                                                                                |
//+--------------------------------------------------------------------------------------------------------------------+
void DelOrders(string sy="")
  {
   while(true)
     {
      bool find_order=false;
      //----
      if (sy == "0") sy = Symbol();
      for(int pos=OrdersTotal()-1;pos>=0;pos--)
      if(OrderSelect(pos,SELECT_BY_POS)==true)
      if(OrderSymbol() == sy || sy == "")
        {
         find_order=true;
         //----
         if(OrderType()==OP_BUY)
           {
            RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2);
            if(OrderClose(OrderTicket(),OrderLots(),Bid,slip,clrBlue)==false){}
           }
         //----
         if(OrderType()==OP_SELL)
           {
            RefreshRates(); int slip=(int)(((Ask-Bid)/Point)*2);
            if(OrderClose(OrderTicket(),OrderLots(),Ask,slip,clrRed)==false){}
           }
         //----
         if(OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)
         if(OrderDelete(OrderTicket(),clrRed)==false){}
         //----
         if(OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)
         if(OrderDelete(OrderTicket(),clrBlue)==false){}
         Alert("Все ордера закрыты!");
        } 
      if(find_order==false) Alert("Нет ордеров!");break;
     } 
  }
 
MakarFX:

Non è necessario scaricare tutti i grafici, basta metterlo su un grafico e scrivere nel codice

e aggiungere alla funzione di cancellazione e chiusura degli ordini

E un segnale di apertura?

 
SanAlex:

E i segnali di apertura?

Di cosa stai parlando?
 
MakarFX:
Cosa vuoi dire?

queste funzioni sono ausiliarie - e perché un esperto funzioni correttamente, deve anche aprire

 
SanAlex:

Queste funzioni sono ausiliarie - perché l'Expert Advisor funzioni correttamente, dovrebbe anche aprire

Originariamente, la domanda era - "Chi ha una funzione per chiudere gli ordini di specifiche valute in base al profitto totale"?

La creazione di un vero e proprio Expert Advisor era fuori questione)))

 
MakarFX:

La domanda originale era "chi ha la funzione di chiudere gli ordini di determinate valute per profitto totale".

Non si trattava di creare un vero e proprio Expert Advisor)))

Questa funzione non funziona per te! Forse funziona per i profitti totali? - Se è così, stiamo parlando di funzioni diverse

L'istantanea non si chiude

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Mi chiedo come apparirà il suo profitto - aprendo qua e là su 2 coppie

Ho appena visto il suo codice - è così che si apre.

 
SanAlex:

Beh, questa funzione non funziona per te! Forse funziona in base al profitto totale?

MakarFX:

La domanda originale era "chi ha la funzione di chiudere gli ordini di determinate valute per profitto totale".

 
MakarFX:

Ok, ho montato un'altra funzione - Scusa!

 
SanAlex:

Scusa!!!

Va bene))) Questo è un forum per tutti.

 
Vedo che stiamo avendo una vera discussione. Alex, anche tu sei coinvolto:)) Bene, signori programmatori, avete un consenso? Guarda, la funzione principale è quella di chiudere gli ordini dello stesso tipo in base al profitto totale. 4 posizioni sono state aperte, 2 su EURUSD (acquisto e vendita) e 2 su USDCHF (acquisto e vendita).Se gli ordini di acquisto ottengono un profitto li chiude, lascia l'ordine di vendita o lascia l'ordine di vendita.
Motivazione: