Le code morse

 

L'essence de l'EA est de définir certaines combinaisons de bougies. Les règles sont les suivantes : une bougie haussière signifie "1", une bougie baissière signifie "0". Il est donc possible de rechercher de telles combinaisons de chandeliers en spécifiant simplement "101" :

Le code morse

Jusqu'à présent, le problème réside dans le codage de la représentation des combinaisons - vous ne pouvez pas spécifier un nombre sous forme binaire dans les paramètres d'entrée.

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

Le code morse

Vladimir Karputov, 2017.04.06 10:25

Jusqu'à présent, la version "1.003" du code Morse : vous pouvez définir manuellement une chaîne de description d'un motif et même exécuter des passes uniques dans le testeur.

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

Le code morse

Vladimir Karputov, 2017.04.07 08:42

Version du code Morse "1.005"

...

J'ai résolu deux problèmes :

1). l'utilisateur voit le motif comme "0101" dans les paramètres d'entrée :

Vue pratique du paramètre d'entrée

2). Le paramètre d'entrée est parfaitement optimisé dans le testeur.



 
Vladimir Karputov:

L'essence de l'EA est de définir certaines combinaisons de bougies. Les règles sont les suivantes : une bougie haussière signifie "1", une bougie baissière signifie "0". Il est donc possible de rechercher de telles combinaisons de chandeliers en spécifiant simplement "101" :

Alors que le problème réside dans le codage de la représentation des combinaisons - dans les paramètres d'entrée, nous ne pouvons pas spécifier le nombre sous forme binaire.


vous pouvez écrire et ensuite analyser la chaîne....
 

(C'est cool).

Dans les paramètres d'entrée, vous pouvez spécifier des nombres sous forme décimale. Et il peut également être converti en binaire ou déjà utilisé comme une séquence de signes binaires en extrayant chaque bit individuellement. C'est aussi simple que cela)).


 
Vladimir Pastushak:

vous pouvez envoyer un texto et ensuite délier la chaîne....

C'est ce que j'ai fait, en plus de toutes sortes de vérifications - pour la longueur de la chaîne et pour s'assurer que seuls les caractères '0' et '1' figurent dans la chaîne. Mais il y a un nouveau problème : une telle chaîne ne peut pas être exécutée dans le testeur en mode optimisation:).
 
Aliaksandr Hryshyn:

(C'est cool).

Dans les paramètres d'entrée, vous pouvez spécifier des nombres sous forme décimale. Et il peut également être converti en binaire ou déjà utilisé comme une séquence de signes binaires en extrayant chaque bit individuellement. C'est simple)).



Il est possible de le définir comme un paramètre binaire, mais il n'est pas possible de le présenter comme une représentation binaire dans les paramètres d'entrée :

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

Paramètre d'entrée sous forme binaire

Vladimir Karputov, 2017.04.05 09:24

Exemple à partir de l'aide destypes char, short, int et long:

... Pour les variables entières, les valeurs peuvent être spécifiées sous forme binaire en utilisant le préfixe B. Par exemple, vous pouvez encoder les heures de travail d'une session de négociation dans une variable de type int et utiliser les informations la concernant selon l'algorithme requis :

//--- для рабочих часов ставим 1, для нерабочих указываем 0 
   int AsianSession   =B'111111111'; // азиатская сессия с 0:00 часов до 9:00 
   int EuropeanSession=B'111111111000000000'; // европейская сессия  9:00 - 18:00 
   int AmericanSession =B'111111110000000000000011'; // американская 16:00 - 02:00 


Mais en spécifiant le paramètre d'entrée sous forme binaire (exactement sous la forme111111111000000000)

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                      Copyright 2017, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property script_show_inputs
//--- для рабочих часов ставим 1, для нерабочих указываем 0 
input int AsianSession=B'111111111'; // азиатская сессия с 0:00 часов до 9:00 
input int EuropeanSession=B'111111111000000000'; // европейская сессия  9:00 - 18:00 
input int AmericanSession=B'111111110000000000000011'; // американская 16:00 - 02:00 
//---
string text="10";
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//---

  }
//+------------------------------------------------------------------+

ne fonctionnera pas - dans les paramètres d'entrée, la représentation binaire du nombre est convertie en un nombre normal :

Paramètres d'entrée


Question : existe-t-il un moyen de définir les valeurs des paramètres d'entrée exactement sous forme binaire (de sorte que l'utilisateur ne voit pas un nombre, mais juste une représentation binaire, comme11111111111000000000) ?


 
La situation ne semble pas très fiable pour une bougie Close == Open.
Et l'option -1 0 1 est proposée
Où 0 convient pour toute direction
 
Vladimir Karputov:

Je l'ai fait de cette façon en tant que projet, en plus de toutes sortes de vérifications - pour la longueur de la chaîne et pour s'assurer que seuls les caractères '0' et '1' étaient dans la chaîne. Mais il y a un nouveau problème : une telle chaîne ne peut pas être exécutée dans le testeur en mode optimisation:).


Faire en sorte que le paramètre d'entrée soit de type int, puis changer le type int en chaîne de caractères et analyser .....

 
Sergey Dzyublik:
La situation ne semble pas très fiable pour une bougie Close == Open.
Et l'option -1 0 1 est proposée
Où 0 est bon pour toute direction

J'ai rejeté la variante Close == Open comme non fiable -> une telle bougie n'a pas de direction.
 
Quel INT ?
C'est seulement à travers les chaînes ou les tableaux.
 
Vladimir Karputov:

Vous pouvez le définir comme paramètre sous forme binaire, mais vous ne pouvez pas le représenter dans les paramètres d'entrée sous forme binaire :


J'ai écrit que vous pouvez le définir sous forme décimale, comme un entier ordinaire, puis en extraire des bits individuels.
 
Vladimir Karputov:

J'ai écarté l'option "Close == Open" car elle n'est pas fiable -> une telle bougie n'a pas de direction.

Eh bien, nous devons alors considérer toutes les variantes à travers le graphique des fluides.
Puisque celui qui a été rejeté pouvait donner une direction à part entière dans un délai de -30 sec.
Raison: