Código morse

 

A essência da EA é definir certas combinações de velas. As regras são: uma vela em alta significa "1", uma vela em baixa significa "0". Assim, é possível pesquisar tais combinações de castiçais simplesmente especificando "101":

Código morse

Até agora o problema está na codificação da representação das combinações - nos parâmetros de entrada não é possível especificar o número na forma binária.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Código morse

Vladimir Karputov, 2017.04.06 10:25

Até agora código Morse versão "1.003": você pode definir manualmente uma descrição em cadeia de um padrão e até mesmo executar uma única passagem no testador.

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Código morse

Vladimir Karputov, 2017.04.07 08:42

Versão em código morse "1.005".

...

Resolveu dois problemas:

1). o usuário vê o padrão como "0101" nos parâmetros de entrada:

Visão conveniente do parâmetro de entrada

2). O parâmetro de entrada é perfeitamente otimizado no testador.



 
Vladimir Karputov:

A essência da EA é definir certas combinações de velas. As regras são: uma vela em alta significa "1", uma vela em baixa significa "0". Assim, é possível pesquisar tais combinações de castiçais simplesmente especificando "101":

Enquanto o problema está na codificação da representação de combinações - nos parâmetros de entrada não podemos especificar o número na forma binária.


você pode enviar uma mensagem de texto e depois analisar a seqüência de caracteres....
 

(Isso é legal).

Nos parâmetros de entrada, você pode especificar números em forma decimal. E também pode ser convertido em binário ou já usado como uma seqüência de sinais binários, puxando cada bit para fora individualmente. É tão simples quanto isso)).


 
Vladimir Pastushak:

você pode enviar uma mensagem de texto e depois desparar a string....

Como rascunho, eu o fiz, mais todos os tipos de verificações - para o comprimento da corda e para garantir que apenas os caracteres '0' e '1' estivessem na corda. Mas há um novo problema: tal corda não pode ser executada em modo de otimização:).
 
Aliaksandr Hryshyn:

(Isso é legal).

Nos parâmetros de entrada, você pode especificar números em forma decimal. E também pode ser convertido em binário ou já usado como uma seqüência de sinais binários, puxando cada bit para fora individualmente. É simples))).



É possível defini-lo como um parâmetro binário, mas não é possível apresentá-lo como uma representação binária nos parâmetros de entrada:

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Parâmetro de entrada em formato binário

Vladimir Karputov, 2017.04.05 09:24

Exemplo dechar de ajuda, tipos curtos, int e longos:

... Para variáveis inteiras, os valores podem ser especificados em formato binário usando o prefixo B. Por exemplo, você pode codificar as horas de trabalho de uma sessão de negociação em uma variável do tipo int e usar informações sobre ela de acordo com o 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 


Mas especificando o parâmetro de entrada em formato binário (exatamente no formato111111111000000000)

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

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

não funcionará - nos parâmetros de entrada, a representação binária do número é convertida para um número regular:

Parâmetros de entrada


Pergunta: existe alguma maneira de definir valores nos parâmetros de entrada exatamente em forma binária (para que um usuário não veja um número, mas apenas uma representação binária, como11111111111000000000)?


 
A situação não parece muito confiável para um Fechado == Vela aberta
E a opção -1 0 1 é sugerida
Onde 0 é adequado para qualquer direção
 
Vladimir Karputov:

Eu o fiz dessa forma como um rascunho, mais todos os tipos de verificações - para o comprimento da corda e para garantir que apenas os caracteres '0' e '1' estivessem na corda. Mas há um novo problema: um fio desse tipo não pode ser executado em modo de otimização:).


Faça o parâmetro de entrada como tipo int e depois mude o tipo int para string e parse ....

 
Sergey Dzyublik:
A situação não parece muito confiável para um Fechado == Vela aberta
E a opção -1 0 1 é sugerida
Onde 0 é bom para qualquer direção

Eu rejeitei a variante Fechar == Abrir como não confiável -> tal vela não tem direção.
 
O que INT ?
É apenas através de cordas ou arrays.
 
Vladimir Karputov:

Você pode defini-lo como um parâmetro em formato binário, mas não pode representá-lo em parâmetros de entrada em formato binário:


Eu escrevi que você pode defini-lo em forma decimal, como um inteiro comum, e depois puxar pedaços individuais dele.
 
Vladimir Karputov:

Eu descartei a opção "Fechar == Abrir" como não confiável -> tal vela não tem direção.

Bem, então precisamos considerar todas as variantes através da carta de fluidos.
Como aquele que foi expulso poderia dar uma direção completa a -30 segundos de tempo
Razão: