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

 

Fehler 21.


2085

Nach der Wiederherstellung der Verbindung zum Server werden alle erstellten benutzerdefinierten Symbole der Marktübersicht hinzugefügt.
Das ist gut, wenn der Markt an den Wochenenden geschlossen ist.
Der Server stellt gelegentlich eine neue Verbindung her, oder nach einem Neustart des Terminals im Moment der Verbindungsherstellung,
Das Diagramm des Standardsymbols kann neu starten und einen Tick machen, in diesem Moment werden alle erstellten benutzerdefinierten Symbole von selbst zur Marktübersicht hinzugefügt.

 

Anregung.

Bitte fügen Sie den BezeichnerSYMBOL_VOLUME_INITIAL fürSymboleigenschaften hinzu und zeigen Sie seinen Wert in der Spezifikation an.
Und fügen Sie einen geeigneten Bezeichner hinzu, um seinen Wert aufzurufen.

CustomSymbolSetDouble(SName, SYMBOL_VOLUME_INITIAL, 0.00000000);           Результат: Initial volume == 0.00000000
 
Roman:

Fehler 20.

2085
Falsche Einstellung von benutzerdefinierten Zeicheneigenschaften.



Wo ist der Code für die Wiedergabe?

 
Slava:

Wo ist der Code für die Wiedergabe?

In der Nachricht mit Fehler 20 sind die Identifikatoren aufgeführt. Haben Sie sie nicht in der Nachricht angezeigt?

 

Fehler 22.

Ein Rollover eines Ticks verändert seinen Preis um den Faktor 10.

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

void OnStart()
{
  MathSrand((int)TimeLocal());  
  const string Name = "CUSTOM_" + _Symbol + (string)MathRand(); // Создали символ    
  
  PRINT(CustomSymbolCreate(Name)); // Создали символ по-умолчанию.
  
  // Если удалить любую из двух строк ниже, то результат будет нормальным.
  PRINT(CustomTicksDelete(Name, 0, LONG_MAX)); // Удалили тиковую историю (ее на самом деле нет).
  PRINT(CustomSymbolDelete(Name)); // Удалили символ
  
  PRINT(CustomSymbolCreate(Name, NULL, _Symbol)); // Создали символ на основе главного.
    
  PRINT(SymbolSelect(Name, true)); // Добавили в Обзор рынка.

  MqlTick Tick[1];
  PRINT(SymbolInfoTick(_Symbol, Tick[0])); // Взяли свежий тик для проброса.
  ArrayPrint(Tick); // Показали тик.
  
  PRINT(CustomTicksAdd(Name, Tick)); // Пробросили тик.
  
  MqlTick NewTicks[];
  PRINT(CopyTicksRange(Name, NewTicks));  
  ArrayPrint(NewTicks); // Показали, что на самом деле пробросили.
}


Ergebnis

CustomSymbolCreate(Name) = true
CustomTicksDelete(Name,0,LONG_MAX) = 0
CustomSymbolDelete(Name) = true
CustomSymbolCreate(Name,NULL,_Symbol) = true
SymbolSelect(Name,true) = true
SymbolInfoTick(_Symbol,Tick[0]) = true
                 [time]   [bid]   [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[0] 2019.06.17 02:08:35 1.12152 1.12157 0.0000        0 1560737315178       2       0.00000
CustomTicksAdd(Name,Tick) = 1
CopyTicksRange(Name,NewTicks) = 1
                 [time]    [bid]    [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[0] 2019.06.17 02:08:35 11.21520 11.21570 0.0000        0 1560737315178       6       0.00000
 

Hallo zusammen

Ich verwende mt zum ersten Mal und brauche es für die Datenanalyse und die grafische Darstellung.

Ichhabe ein Symbol erstellt und Balken aus einer CSV-Datei geladen. Ich kann die dicke Datendatei im Insta-Verzeichnis sehen.

Symbol aktiviert, in Marktbeobachtung

Diagramm nicht anzeigen - "Warten auf Aktualisierung


Habe ich etwas verpasst?

Ich habe es sowohl in mt4 als auch in mt5 ausprobiert - alles ist dasselbe

Demo-Charts - Springen laufen

 
Roman:

In der Nachricht mit Fehler 20 sind die Identifikatoren aufgeführt. Haben Sie sie nicht in der Nachricht angezeigt?

Nochmals. Wo ist der reproduzierbare Code?

Die Identifikatoren werden angezeigt. Was mich zu meiner Frage bringt: Was hat ORDER_FILLING_XXX damit zu tun? Haben Sie die Dokumentation sorgfältig gelesen?

 
Slava:

Ein weiteres Mal. Wo ist der reproduzierbare Code?

Die Identifikatoren werden angezeigt. Was mich zu meiner Frage bringt: Was hat ORDER_FILLING_XXX damit zu tun? Haben Sie die Dokumentation sorgfältig gelesen?

Weil wir den Füllmodus fürSYMBOL_FILLING_MODE
eingestellt haben. Aber die Bezeichner selbst zeigen eine Verschiebung im Ausgabeergebnis.
Sehen Sie sich das Ergebnis an.
FOK setzt auf None-Spezifikation
IOC setzt auf FOK-Spezifikation
RETURN setzt auf IOC-Spezifikation

ORDER_FILLING_FOK     Результат: Filling == None
или
ORDER_FILLING_IOC     Результат: Filling == Fill or Kill
или
ORDER_FILLING_RETURN  Результат: Filling == Immediate or Cancel

Und wenn Sie andere Bezeichner aus anderen ENUM verwenden wollen, wieSYMBOL_FILLING_XXX

Es gibt nur zwei Bezeichner in dieser ENUM
SYMBOL_FILLING_FOK
SYMBOL_FILLING_IOC

Und für den Austauschmodus keinen Bezeichner!
Wie kann man den Austauschmodus ohne Bezeichner oder dessen Wert einstellen?
Schauen Sie selbst in der Dokumentation nach.
Stellen Sie sicher, dass
es keinen BezeichnerfürSYMBOL_FILLING_RETURN gibt.

 
Roman:

Wie kann man dann den Austauschmodus ohne Bezeichner oder dessen Wert einstellen?

Forum zum Thema Handel, automatische Handelssysteme und Testen von Handelsstrategien

Bibliotheken: Symbol

fxsaber, 2018.04.06 09:21

Symb.SetProperty(SYMBOL_TRADE_EXEMODE, SYMBOL_TRADE_EXECUTION_EXCHANGE);
Symb.SetProperty(SYMBOL_TRADE_CALC_MODE, SYMBOL_CALC_MODE_EXCH_FUTURES);

Abgesehen von den Entwicklern sind auch Ihre Beiträge für mich nicht ganz klar. Sehen Sie, wie Sie ein Problem konstruktiv melden können.

 
Was ist unklar? In meinem Fehlerbericht #20 habe ich auf die ID-Einstellung und den Grund für die Diskrepanz hingewiesen.
SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_CALC_MODE
Dies sind völlig unterschiedliche Modi und haben nichts mit dem Problem zu tun.

Dies sollte deutlicher sein.

void OnStart()
{
   string SName = "SYMBOL";
   
   if(CustomSymbolCreate(SName))
      CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, ORDER_FILLING_RETURN);
      //CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, ORDER_FILLING_FOK);  
      //CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, ORDER_FILLING_IOC);
   
}

Wenn Sie einen anderen Bezeichner aus ENUMSYMBOL_FILLING_XXX
verwenden wollen,gibt es keinen BezeichnerfürSYMBOL_FILLING_RETURN!

Grund der Beschwerde: