Le code morse - page 3

 

Faites deux paramètres. L'un pour l'homme - string, le second pour la machine - int. La troisième variable est destinée à la sélection du type. Dans tous les cas, lorsque l'indicateur démarre, imprimez la deuxième option du codage de la combinaison. Si la conséquence est fixée à 100, alors l'impression d'informations supplémentaires - de combien à combien peut changer le paramètre int.

Pour un chandelier avec une ouverture et une fermeture égales, nous pouvons supposer qu'il a la direction du chandelier le plus proche avec une ouverture et une fermeture inégales. Si un chandelier est codé avec trois chiffres, 0- pour une ouverture et une fermeture égales, il y aura trop de séquences rares.

 

L'optimiseur a besoin de deux paramètres pour fonctionner : la longueur de la combinaison et le compteur. Supposons que la longueur de notre combinaison soit de 4, alors 2^4 = 16. Cela signifie que le compteur doit être compris entre 0 et 15. En le parcourant dans l'optimiseur, nous obtiendrons toutes les combinaisons de motifs à 4 chiffres.

Afin de ne pas perturber l'utilisateur, vous devez ajouter la structure ENUM_PATTERN_TYPE, qui définit le type de motif : numérique ou chaîne de caractères. Si vous sélectionnez un modèle de chaîne, n'utilisez pas les compteurs et la longueur des combinaisons. Et vice versa, si vous souhaitez exécuter dans l'optimiseur, sélectionnez le type de motif numérique.

 

J'ai vu quelque chose comme ça avant, c'est recherchable sur Yandex pour "candlecode".

 
Vasiliy Sokolov:

L'optimiseur a besoin de deux paramètres pour fonctionner : la longueur de la combinaison et le compteur. Supposons que la longueur de notre combinaison soit de 4, alors 2^4 = 16. Cela signifie que le compteur doit être compris entre 0 et 15. En le parcourant dans l'optimiseur, nous obtiendrons toutes les combinaisons de motifs à 4 chiffres.

Afin de ne pas perturber l'utilisateur, vous devez ajouter la structure ENUM_PATTERN_TYPE, qui définit le type de motif : numérique ou chaîne de caractères. Si vous sélectionnez un modèle de chaîne, n'utilisez pas les compteurs et la longueur des combinaisons. Et vice versa, si nous voulons l'exécuter dans l'optimiseur, nous sélectionnons le type de modèle numérique.


J'ai ajouté la structure ENUM_PATTERN_TYPE, mais je suggère de cacher à l'utilisateur le paramètre de type "int" qui définit le type de combinaison de chandeliers :

  • de toute façon, le type "int" est un nombre et n'a aucune corrélation avec le type binaire d'un paramètre de chaîne de caractères.
  • Le type "int" n'est nécessaire que lors de l'optimisation.

mais ne laissez que ces paramètres :

CTrade         m_trade;                      // trading object
//+------------------------------------------------------------------+
//| Enum pattern type: numerical or string                           |
//+------------------------------------------------------------------+
enum ENUM_PATTERN_TYPE
  {
   PATTERN_TYPE_NUMERICAL=0,  // numerical
   PATTERN_TYPE_STRING=1,     // string 
  };
//---
input ENUM_PATTERN_TYPE    InpPatternType          = PATTERN_TYPE_STRING;  // pattern type
input string               InpsMorseCode           = "101";                // string Morse code (max 5 characters)
input ENUM_POSITION_TYPE   InpPosType              = POSITION_TYPE_BUY;    // posinion type
input double               InpLot                  = 0.1;                  // lot
sinput ulong               m_magic                 = 88430400;             // magic number
input ulong                m_slippage              = 30;                   // slippage
//---
string sExtMorseCode="";
int max_string_len=5;         // limitation of the length of the pattern "string"
int i_morse_code=0;           // int Morse code (use only if pattern type=numerical)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(InpPatternType==PATTERN_TYPE_STRING)
     {

Entrées du code Morse 1.002

 

Je ne comprends pas bien - s'agit-il de programmeurs ou de pigeons ?

Pourquoi traduire quelque chose en quelque chose ?

Si nous avons besoin d'un code 101 - c'est la valeur normale de 5. C'est tout. Quel est le problème ? Traduire mentalement le décimal en binaire ?

J'ai fait des expériences similaires, sauf que ma bougie avait quatre tailles supplémentaires - de la petite à la grande. Cela fait huit tailles de bougies différentes. Et, par conséquent, trois bits. Dans le motif, nous écrivons le nombre (ulong) - la grille est plus grande que pour un motif à vingt barres.

Le problème est, à mon avis, tiré par les cheveux.

 
George Merts:

Je ne comprends pas bien - s'agit-il de programmeurs ou de pigeons ?

Pourquoi traduire quelque chose en quelque chose ?

Si nous avons besoin d'un code 101 - c'est la valeur normale de 5. C'est tout. Quel est le problème ? Traduire mentalement du décimal au binaire ?

J'ai fait des expériences similaires, sauf que ma bougie avait quatre tailles supplémentaires - de la petite à la grande. Cela fait huit tailles de bougies différentes. Et, par conséquent, trois bits. Dans le motif, nous écrivons le nombre (ulong) - la grille est plus grande que pour un motif à vingt barres.

Le problème est, à mon avis, tiré par les cheveux.


Les utilisateurs normaux ne peuvent pas convertir mentalement le décimal en binaire :)
 
George Merts:

Je ne comprends pas bien - s'agit-il de programmeurs ou de pigeons ?

Pourquoi avons-nous besoin de traduire quelque chose en quelque chose ?

Si nous avons besoin d'un code 101 - c'est la valeur normale de 5. C'est tout. Quel est le problème ? Traduire mentalement le décimal en binaire ?

J'ai fait des expériences similaires, sauf que ma bougie avait quatre tailles supplémentaires - de la petite à la grande. Cela fait huit tailles de bougies différentes. Et, par conséquent, trois bits. Dans le motif, nous écrivons le nombre (ulong) - la grille est plus grande que pour un motif à vingt barres.

Le problème est, à mon avis, tiré par les cheveux.


Le programme sera utilisé par un utilisateur ordinaire, pas un programmeur (cela a déjà été mentionné ci-dessus et plus d'une fois) - et pour lui "101" et "5" sont deux nombres différents, alors que pour lui "5" ne contient aucune information sur la position relative des bougies, mais "101" dit clairement "haussier, baissier, haussier".

 

Comment codez-vous le dodge ?

Par exemple, la configuration "étoile du soir" peut être haussière - évasive (ou loup ou barre d'épingle) - baissière. Si vous ignorez l'esquive (loup ou barre d'épingle), le motif n'est pas correctement identifié. Je pense que 1 bit pour coder une bougie ne sera pas suffisant 2 bits pour 1 bougie.

Par exemple, la bougie haussière est à 01, la bougie baissière à 10 et les autres bougies à 11. Alors, l'étoile du soir serait 01 11 10, l'étoile du matin serait 10 11 01.

....

Je pensais aussi. Comment coder un motif de prise de contrôle ? Une simple combinaison haussière-baissière ne nous dit rien, mais une combinaison haussière-baissière nous parle déjà d'une prise de pouvoir haussière-baissière. Ou bien nous pourrions additionner ces deux chandeliers en un seul et obtenir une barre de pin et coder ce chandelier additionné comme 11.


 
Vitalii Ananev:

Comment codez-vous le dodge ?

Par exemple, la configuration "étoile du soir" peut être haussière - évasive (ou loup ou barre d'épingle) - baissière. Si vous ignorez l'esquive (loup ou barre d'épingle), le motif n'est pas correctement identifié. Je pense que 1 bit pour coder une bougie ne sera pas suffisant 2 bits pour 1 bougie.

Par exemple, la bougie haussière est à 01, la bougie baissière à 10 et les autres bougies à 11. Alors "l'étoile du soir" sera 01 11 10, "l'étoile du matin" sera 10 11 01.


Les ombres ne sont codées d'aucune façon (du moins à ce stade). Peut-être plus tard...
 
Vladimir Karputov:

Les ombres ne sont codées d'aucune façon (du moins à ce stade). Peut-être plus tard...


Nous devons tout envisager en même temps pour éviter de tout refaire plus tard.

....

Encore une fois, si nous revenons à la configuration "Evening Star", elle peut être considérée comme une prise de contrôle haussière à petite bougie et une prise de contrôle haussière à baissière. Cela signifie que nous avons un modèle composite composé d'une bougie haussière et d'une absorption baissière. Et si nous additionnons les trois chandeliers de la figure, nous obtenons à nouveau une barre d'épingle.