Código Morse

 

La esencia del EA es establecer ciertas combinaciones de velas. Las reglas son: una vela alcista significa "1", una vela bajista significa "0". Así, es posible buscar esas combinaciones de velas simplemente especificando "101":

Código Morse

Hasta ahora, el problema está en la codificación de la representación de las combinaciones: no se puede especificar un número en forma binaria en los parámetros de entrada.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Código Morse

Vladimir Karputov, 2017.04.06 10:25

Hasta ahora la versión de código Morse "1.003": se puede establecer manualmente una descripción de cadena de un patrón e incluso ejecutar pases individuales en el probador.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Código Morse

Vladimir Karputov, 2017.04.07 08:42

Versión del código Morse "1.005"

...

Resolvió dos problemas:

1). el usuario ve el patrón como "0101" en los parámetros de entrada:

Vista conveniente del parámetro de entrada

2). El parámetro de entrada está perfectamente optimizado en el probador.



 
Vladimir Karputov:

La esencia del EA es establecer ciertas combinaciones de velas. Las reglas son: una vela alcista significa "1", una vela bajista significa "0". Así, es posible buscar esas combinaciones de velas simplemente especificando "101":

El problema está en la codificación de la representación de las combinaciones: en los parámetros de entrada no podemos especificar el número en forma binaria.


se puede escribir un texto y luego analizar la cadena....
 

(Eso es genial).

En los parámetros de entrada, puede especificar números en forma decimal. Y también se puede convertir a binario o ya utilizarlo como una secuencia de signos binarios sacando cada bit individualmente. Es tan sencillo como eso)).


 
Vladimir Pastushak:

puede enviar un mensaje de texto y luego desempatar la cadena....

Como borrador lo hice, además de todo tipo de comprobaciones: para la longitud de la cadena y para asegurar que sólo los caracteres '0' y '1' estuvieran en la cadena. Pero hay un nuevo problema: esa cadena no puede ejecutarse en el probador en modo de optimización:).
 
Aliaksandr Hryshyn:

(Eso es genial).

En los parámetros de entrada, puede especificar números en forma decimal. Y también se puede convertir a binario o ya utilizarlo como una secuencia de signos binarios sacando cada bit individualmente. Es sencillo)).



Es posible establecerlo como un parámetro binario, pero no es posible presentarlo como una representación binaria en los parámetros de entrada:

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Parámetro de entrada en forma binaria

Vladimir Karputov, 2017.04.05 09:24

Ejemplo de ayuda delos tipos char, short, int y long:

... Para las variables enteras, los valores pueden especificarse en forma binaria utilizando el prefijo B. Por ejemplo, puede codificar las horas de trabajo de una sesión de negociación en una variable de tipo int y utilizar la información sobre ella según el algoritmo requerido:

//--- для рабочих часов ставим 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 


Pero especificando el parámetro de entrada en forma binaria (exactamente en la forma111111111000000000)

//+------------------------------------------------------------------+
//|                                                         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()
  {
//---

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

no funcionará - en los parámetros de entrada, la representación binaria del número se convierte en un número normal:

Parámetros de entrada


Pregunta: ¿hay alguna manera de establecer los valores en los parámetros de entrada exactamente en forma binaria (para que un usuario no vea un número, sino sólo una representación binaria, como11111111111000000000)?


 
La situación no parece muy fiable para una vela Close == Open
Y se sugiere la opción -1 0 1
Donde 0 es adecuado para cualquier dirección
 
Vladimir Karputov:

Lo hice así como borrador, además de todo tipo de comprobaciones: para la longitud de la cadena y para asegurarme de que sólo había caracteres '0' y '1' en la cadena. Pero hay un nuevo problema: esa cadena no puede ejecutarse en el probador en modo de optimización:).


Hacer que el parámetro de entrada sea de tipo int y luego cambiar el tipo int a cadena y parsear ....

 
Sergey Dzyublik:
La situación no parece muy fiable para una vela Close == Open
Y se sugiere la opción -1 0 1
Donde 0 es bueno para cualquier dirección

He rechazado la variante Close == Open porque no es fiable -> una vela así no tiene dirección.
 
¿Qué INT?
Es sólo a través de cadenas o arrays.
 
Vladimir Karputov:

Se puede establecer como parámetro en forma binaria, pero no se puede representar en los parámetros de entrada en forma binaria:


Escribí que puedes ponerlo en forma decimal, como un entero ordinario, y luego sacar bits individuales de él.
 
Vladimir Karputov:

He descartado la opción "Close == Open" por ser poco fiable -> una vela así no tiene dirección.

Entonces debemos considerar todas las variantes a través del gráfico de fluidos.
Porque el que fue arrojado, podría dar una dirección completa en el marco de tiempo de -30 segundos