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

 
fxsaber:
Benutzerdefinierte Symbole auf dem Real dienen nur der Information, nicht dem Handel. Sie können nur für den Handel mit dem Testgerät verwendet werden.

Benutzerdefinierte Symbole auf Real können als Indikator für die Öffnung oder Schließung von Real-Instrumenten verwendet werden.

 
Aidas Geguzis:

Benutzerdefinierte Symbole können als Indikator für die Öffnung oder Schließung von realen Instrumenten verwendet werden.

Sie undfxsaber :Danke, und kein Wort darüber in der Dokumentation. Der Grund dafür ist, wie immer, dass die Informationen im Forum und durch Mundpropaganda gesammelt werden sollen. Ich dachte, sie hätten eine Art Paar- oder N-Tool-Handel mit Hilfe des Terminals implementiert, und ich dachte auch darüber nach, wie sie mit der Lot-Multiplikation umgehen. Jetzt sehe ich, dass es für mich wahrscheinlich nutzlos ist.

 

Fehler 05.

Fehler CustomTicksAdd.

template <typename T>
T MyPrint( const T Value, const string Str, const bool DebugFlag = false ) { Print(Str + " = " + (string)Value); return(Value); }
#define _P(A) MyPrint(A, __FUNCSIG__ ", Line = " + (string)__LINE__ + ": " + #A)                    // Макрос для удобного и наглядного вывода значений

void OnStart()
{
  const string Name = "TEMP9";                                                                      // Имя кастомного символа
  const string SymbOrig = "EURUSD";                                                                 // Имя оригинального символа

  MqlTick Ticks[];
  const int Size = _P(CopyTicksRange(SymbOrig, Ticks, COPY_TICKS_ALL, (long)D'2019.01.01' * 1000)); // Считали EURUSD-тики за 2019 год.
    
  if ((Size > 0) && _P(CustomSymbolCreate(Name, NULL, SymbOrig)) && _P(SymbolSelect(Name, true)))   // Создали символ на основе EURUSD.
  {            
    _P(CustomTicksAdd(Name, Ticks));                                                                // Поместили в него историю EURUSD через CustomTicksAdd
  
    MqlTick AddTicks[1];
    AddTicks[0] = Ticks[Size - 1];                                                                  // Взяли последний тик
       
    AddTicks[0].time += 3600;                                                                       // И к его времени добавили час
    AddTicks[0].time_msc = (long)AddTicks[0].time * 1000;                                           
    
    _P(CustomTicksDelete(Name, (ulong)D'2019.02.01 00:00' * 1000, LONG_MAX));                       // Удалили все тики, оставив только данные за январь 2019.
    _P(CopyTicksRange(Name, Ticks));                                                                // Посмотрели, сколько тиков осталось.
    
    _P(CustomTicksAdd(Name, AddTicks));                                                             // Пробросили один тик.
    
    _P(CopyTicksRange(Name, Ticks));                                                                // Увидели, что добавился не один тик, а 129.
    _P(CustomTicksDelete(Name, (ulong)D'2019.02.01 00:00' * 1000, LONG_MAX));                       // Делаем повторное удаление - да, 129!

    _P(SymbolSelect(Name, false));                                                                  // Удалили символ из Обзора рынка.
    _P(CustomSymbolDelete(Name));                                                                   // Удалили символ.         
  }
}


Ergebnis

void OnStart(), Line = 11: CopyTicksRange(SymbOrig,Ticks,COPY_TICKS_ALL,(long)D'2019.01.01'*1000) = 3316638
void OnStart(), Line = 13: CustomSymbolCreate(Name,NULL,SymbOrig) = true
void OnStart(), Line = 13: SymbolSelect(Name,true) = true
void OnStart(), Line = 15: CustomTicksAdd(Name,Ticks) = 3316638
void OnStart(), Line = 23: CustomTicksDelete(Name,(ulong)D'2019.02.01 00:00'*1000,LONG_MAX) = 1158959
void OnStart(), Line = 24: CopyTicksRange(Name,Ticks) = 2157552
void OnStart(), Line = 26: CustomTicksAdd(Name,AddTicks) = 1
void OnStart(), Line = 28: CopyTicksRange(Name,Ticks) = 2157681
void OnStart(), Line = 29: CustomTicksDelete(Name,(ulong)D'2019.02.01 00:00'*1000,LONG_MAX) = 129
void OnStart(), Line = 31: SymbolSelect(Name,false) = true
void OnStart(), Line = 32: CustomSymbolDelete(Name) = true


Es werden mehr Häkchen als angegeben hinzugefügt.

 

Irgendetwas an den synthetischen Komponenten frisst Speicher und verlangsamt den Start des Terminals. Ich habe gestern zwei synthetische Stoffe hergestellt und für jeden von ihnen eine Tabelle erstellt. Heute startete das Terminal drei Minuten(!!!), der RAM-Verbrauch im Task-Manager betrug 1,88 Gb. Diese Diagramme entfernt, Kunststoffe ausgeblendet, Startzeit 20 Sek. wie vorher, RAM-Verbrauch 490 MB. Bild 2006, Max bars in window - Unlimited.

Auf der ersten synthetischen hatte Formel von Hilfe:

1

Auf der zweiten eine einfache Formel:

0,5 * (Brief(EURUSD) + Brief(USDCAD))

Запуск платформы - Для продвинутых пользователей - MetaTrader 5
Запуск платформы - Для продвинутых пользователей - MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 
Alexey Volchanskiy:

Irgendetwas an den synthetischen Komponenten frisst Speicher und verlangsamt den Start des Terminals. Ich habe gestern zwei synthetische Stoffe hergestellt und für jeden von ihnen eine Tabelle erstellt. Heute startete das Terminal drei Minuten(!!!), der RAM-Verbrauch im Task-Manager betrug 1,88 Gb. Diese Diagramme entfernt, Kunststoffe ausgeblendet, Startzeit 20 Sek. wie vorher, RAM-Verbrauch 490 MB. Bild 2006, Max bars in window - Unlimited.

Auf der ersten synthetischen hatte Formel von Hilfe:

Auf der zweiten eine einfache Formel:

0,5 * (Brief(EURUSD) + Brief(USDCAD))

Wenn sie synthetisch ausgeführt wird, verbraucht sie eine Menge SSD-Festplattenressourcen. Wenn die SSD-Festplatte langsam ist, kann der Start des Terminals 10 Minuten dauern, wenn es mehrere synthetische Dateien gibt.

Ich spreche nicht einmal von der Verwendung von HDD für Terminals mit Kunststoffen.

Als ich ein schnelles Laufwerk (Samsung 970 Pro) einlegte, hörten alle Probleme mit dem Terminalstart und den Synthesen auf.

Der Arbeitsspeicher beträgt beim Start des Terminals etwa 12 GB, der Prozessor i7-6700K wird verwendet.

 
fxsaber:

Fehler 05.

Fehler CustomTicksAdd.

Es werden mehr Häkchen als angegeben hinzugefügt.

2007 - es wurde noch schlimmer. CustomTicksAdd fügt 63969 Ticks anstelle von einem hinzu.

void OnStart(), Line = 24: CopyTicksRange(Name,Ticks) = 2157552
void OnStart(), Line = 26: CustomTicksAdd(Name,AddTicks) = 1
void OnStart(), Line = 28: CopyTicksRange(Name,Ticks) = 2221521
void OnStart(), Line = 29: CustomTicksDelete(Name,(ulong)D'2019.02.01 00:00'*1000,LONG_MAX) = 63969


SZY 2007 - alle Bugs sind aktuell.

 
fxsaber:

Fehler 02.

Auch ChartRedraw hat keinen visuellen Effekt.

Nur wenn Sie das Diagramm mit der Maus verschieben, wird es wieder normal angezeigt. Können Sie die Visualisierung durch ChartRedraw verbessern?

Empfehlen Sie eine Möglichkeit, das Diagramm nach CustomRatesUpdate zu aktualisieren, so dass die aktualisierten Balken zwangsweise gezeichnet werden, und nicht nur, wenn es selbst entscheidet, dies zu tun.

 
Aus irgendeinem Grund kann ein benutzerdefiniertes Symbol aus der Marktbeobachtung entfernt werden, selbst wenn der entsprechende Chart geöffnet ist.
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Neue Version von MetaTrader 5 build 2007: Wirtschaftskalender, MQL5 Services und API für R

fxsaber, 2019.02.22 12:40

Ist es richtig, dass nach RatesUpdate in OnCalculate prev_calculated immer auf Null zurückgesetzt wird?

Denn wenn ich zum Beispiel einen neuen Balken aktualisiere, muss ich nicht den gesamten Indikator neu berechnen.

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Neue Version von MetaTrader 5 build 2007: Wirtschaftskalender, MQL5 Services und API für R

fxsaber, 2019.02.22 12:14

Eine große Bitte: Wenn es kein Symbol, aber seine tkc-Dateien gibt, löschen Sie sie.

Angesichts einer Situation, in der das Terminal abnormalerweise abstürzte.

Ich gehe hinein und sehe, dass mein Symbol nicht da ist. Erstellen Sie einfach ein Symbol mit demselben Namen und zeigen Sie es mit dem Verlauf von tkc an. Es sieht nach einem Fehler aus.

Grund der Beschwerde: