Benutzerdefinierte Symbole. Fehler, Bugs, Fragen, Vorschläge. - Seite 9

 
Andrey Khatimlianskii:

Gegossen 2009 und 2025 in den ehemaligen Standort.

Danke. Ich habe die Builds 1970+ ausprobiert - alle haben diesen Fehler, bis man die benutzerdefinierten Charaktere hart wiederherstellt, indem man im selben Account bleibt.

 
fxsaber:

2009:

2033:

 

Fehler 10.

Das Symbol kann nicht gelöscht werden.

#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
 

Fehler 11.

CustomTicksAdd bildet keine Balken.

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

Es werden keine Balken auf dem offenen Chart gebildet. In Market Watch werden die Ticks aktualisiert.

 

Fehler 12.

Wenn ein benutzerdefiniertes Symbol von Grund auf neu erstellt wird (z. B. mit STRG+U), ist das maximale Volumen so festgelegt, dass der Tester nicht in der Lage ist, seinen Gewinn zu berechnen.

#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); // После закрытия этой позиции ее профит будет нулевым.
}
 
Aus irgendeinem Grund bekommen die Entwickler in diesem Thread keine reproduzierbaren Bugs in die Finger.
 
fxsaber:
Aus irgendeinem Grund bekommen die Entwickler in diesem Thread keine reproduzierbaren Bugs in die Finger.
Wir sollten sie wahrscheinlich dazu einladen.
 

lud Slava Stringo ein.

Ich gebe ein benutzerdefiniertes Instrument in dieses Feld ein (Anhang 1). Es wird ohne Anführungszeichen geöffnet. Wenn ich es über das Menü öffne, ist alles in Ordnung.

Anhang 2 ist nur ein Wort.

anlage 3: ich habe diesen knopf satt, niemand braucht ihn. machen sie eine option, um ihn auszublenden. es gibt eine hilfe. machen wir eine umfrage.

cpsb

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

lud Slava Stringo ein.

Ich gebe ein benutzerdefiniertes Instrument in dieses Feld ein (Anhang 1). Es wird ohne Anführungszeichen geöffnet. Wenn ich es über das Menü öffne, ist alles in Ordnung.

Anhang 2 ist nur ein Wort.

So laden sie nicht ein.

Also: @Slava

 
fxsaber:

Fehler 07.

Tester bildet Barren durch Last für den Austausch benutzerdefinierter Symbole mit Bid-Preis der Bar Gebäude.

Daher weichen die Balkenverläufe im Terminal und im Strategietester völlig voneinander ab. Und wenn jemand Bars in TS verwendet (z.B. Indikatoren), ist das Ergebnis des Backtests für ihn/sie zufällig.

Zeigt die Spezifikation des benutzerdefinierten Symbols an.

Und geben Sie die benutzerdefinierten Häkchen.

Um etwas zu reparieren, muss man es zuerst reproduzieren