Errori, bug, domande - pagina 1897

 
Konstantin:
il mio calcolo funziona così:
come finisce per essere corretto?

Non è chiaro quale sia il dubbio - la mia logica è semplice - calcolate quanto è stato speso per comprare beni in totale (se dimentichiamo il margine) e dividete per il numero totale di unità acquistate - questo sarà il prezzo medio di un bene - cioè il pareggio.

 

Ricordo che gli sviluppatori parlavano della possibilità di scambiare dati tra agenti. Dove posso vedere un esempio?

Sembra che il canale del frame sia unidirezionale - dagli agenti al terminale, ma non viceversa.

 
Errore di esecuzione
void OnStart()
{
  int Array[];
  
  Array[ArrayResize(Array, ArraySize(Array) + 1) - 1] = 0; // array out of range
}
 
Errore di esecuzione
struct INT
{
  int Array[];
};

void OnStart()
{
  INT i = {0}; //  Если убрать "= {0}" - ошибка выполнения исчезает
  
  Print(ArrayResize(i.Array, 5)); // -1
}
 
Se la struttura contiene stringhe e array come questo {0} meglio non inizializzarlo, mi ha lanciato un'eccezione.
 

Gli agenti locali restituiscono lo stesso valore TerminalInfoInteger(TERMINAL_DLLS_ALLOWED) finché non ricaricate il terminale.

Per esempio, volete che gli agenti DLL non vengano eseguiti. Si deseleziona la casella di controllo DLL nel terminale, e gli agenti continuano ad essere "felici".


 
Комбинатор:
Se ci sono stringhe e array nella struttura come questa {0} meglio non inizializzarla, nel mio caso ha lanciato un'eccezione.
Sembra che ci sia una potenziale vulnerabilità.
 
fxsaber:

Ricordo che gli sviluppatori parlavano della possibilità di scambiare dati tra agenti. Dove posso vedere un esempio?

Sembra essere un canale a senso unico - dagli agenti al terminale, ma non il contrario.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Lavorare con i file Expert Advisor nello Strategy Tester

Renat Fatkhullin, 2012.08.27 01:41

Quando si lavora con clud o agenti remoti, i file utilizzati (per la lettura) devono essere chiaramente specificati attraverso la #proprietà tester_file "myfile1.dat". In questo caso, il tester passa questi file al cloud insieme al sorgente EA, con modifiche a questo file controllate e memorizzate nella cache dei server e degli agenti del cloud.

È possibile trasferire grandi quantità di dati grezzi alle nuvole e ricevere calcoli che includono dati massicci tramite FrameAdd() nella relazione.

Posso cambiare i file_file tester in OnTesterPass e quindi trasferire le informazioni richieste al Cloud?
 
fxsaber:

Nel file standard MQL5\Experts\Examples\Moving Average\Moving Average.mq5

Un controllo magico è stato mancato in TradeSizeOptimized.

Si prega di controllare questa variante.

Da parte mia ho eseguito 9 istanze di questo EA con diverse impostazioni e magie per fare trading online sul VPS incorporato - guarderò https://www.mql5.com/ru/signals/305333.

Торговые сигналы для MetaTrader 5: Standard Moving Average 9 instances
Торговые сигналы для MetaTrader 5: Standard Moving Average 9 instances
  • Rashid Umarov
  • www.mql5.com
Торговый Сигнал Standard Moving Average 9 instances для MetaTrader 5: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
File:
 
Rashid Umarov:

Date un'occhiata a questa opzione, per favore.

Da parte mia, ho eseguito 9 istanze di questo EA con diverse impostazioni e magie per fare trading online sul VPS integrato - guarderò https://www.mql5.com/ru/signals/305333.

La selezione dei lotti di questo EA è influenzata da qualsiasi trade di terzi (incluse altre istanze) sul simbolo originale.

In questo pezzo succede

      HistorySelect(0,TimeCurrent());
      //---
      int    orders=HistoryDealsTotal();  // total history deals
      int    losses=0;                    // number of losses orders without a break

      for(int i=orders-1;i>=0;i--)
        {
         ulong ticket=HistoryDealGetTicket(i);
         if(ticket==0)
           {
            Print("HistoryDealGetTicket failed, no trade history");
            break;
           }
         //--- check symbol
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)!=_Symbol)
            continue;
         //--- check profit
         double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         if(profit>0.0)
            break;
         if(profit<0.0)
            losses++;
        }
      //---
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Motivazione: