Símbolos personalizados. Erros, bugs, perguntas, sugestões. - página 9

 
Andrey Khatimlianskii:

Desembarcou em 2009 e 2025 no local anterior.

Obrigado. Tried builds 1970+ - todos têm este bug até que você recrie com força os caracteres personalizados, permanecendo dentro da mesma conta rasgada.

 
fxsaber:

2009:

2033:

 

Bug 10.

O símbolo não pode ser apagado.

#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 não forma barras.

// Проигрываем тиковую историю через таймер.
#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);
  }
}

As barras não serão formadas na tabela aberta. Em Market Watch, os carrapatos são atualizados.

 

Bug 12.

Ao criar um símbolo personalizado a partir do zero (via CTRL+U, por exemplo) o volume máximo é prescrito de tal forma que o testador é incapaz de calcular seu lucro.

#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); // После закрытия этой позиции ее профит будет нулевым.
}
 
Por alguma razão, os desenvolvedores não põem suas mãos em bugs reprodutíveis neste tópico.
 
fxsaber:
Por alguma razão, os desenvolvedores não conseguem deitar as mãos a bugs reprodutíveis neste tópico.
Provavelmente deveríamos convidá-los a entrar
 

convidou Slava Stringo.

eu digito um instrumento personalizado neste campo (anexo 1). ele abre sem aspas. se eu o abrir através do menu, tudo está bem.

O anexo 2 é apenas uma palavra.

anexo 3: farto deste botão, ninguém precisa dele. faça uma opção para escondê-lo. há uma ajuda. vamos fazer uma pesquisa.

cpsb

Arquivos anexados:
x34zq9.PNG  2 kb
1wvlwh2.PNG  10 kb
qfd9jf.PNG  2 kb
 
superman:

convidou Slava Stringo.

eu digito um instrumento personalizado neste campo (anexo 1). ele abre sem aspas. se eu o abrir através do menu, tudo está bem.

O anexo 2 é apenas uma palavra.

Não é assim que eles convidam.

Portanto: @Slava

 
fxsaber:

Bug 07.

O Testador forma barras por último para troca de símbolos personalizados com preço de licitação de construção de barras.

Portanto, o histórico da barra no Terminal e no Testador de Estratégia é completamente diferente. E se alguém usa barras no TS (indicadores, por exemplo), o resultado do backtest é aleatório para ele/ela.

Mostrar a especificação do símbolo personalizado.

E dê os carrapatos personalizados.

Para consertar algo, você tem que reproduzi-lo primeiro