Simboli personalizzati. Errori, bug, domande, suggerimenti. - pagina 9

 
Andrey Khatimlianskii:

Versato 2009 e 2025 nella sede precedente.

Grazie. Provato builds 1970+ - tutti hanno questo bug fino a quando non si ricreano i personaggi personalizzati, rimanendo all'interno dello stesso account tore.

 
fxsaber:

2009:

2033:

 

Bug 10.

Il simbolo non può essere cancellato.

#define  PRINT(A) Print(#A + " = " + (string)(A))

void OnStart()
{
  MathSrand((uint)TimeLocal());
  
  const string Name = _Symbol + (string)MathRand();

  PRINT(CustomSymbolCreate(Name));

  PRINT(CustomRatesDelete(Name, 0, 0)); // Без этой строки удаление работает.
  
  PRINT(CustomSymbolDelete(Name)); // false
  PRINT(GetLastError());  
}


CustomSymbolCreate(Name) = true
CustomRatesDelete(Name,0,0) = 0
CustomSymbolDelete(Name) = false
GetLastError() = 5306
 

Bug 11.

CustomTicksAdd non forma barre.

// Проигрываем тиковую историю через таймер.
#define  PRINT(A) Print(#A + " = " + (string)(A))

void OnInit()
{
  if (EventSetMillisecondTimer(20)) // С такой частотой будем пробрасывать тики
    MathSrand((uint)TimeLocal());  
}

void OnTimer()
{
  static const string Name = _Symbol + (string)MathRand();
  
  static bool FirstRun = true;
  static MqlTick Ticks[];
  static int Pos = 0;
    
  if (FirstRun)
  {
    PRINT(CustomSymbolCreate(Name, NULL, _Symbol)); // Создали символ.
  
    PRINT(CustomRatesDelete(Name, 0, 0)); // Без этой строки работает.    
    PRINT(SymbolSelect(Name, false));     // https://www.mql5.com/ru/forum/304554/page9#comment_11680616
    
    PRINT(CustomSymbolDelete(Name));                // Убили.
    PRINT(CustomSymbolCreate(Name, NULL, _Symbol)); // Воскресили.
    
    if (SymbolSelect(Name, true)) // Поместили в Обзор рынка
    {
      ChartOpen(Name, PERIOD_M1);            // Открыли чарт
      PRINT(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_INFO, (TimeCurrent() - 3600) * 1000)); // Взяли тики (последний час) для проброса
    }
      
    FirstRun = false;
  }
  else if (Pos < ArraySize(Ticks))
  {
    MqlTick Tick[1];
    
    // Пробрасываем по тику
    Tick[0] = Ticks[Pos++];
    CustomTicksAdd(Name, Tick);
  }
}

Le barre non si formano sul grafico aperto. In Market Watch, i tick sono aggiornati.

 

Bug 12.

Quando si crea un simbolo personalizzato da zero (tramite CTRL+U per esempio) il volume massimo è prescritto in modo tale che il tester non è in grado di calcolare il suo profitto.

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnInit()
{
  // Именно такой макс. объем автоматом прописывается при создании кастомного символа с нуля.
  const double Lot = 1 e11; // SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX)
  
  OrderSend(_Symbol, OP_BUY, Lot, Ask, 0, 0, 0); // После закрытия этой позиции ее профит будет нулевым.
}
 
Per qualche ragione, gli sviluppatori non mettono le mani sui bug riproducibili in questo thread.
 
fxsaber:
Per qualche ragione gli sviluppatori non mettono le mani sui bug riproducibili in questo thread.
Probabilmente dovremmo invitarli a entrare
[Eliminato]  

ha invitato Slava Stringo.

inserisco uno strumento personalizzato in questo campo (allegato 1). si apre senza virgolette. se lo apro attraverso il menu, tutto è ok.

L'allegato 2 è solo una parola.

allegato 3: stanco di questo pulsante, nessuno ne ha bisogno. fai un'opzione per nasconderlo. c'è un aiuto. facciamo un sondaggio.

cpsb

File:
x34zq9.PNG  2 kb
1wvlwh2.PNG  10 kb
qfd9jf.PNG  2 kb
 
superman:

ha invitato Slava Stringo.

inserisco uno strumento personalizzato in questo campo (allegato 1). si apre senza virgolette. se lo apro attraverso il menu, tutto è ok.

L'allegato 2 è solo una parola.

Non è così che invitano.

Quindi: @Slava

 
fxsaber:

Bug 07.

Tester forma barre da Ultimo per simboli personalizzati di scambio con prezzo di offerta di costruzione della barra.

Pertanto, la cronologia delle barre nel Terminale e nello Strategy Tester diverge completamente. E se qualcuno usa le barre in TS (indicatori, per esempio), il risultato del backtest è casuale per lui/lei.

Mostra la specifica del simbolo personalizzato.

E dare le zecche personalizzate.

Per aggiustare qualcosa, bisogna prima riprodurla