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

 
Artyom Trishkin #:

Ragazzi, non importa come lo vogliate fare, se non ricordate il valore dell'indice del ciclo sull'ultimo controllo, allora avete un ciclo che attraversa tutta la storia disponibile. E più ce n'è, più lungo è il ciclo.

Non sono sicuro.

Ho altri 2 EAs con un design simile di controllo della redditività ed entrambi passano l'intera storia nel tester entro 15-20 minuti.

 
законопослушный гражданин #:

Non sono sicuro.

Ho altri 2 EA con lo stesso design di controllo dei lotti ed entrambi passano l'intera storia nel tester in 15-20 minuti

Beh, dipende da voi. Non ho intenzione di discutere.

 
MakarFX #:

cambiare l'override dell'ordine

allo stesso modo

 
законопослушный гражданин #:

Sì, qualsiasi coppia.

Uso M15 per AUD/USD.

Ho avuto lo stesso problema con il tuo indicatore (allegato)

Ho scoperto con il metodo dell'eliminazione che questa cosa rallenta il processo:

Mettere in cache i risultati (in variabili). E la cache dovrebbe essere aggiornata se l'elenco degli ordini è cambiato. E se non è cambiato nulla, allora restituisce semplicemente i valori dalla cache.

 
Artyom Trishkin #:

Ragazzi, non importa come lo vogliate fare, se non ricordate il valore dell'indice del ciclo sull'ultimo controllo, allora avete un ciclo che attraversa tutta la storia disponibile. E più ce n'è, più lungo è il ciclo.

Bisogna sempre pensare che ci sarà un'interruzione di corrente e così via.

Un EA della storia dovrebbe essere configurato e funzionante in qualsiasi momento.

 
Volodymyr Zubov #:

Bisogna sempre pensare alle interruzioni di corrente e così via...

Il consulente della storia dovrebbe essere configurato e funzionante in qualsiasi momento.

C'è un VPS per mantenere le luci accese.

 
Sì, non hai bisogno di una variabile locale per trovare l'ordine
 

Capisco più o meno perché ci sono problemi.

Ora voglio fare quanto segue:

pulire void OnTick

void OnTick()
{
// Получим значение индикатора
   dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
   if(CountOrders()==0)
   {
  
// Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenSell();
   }
}

il segnale per renderlo così:

bool bSignalBuy()
  {
   if (openPrice > Open[1] && openPrice < Close[1]) //Open[1] и Close[1]- цены открытия и закрытия каждого бара текущего графика.
   
  return(true);
   
  return(false);
  }
//+-----------------------------------------------------------------------------------------------+
//|                                                             Функция поиска сигнала на продажу |
//+-----------------------------------------------------------------------------------------------+
bool bSignalSell()
  {
   if(openPrice< Open[1] && openPrice > Close[1])

   return(true);

   return(false);
  }

doveopenPrice cerca di esprimerlo in questo modo, ma dà un errore:

possibile perdita di dati a causa della conversione del tipo

Sto usando correttamente la funzione void?

  void openPrice()
  {
  int OP=0;
  
  if (GetLotSize()>LotControl) OP = dMA + Deviation * _Point;
  else OP = dMA;
  }
 

Ha fatto sì che una linea segua il cursore del mouse dopo aver premuto un pulsante attraverso draw e delete

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
  {    
    if(ObjectGetInteger(0,"button_bs",OBJPROP_STATE)){
      int      x     =(int)lparam;
      int      y     =(int)dparam;
      datetime dt    =0;
      double   price =0;
      int      window=0;
     
      if(id == CHARTEVENT_MOUSE_MOVE){
        if(ChartXYToTimePrice(0,x,y,window,dt,price)){
            ObjectDelete(0,"H Line");
            ObjectCreate(0,"H Line",OBJ_HLINE,window,dt,price);
            ChartRedraw(0);
        }
      }
    }
    else{
      ObjectDelete(0,"H Line");
    }
  }

Forse c'è un altro modo? Il radiatore della CPU comincia a diventare rumoroso :)

 
Volodymyr Zubov #:

Bisogna sempre pensare alle interruzioni di corrente e così via...

Un consigliere della storia dovrebbe essere configurato e funzionante in qualsiasi momento.

Dovrebbe. Quindi, come si fa a ricordare l'indice del ciclo per evitare che vada nella storia dopo un riavvio?