Symboles personnalisés. Erreurs, bogues, questions, suggestions. - page 14

 

Bug 21.


2085

Après la reconnexion du serveur, tous les symboles personnalisés créés sont eux-mêmes ajoutés à l'aperçu du marché.
C'est une bonne chose lorsque le marché est fermé le week-end.
Le serveur se reconnecte occasionnellement, ou après un redémarrage du terminal au moment de l'installation de la connexion,
Le graphique du symbole standard peut redémarrer et faire un tick, à ce moment tous les symboles personnalisés créés sont ajoutés à l'aperçu du marché par eux-mêmes.

 

Suggestion.

Veuillez ajouter l'identifiantSYMBOL_VOLUME_INITIAL pour lespropriétés des symboles, et afficher sa valeur dans la spécification.
Et ajoutez un identifiant approprié pour appeler sa valeur.

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

Bug 20.

2085
Configuration incorrecte des propriétés des caractères personnalisés.



Où se trouve le code pour la lecture ?

 
Slava:

Où se trouve le code pour la lecture ?

Dans le message avec le bug 20, les identifiants sont listés. Ne les avez-vous pas affichés dans le message ?

 

Bug 22.

Le retournement d'un tick modifie son prix par un facteur de 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); // Показали, что на самом деле пробросили.
}


Résultat

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
 

Bonjour à tous

c'est la première fois que j'utilise mt, j'en ai besoin pour l'analyse de données et la création de graphiques.

j'aicréé un symbole, chargé des barres à partir de csv, je peux voir le fichier de données épais dans le répertoire insta.

Symbole activé, en veille sur le marché

Ne pas afficher le graphique - "En attente de mise à jour


J'ai raté quelque chose ?

j'ai essayé à la fois dans mt4 et mt5 - tout est identique

graphiques de démonstration - courir en sautant

 
Roman:

Dans le message avec le bug 20, les identifiants sont listés. Ne les avez-vous pas affichés dans le message ?

Encore une fois. Où est le code reproductible ?

Les identifiants sont affichés. Ce qui m'amène à ma question : quel est le rapport avec ORDER_FILLING_XXX ? Avez-vous lu attentivement la documentation ?

 
Slava:

Encore une fois. Où est le code reproductible ?

Les identifiants sont affichés. Ce qui m'amène à ma question : quel est le rapport avec ORDER_FILLING_XXX ? Avez-vous lu attentivement la documentation ?

Parce que nous avons défini le mode de remplissage pourSYMBOL_FILLING_MODE
. Mais les identifiants eux-mêmes montrent un décalage dans le résultat de sortie.
Regardez le résultat.
FOK se fixe à la spécification None
IOC se fixe à la spécification FOK
RETURN se fixe à la spécification IOC

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

Et si vous voulez utiliser d'autres identifiants provenant d'autres ENUM, commeSYMBOL_FILLING_XXX

Il n'y a que deux identifiants dans cet ENUM
SYMBOL_FILLING_FOK
SYMBOL_FILLING_IOC

Et pour le mode d'échange, aucun identifiant !
Comment définir le mode d'échange sans identifiant ou sa valeur ?
Regardez vous-même dans la documentation.
Assurez-vous qu'
il n'y a pas d'identifiantpourSYMBOL_FILLING_RETURN

 
Roman:

Comment alors définir le mode d'échange sans identifiant ou sa valeur ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Bibliothèques : Symbole

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);

En dehors des développeurs, vos posts ne sont pas du tout clairs pour moi non plus. Voyez comment vous pouvez signaler un problème de manière constructive.

 
Qu'est-ce qui n'est pas clair ? Dans mon rapport de bogue n°20, j'ai indiqué le paramètre ID et la raison de la divergence.
SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_CALC_MODE
Ce sont des modes complètement différents et ne sont pas liés au problème.

Cela devrait être plus clair.

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);
   
}

Si vous voulez utiliser un autre identifiant de ENUMSYMBOL_FILLING_XXX
,
il n'existe pas d'identifiantpourSYMBOL_FILLING_RETURN!

Raison: