Errori, bug, domande - pagina 2174

 

Lavaluta del profitto (SYMBOL_CURRENCY_PROFIT) del simbolo personalizzato viene resettata dopo il riavvio del terminale. A causa di questo, il TickValue è spesso zero, il che genera trade con profitto zero nello Strategy Tester. Ogni volta, dobbiamo restituire il valore della valuta di profitto ad un valore normale.


Riproduzione

void OnStart()
{
  const string Name = "EXAMPL";
  
  if (CustomSymbolCreate(Name))
    CustomSymbolSetString(Name, SYMBOL_CURRENCY_PROFIT, "JPY");

  Print(SymbolInfoString(Name, SYMBOL_CURRENCY_PROFIT)); // "JPY" - до перезагрузки Терминала, "MPL" - после.
}
 
Sui simboli personalizzati nel Tester si ottengono graals a causa dello slippage positivo degli ordini limite. Si prega di disabilitare lo slippage degli ordini limite per i simboli personalizzati, o di regolare lo slippage (e la commissione).
 

Nessuna opzione per disabilitare Core1-Agent.

Nessun modo per eseguire una singola corsa

2018.03.27 09:18:19.647 Core 1  agent process started
2018.03.27 09:18:28.380 Core 1  connecting to 127.0.0.1:3000
2018.03.27 09:18:45.562 Core 1  tester agent authorization error
2018.03.27 09:18:45.564 Core 1  connection closed

Riavviare il terminale non aiuta.


HH Ecco come avviene l'ottimizzazione da soli due passaggi(animazione)

Ci sono continui errori di autorizzazione sugli agenti finché non si verificano connessioni normali. E questo solo su due passaggi!

 

C'è una grave mancanza di una lista di simboli disponibili tra cui scegliere.

 
fxsaber:

Non c'è un'opzione per disabilitare Core1-Agent.


Vorrei anche disabilitare il primo nucleo.
 

Oltre a questo

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

Bug, bug, domande

Kirill Belousov, 2018.03.26 12:30

I nomi sono diversi e la cancellazione è fatta tenendo conto di questo.


SALVARE QUELLO:

_______________________________________

Quando si cancella il primo indicatore nell'elenco delle sottofinestre, la sottofinestra viene completamente cancellata dagli oggetti (anche le linee disegnate manualmente, le frecce, le etichette di testo vengono cancellate)

Riprodotto:

1. Creare nel costruttore un indicatore vuoto per una finestra separata (o prendere qualsiasi indicatore esistente, per esempio MACD, ecc. dal set di consegna standard)

2. Aggiungere 5 indicatori/copie a una sottofinestra

3. Disegna manualmente una linea verticale in una sottofinestra (o in qualsiasi oggetto).

Se rimuovete qualsiasi indicatore che non sia il primo dalla lista degli indicatori, la linea rimarrà, ma se il primo è nella lista, tutti gli oggetti sottofinestra saranno cancellati (linea verticale disegnata).

Se tracciate di nuovo una linea dopo aver cancellato la prima, questa sarà cancellata di nuovo quando la prima delle rimanenti sarà cancellata. Quando non viene cancellato il primo, gli oggetti nella sottofinestra non vengono cancellati.


Dove è scritto nella documentazione? Cosa lo rende così speciale - il primo indicatore nella lista delle sottofinestre?

Sembra che ci sia una completa reinizializzazione della sottofinestra.


Riprodotto da MT4/MT5.

La differenza è che in MT5 i nomi dei file degli indicatori dovrebbero essere diversi. In MT4, è possibile mettere lo stesso file indicatore in una sottofinestra senza cambiare il nome del file.


Problema con l'indicatore della prima sottofinestra

Tutti gli oggetti sono cancellati in una sottofinestra, se l'indicatore era il primo nella lista degli indicatori di una sottofinestra al momento della sua cancellazione

Quando si elimina il primo indicatore dalla lista degli indicatori in una sottofinestra, tutti gli oggetti della sottofinestra vengono rimossi PRIMA di OnDeinit()

void OnDeinit(const int reason)
  {
  int window=ChartWindowFind();
  if(window==2)
  {
  int count=0;
  for(int i=ObjectsTotal()-1;i>=0;i--)
    {
     if(ObjectFind(ObjectName(i))==window) count++;
    }
  Alert("Осталось объектов в подокне #2 - ",count," _StopFlag=",_StopFlag," REASON=",reason);
  }
//....
}

Cancelliamo non il primo, ma il primo della lista

Tutti gli oggetti vengono cancellati

Tutti gli oggetti vengono cancellati, indipendentemente dal fatto che siano indicatori o oggetti creati manualmente in una sottofinestra.
 

Eseguire il consulente in modalità "All ticks" su MQ-Demo

void OnTick()
{
  static int i = 0;
  
  if (i < 2)
  {
    MqlTick Tick;
    
    if (SymbolInfoTick(_Symbol, Tick))
      Print(Tick.time_msc);
      
    i++;
  }
  else
    ExpertRemove();
}


Risultato

Si-6.18,M1 (MetaQuotes-Demo): every tick generating
Si-6.18,M1: testing of Experts\fxsaber\LimitsSlippage.ex5 from 2018.03.25 00:00 to 2018.03.27 00:00 started
2018.03.26 10:00:00   1522058400378
2018.03.26 10:00:00   1522058400013
2018.03.26 10:00:00   ExpertRemove() function called

Il tempo del primo tick generato è più lungo del secondo - bug.

 
L'ottimizzatore va in loop infinito con i seguenti messaggi ripetuti (tutti e tre i passaggi sono stati avviati)
2018.03.27 23:13:54.520 Core 2  TESTER_EURUSD: history for 2017 year synchronized
2018.03.27 23:13:54.578 Core 1  pass 0 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.125
2018.03.27 23:13:54.580 Core 2  pass 1 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.124
2018.03.27 23:13:54.580 Core 3  pass 2 tested with error "history processing error (314 TESTER_EURUSD)" in 0:00:00.124
2018.03.27 23:13:54.600 Core 5  common synchronization completed


Riproduzione ZS


Copia il contenuto dell'archivio allegato nella sandbox.

Eseguire lo script su MQ-Demo

#include <fxsaber\ThirdPartyTicks\ThirdPartyTicks.mqh> // https://www.mql5.com/ru/code/20225

void OnStart()
{
  THIRDPARTYTICKS ThirdPartyTicks; // Подключились к локальному архиву котировок

  const string Name = ThirdPartyTicks["EURGBP"].ToCustomSymbol(true); // Создали кастомный символ на основе локального архива  
  
  if (Name != NULL)
  {
    const SYMBOL Symb("TESTER"); // Создали символ
  
    if (Symb.IsExist()) // Если символ создан
    {
      Symb.CloneProperties("Si-6.18");      
      Symb.SetProperty(SYMBOL_DIGITS, 5);
      
      Symb.CloneHistory(Name);
  
      if (Symb.On()) // Включили в Обзор рынка
        ChartOpen(Symb.Name, PERIOD_CURRENT); // Открыли график нового символа
    }   
  }
}


Verrà creato un simbolo TESTER personalizzato. Selezionatelo nel Tester. Impostazione: Ottimizzazione lenta, Tutti i tic.

Aggiungi questo EA

input int Range = 0;

void OnTick() {}


Scheda Opzioni


Avviare l'ottimizzazione e guardare questo ciclo infinito


File:
Archive.zip  1729 kb
 

Nel Tester, agli ordini remoti su "no money" viene assegnato un tempo di chiusura pari a zero

Questo è un bug, ovviamente.

 

Sono l'unico con un'immagine di questo post che non si apre in un nuovo popup? Mozilla FireFox 59.0.2 (64bit)

Cioè, l'immagine che è nella citazione non si apre.