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
Visualizações:
1519
Avaliação:
(31)
Publicado:
2016.04.26 15:28
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance


    Para formar sinais de negociação, o expert Moving Average usa uma média móvel. A abertura e o fechamento das posições são executadas quando a média móvel atende ao preço da barra recém-formada (índice da barra é igual a 1). O tamanho do lote será otimizado de acordo com um algoritmo especial.

    O expert advisor analisa a relação entre a média móvel e a gráfico de preços do mercado. A verificação é realizada pela função CheckForOpen(). Se a média móvel encontra a barra de tal forma que a primeira é superior ao preço de abertura (Open), mas inferior ao preço de fechamento (Close), uma posição COMPRADA será aberta. Se a média móvel encontra a barra de tal forma que a primeira é inferior ao preço de abertura (Open), mas superior ao preço de fechamento (Close), uma posição VENDIDA será aberta.

    O Gerenciador de Dinheiro usado no expert é muito simples, mas eficaz: o controle sobre cada volume da posição depende dos resultados das transações anteriores. Este algoritmo é implementado pela função LotsOptimized(). O tamanho de lote básico é calculado com base no risco máximo permitido:

    lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);

    O parâmetro MaximumRisk exibe a porcentagem básica de risco para cada transação. Geralmente, possui um valor entre 0,01 (1%) e 1 (100%). Por exemplo, se a margem livre (AccountFreeMargin) é igual a $20.500 e as regras de gestão de capital prescrevem a utilizar risco de 2%, o tamanho do lote básico fará 20500 * 0.02 / 1000 = 0.41. É muito importante controlar a precisão do tamanho do lote, para normalizar o resultado com os valores permitidos. Normais, os lotes fracionários com passo de 0,1 são permitidos. Uma transação com o volume de 0,41 não será realizada. Para normalizar, a função NormalizeDouble() é usado com precisão de até 1 caractere após o ponto. Isto resulta um lote básico 0,4. O cálculo do lote simples baseado na margem livre, permite aumentar em volumes de operação dependendo do sucesso na negociação, ou seja, negociando com reinvestimentos. Este é o mecanismo básico com uma gestão de capital obrigatória para aumento de efetividade na negociação.

    DecreaseFactor é a extensão que vai reduzir o tamanho do lote após uma negociação com prejuízo. Os valores normais são 2,3,4,5. Se as operações anteriores forma com prejuízo, os volumes subsequentes diminuem por um fator de DecreaseFactor, de modo a aguardar este período sem rentabilidade passar. Este é o principal fator no algoritmo de gerenciamento do capital. A ideia é muito simples: se a negociação está aumentando com sucesso, o expert trabalha com o lote básico para fazer o máximo de lucro. Após a primeira operação com prejuízo, o expert irá "reduzir a velocidade" até que uma nova transação positiva seja feita. O algoritmo permite desativar a "velocidade de redução", para fazê-lo basta especificar o DecreaseFactor = 0. O valor das últimas transações sucessivas com prejuízo é calculado no histórico da negociação. O lote básico será calculado com base nisto:

    if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);

    Deste modo, o algoritmo permite reduzir de forma eficaz o risco, após uma série de transações com prejuízo. O tamanho mínimo do lote é obrigatoriamente verificado no final da função, pois cálculos feitos anteriormente podem resultar no lote = 0:

    if(lot<0.1) lot=0.1;

    O expert é destinado principalmente para trabalhar com período diário e, no modo de teste - responsável pelo fechamento dos preços. Ele vai negociar apenas com a abertura de uma nova barra, por isso os modos de modelagem a cada-tick não são necessários.

    Os resultados dos testes estão representados no relatório.

Relatório do Testador de Estratégia

Moving Average


SímboloEURUSD (Euro vs US Dollar)
Período1 Hour (H1) 2003.01.08 00:00 - 2003.11.25 00:00
ModeloCada tick (baseado em todos os intervalos de tempo disponíveis com interpolação fractal de cada tick)
ParâmetrosLots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11;

Barras em teste19371Ticks modelado656918Qualidade da modelagem25.00%

Depósito inicial10000.00



Lucro líquido total1695.20Lucro bruto4293.20Perda bruta-2598.00
Fator de lucro1.65Pagamento esperado10.80

Drawdown absoluto40.35Drawdown máximo (%)318.50 (3.0%)


Negociações totais157Posições Vendidas (vitória %)73 (26.03%)Posições Compradas (vitória %)84 (32.14%)

Lucro nas negociações (% do total)46 (29.30%)Perda nas negociações (% do total)111 (70.70%)
Maiorlucro na negociação262.55perda na negociação-91.00
Média do lucro na negociação93.33perda na negociação-23.41
Máximo de vitórias consecutivas (lucro em dinheiro)2 (387.15)perdas consecutivas (perda em dinheiro)7 (-287.25)
Máximo de vitórias consecutivas (contagem de vitórias)387.15 (2)perdas consecutivas (contagem de perdas)-287.25 (7)
Média do vitórias consecutivas1perdas consecutivas3

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

Suporte \ Resistência Suporte \ Resistência

Uma versão de indicadores para detectar os níveis de Suporte/Resistência.

JMA JMA

The Jurik Moving Average indicator. JMA's improved timing and smoothness will astound you.

Painter_v1 Painter_v1

Indicador da cor dos preços de certas zonas hh: mm_start antes de hh: mm_finish.

MachXalert MachXalert

Indicador machXalert.