Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Indicadores

iSpread é um indicador de propagação para pares de negociação - indicador para MetaTrader 5

Visualizações:
2277
Avaliação:
(32)
Publicado:
2014.07.03 11:49
Atualizado:
2016.11.22 07:33
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Usando este indicador poderá ser criado o seu símbolo (ativo) sintético baseado em dois pares selecionados.

O algoritmo de indicador é o seguinte:

Selecionando dados iniciais

  1. Start date - selecionar a data inicial para construir um símbolo sintético. É importante para evitar o uso desnecessários de dados do histórico antigo.
  2. Symbol 1/2 - selecionar dois pares iniciais.
O próximo passo é preparar os dados de entrada.

Conversão de Dados

  1. Action - selecione uma operação aritmética, utilizando duas séries que serão unidas numa só. Existem 4 operações disponíveis:- + / *. Eu uso a diferença e a razão. Provavelmente poderá ser necessário a soma e o produto, mas eu nunca fiz isso. Eu ficaria feliz se alguém me escreve como esta duas operações poderiam ser usadas.
  2. Symbol reverse 1/2 - inverter uma série selecionada se correlação é negativa.
  3. Symbol degree 1/2 - Exponenciação de séries selecionadas. Eu sei que é necessário, embora eu nunca use essa opção devido eu não entender exatamente o porquê da exponenciação de séries. Eu acho que essa opção pode ser usada para igualar as dimensões de ambas as séries, mas eu uso multiplicadores para esta finalidade. Se a hipótese for verdadeira, então qual o benefício de uma abordagem em detrimento da outra?
  4. Symbol multiplier 1/2 - multiplicando uma série por um certo número. Eu uso para equalizar as dimensões da série.
  5. Logarithms - converter a série resultante numa escala logarítmica. Se eu usar o parâmetro "Logarithms", eu preparo a série final usando a diferença entre as duas séries originais. Se você não usá-lo, então selecionar a opção "ratio" no parâmetro "action". Geralmente convertendo a esta escala você pode evitar a influência da tendência quadrática. No entanto, não vejo qualquer diferença em segmentos curtos, muitas vezes eu não usá-lo e seleciono no parâmetro "action" - ratio. Se for um engano meu, vou ficar feliz em receber seus comentários.
  6. Smoothing.Period - Quando todas as ações são feitas, antes de unir duas séries numa só, às vezes uma leve suavização resultante dos dados é necessário. Eu suavizo a série com um MA simples e um período especifico. Praticamente não faz nenhuma distorção, mas pode cortar alguns pontos e cotações não-mercantis. Você pode optar por não utilizar a suavização, especificando 0(zero) para este parâmetro. Quando uso um período curto para remover a tendência (ver mais opções), eu não uso a suavização. A suavização não causa perda de dados quando for aplicada a valores de grande porte, ao mesmo tempo que a série final mais suave tem menos ruído.

Isso é tudo o que precisamos fazer para preparar os dados e criarmos um símbolo sintético. Isso é o que temos feito!

Vamos usar o EURUSD:

eurusd

Vamos usar o GBPUSD:

gbpusd

That's a synthetic symbol:

Símbolo sintético


O último passo é determinar o desvio necessário para encontrar os pontos de entrada:

Encontrando desvios

  1. Selecting an algorithm - "Detrend using asimple MA" ou a "First Difference". Remover a tendência de uma série resultante. Eu sei de duas maneiras de como fazer isso (eu prefiro a segunda). A primeira maneira é remover a MA com um período requerido (defasagem) da série resultando. O período é selecionado em função da projeção do horizonte. A MA é baseada num algoritmo simples. Ainda não está claro se faz sentido usar a exponencial e qual é a diferença. Terei todo o prazer de receber seus comentários aqui. A segunda maneira: pegue a primeira diferença duas vezes, primeiro para cada par e então a diferença entre os resultados. Os resultados finais das duas formas são semelhantes quando não existe movimentos fortes numa das séries. Quando existe um forte movimento, o primeiro método proporciona um retorno mais rápido do resultado sintético para 0 (zero), o que é muitas vezes uma indicação falsa. Uma observação para a primeira diferença: em vez de Close[1]-Close[2], eu usei Close[1]/Close[2], ou seja, a "primeira razão", embora eu nunca vi esse termo.
  2. Period for the algorithm - uma defasagem, uma compensação. Se definido como 0 (zero), o símbolo sintético não é modificado.
  3. Show levels - mostrar ou ocultar os níveis de desvio, cruzamento que indica a decisão de entrar no mercado. Eu uso três níveis em ambos os sentidos: vermelho, amarelo, verde.
  4. Level calculation method - Eu sei de três maneiras de determinar esses níveis. Método 1 (called normalization in 0..1 with an offset) - o símbolo sintético é normalizado em uma faixa de unidade, seguido por uma compensação = -0,5 para que as flutuações fiquem em torno de 0 (zero). Na maioria das vezes eu uso este método. No entanto, por favor tenha em mente que os dados iniciais disponíveis quando não temos extremos estáveis ​​ainda são normalizados, e esses valores não devem ser levados em conta. Uma vez que o indicador não redesenha o passado após o recebimento da atualização extrema, o gráfico ficará da seguinte forma :

normalização


Mas depois de duas ou três boas divergências de séries iniciais, você pode começar a confiar nestes níveis. Os extremos para normalização não são perdidos quando os dados são acumulados.

Método 2 (called levels of extrema) - apenas acompanhando o desvio máximo absoluto e sua divisão em três níveis para entrar no mercado.

As características são as mesmas da normalização - não é recomendável confiar em tais níveis até receber extremos estáveis.

Ao usar esse método, vemos o seguinte quadro:

Desvios nos extremos

Existe uma vantagem significativa da utilização de qualquer um dos métodos acima para os níveis desenhado - os níveis não são estreitados. Mas há também uma desvantagem - se ocorre um pico, os cálculos subsequentes são guiados por ele. Para removê-lo, o indicador tem mais um parâmetro chamado Levels Coefficient (é apenas um fator que permite o estreitamento manual ou expandir os níveis de entrada no mercado).

Method 3 para desenhar níveis - cálculo do desvio padrão. Este método não foi implementado no indicador, porque faz com que nível de estreitamento seja inaceitável na minha opinião. Como resultado, os níveis se parecem com bolhas que estão continuamente se estreitando e expandindo. Infelizmente, não posso fornecer imagens uma vez que removi este método de cálculo de todos os indicadores. Outra desvantagem é que você sempre tem que verificar todos os dados disponíveis para calcular corretamente tudo isso.

P.S. O indicador migrou do MetaTrader 4 para verificar algumas idéias em multi testes, mas há algumas observações:

  1. O indicador desenha algum ruído se não puder obter todos os dados. Eu não consegui descobrir o motivo, isso não acontece no MetaTrader 4.
  2. O indicador poderia usar os dados anteriores ao encontrar omissões de dados na história, mas por causa deste item 1 (ruídos), eu deixei os dados vazios, para que possamos ver exatamente onde os dados são omitidos.
  3. Se algo estranho está desenhado, atualize o gráfico, período de mudança, par, etc.
  4. Eu tentei usar o cronômetro quando não havia dados - o resultado foi insatisfatório, então eu o deletei.
  5. Eu suspeito que o meu conhecimento de MQL5 "não é bom o suficiente", então eu apreciaria muito seus comentários.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/2197

BB-HL BB-HL

Outra variação do indicador Bollinger Bands. Neste indicador a Máxima e a Mínima dos preços (High/Low) são usadas no lugar do fechamento calculado pelo desvio padrão.

BBands_Stop_v1_HTF BBands_Stop_v1_HTF

Indicador BBands_Stop_v1 com a opção de selecionar o timeframe disponível nos parâmetros de entrada.

BWImp-T01 BWImp-T01

Um oscilador de tendência não normalizado.

Simple EA Simple EA

Um simples robô que compra e vende!