Um script para calcular MAE e MFE - script para o MetaTrader 4.
O script destina-se ao cálculo das características de MAE, MFE e todos os drawdowns (de Equity) no histórico. Os trocas não são levados em consideração. Os cálculos das retiradas são menos otimistas (as reduções são calculadas como um pouco maiores do que as reais), uma vez que apenas os piores desenvolvimentos são levados em consideração. Você precisa ter um histórico de um minuto para cada par de moedas que você negociou. O script pode ser usado apenas para títulos da Forex.
Traduzido do russo pela MetaQuotes Software Corp.
Como posso calcular o MAE / MFE para cruzamentos de moeda no script?
Oi, estou escrevendo um script para calcular o MAE / MFE (excursão adversa máxima, excursão máxima favorável) com o testador de estratégia. Até agora, meu script funciona de forma excelente para pares de moedas que estão cotados em USD (ou seja, GBPUSD, EURUSD, etc.) ou quando o USD é a base (ou seja, USDJPY). Por sinal, a moeda da minha conta é o USD. Mas estou tendo problemas para descobrir como obter o script para calcular o valor correto para pares cruzados de moeda (ou seja, GBPJPY, EURGBP, etc.)
Digamos que estou testando o GBPJPY, é fácil de usar:
para um bar anterior? (ou seja, a barra que corresponde ao MAE / MFE para cada comércio gerado pelo testador durante o backtest?)
é 4 o tique atual.
Mas não é tão difícil calculá-lo.
se o fechamento [1] em GBPJPY = 124,96.
você tem que descobrir o que é o próximo [1] para o USDJPY, digamos 78,35.
Oi, estou escrevendo um script para calcular o MAE / MFE (excursão adversa máxima, excursão máxima favorável) com o testador de estratégia. Até agora, meu script funciona de forma excelente para pares de moedas que estão cotados em USD (ou seja, GBPUSD, EURUSD, etc.) ou quando o USD é a base (ou seja, USDJPY). Por sinal, a moeda da minha conta é o USD. Mas estou tendo problemas para descobrir como obter o script para calcular o valor correto para pares cruzados de moeda (ou seja, GBPJPY, EURGBP, etc.)
Digamos que estou testando o GBPJPY, é fácil de usar:
para um bar anterior? (ou seja, a barra que corresponde ao MAE / MFE para cada comércio gerado pelo testador durante o backtest?)
Experimente olhar através dos códigos de Phillip, versão atualizada na parte inferior da página-1. mql5 / pt / forum / 129553.
Obrigado pelas idéias de todos. desculpe, não respondi muito rapidamente - fiquei impressionado com um caso leve de gripe. Espero que hoje eu possa voltar a seguir com isso. Aliás, eu já basei meu código e usei algumas das idéias de Phillip (eu acho?) E os scripts de Rosh para MAE / MFE. Deixe-me tentar as sugestões acima e informar de volta. Obrigado.
Depois de passar pela maioria das sugestões acima, ainda não consegui encontrar o que eu preciso. Comecei este projeto tentando obter os scripts MAE / MFE da Phillip que encontrei neste link: mql5 / pt / forum / 127663 / page2 para funcionar. Mas depois de gastar muito tempo tentando entender e fazer o trabalho por completo (e me adaptar ao que eu estava procurando). Eu desisti e eu decidi fazer minha própria versão reduzida e simplificada de seus scripts para meus próprios fins de teste.
Em primeiro lugar, estou usando minha própria versão do "GetSymbolType" da Phillip & quot; função que eu modifiquei para identificar e retornar corretamente um número inteiro (1 a 4) atribuído a 4 tipos diferentes de pares de símbolos de moeda da seguinte maneira:
Tipo 1: USD é a moeda base (à esquerda) (ou seja, USDJPY)
Tipo 2: USD é a moeda citada (à direita) (ou seja, EURUSD)
E agora os dois tipos de cruzamentos:
Tipo 3: A base é GBP, AUD ou NZD e a moeda cotada é algo diferente do USD (ou seja, EURGBP, EURAUD) NOTA: nestes exemplos (e todos os outros neste tipo), GBP, AUD e NZD são normalmente a base para o USD. TAMBÉM NOTA: que o EUR nunca é (ou quase nunca, AFAIK) a moeda cotada em QUALQUER PAR, maior ou de outra forma; é sempre uma moeda BASE (à esquerda)).
Tipo 4: qualquer outra cruz (ou seja, o USD é a base NIETHER ou a moeda cotada) e não se encaixa no Tipo 3.
As fórmulas que estou usando para calcular os valores de pip na moeda da minha conta (USD) vêm deste link: forexnewbies / pip-value-formula / e verifiquei cada um manualmente colocando negociações com minha plataforma MT4 e também usando o ' calculadora de valor de pip 'a partir deste link: earnforex / pip-value-calculator Eles são 100% corretos para todos os pares de moedas (AFAIK) e todos os tipos podem caber em 1 de 4 tipos de símbolos.
Minha versão deste script é diferente da de Phillip (para quem conhece seu método). Eu decidi usar a idéia de Rosh para calcular MAE / MFE (em $) simplesmente multiplicando:
valor de pip em USD * MAEinPips (ou MFEinPips)
Por exemplo, usando GBPJPY: Esta é uma fórmula de Tipo 4 e para obter "valor de pip em USD" você precisaria multiplicar as unidades monetárias (ou seja, - 100.000 para um lote padrão total) pelo valor do ponto (ou seja, - 0,001) e, em seguida, dividir o produto pelo que eu chamo de "intermediário" taxa (porque é essencialmente um cálculo intermediário), especificamente a taxa ASK de USDJPY, para fazer o cálculo do valor de pip em USD. Agora, indo um passo adiante, para obter MAE / MFE, você então multiplique o resultado obtido no primeiro passo pelo & quot; MAEinPips & quot; (ou MFEinPips).
Até agora, posso obter o MAE / MFE (em pips) para todos os pares, majores e cruzes, e em $ para os Tipos 1 e 2. Onde eu estou tendo problemas é com os tipos 3 e 4, até obter o intermediário correto valor (ou seja, a taxa ASK de USDJPY) que corresponde ao valor MAE / MFE no momento em que os valores MAE / MFE ocorreram para cada troca durante o backtest. A minha versão deste script escolhe o "tipo de símbolo intermediário" correto (representado pela variável & quot; SymbolType & quot;) e é passado para o & quot; CrossPair & quot; função que retorna corretamente o par intermediário, representado pela variável "IntPairForCross" para ser usado no cálculo do valor da pipa.
CONTUDO . O valor WRONG é obtido a partir do gráfico pertencente ao par intermediário. Em outras palavras, o valor que retorna não é onde PERTO do tempo do MAE / MFE que ocorreu no par cruzado. As duas vezes (bar # 's) devem ser as mesmas e não são. Na verdade, o valor que o script reune não é mesmo no mesmo gráfico.
Por exemplo, digamos que a GBPJPY teve hipoteticamente um MAE em 135.156 e ocorreu em 2011.03.14 09:45. O valor que é retorcido será cotado em USDJPY, mas o valor (qualquer valor) NÃO será para o tempo que o MAE ocorreu no GBPPJY. Como faço para "sincronizar & quot; corretamente, de modo que o valor intermediário USDJPY correto tenha ocorrido ao mesmo tempo em que o MAE ocorreu no GBPJPY. para que eu possa fazer o valor correto do pip em $ & quot; Cálculo?
Aqui está a minha versão das funções que identificam e retornam o tipo de símbolo (1 a 4) e encontram o par intermediário correto usado nos cálculos de valor de pip:
Agora, para a parte principal que usa o "tipo de símbolo" e o "par intermediário" obtidos acima como entrada para fazer cálculos MAE / MFE:
Ok, descobri como obter o preço USDJPY correto que corresponde ao preço correto GBPJPY MAE / MFE. O principal problema era que a plataforma MT4 que eu estava usando (demo IBFX) era buggy. Uma vez que estou apenas tentando obter os cálculos funcionando neste ponto, não estou preocupado em obter modelos de 90% ou 99%, então tentei baixar dados básicos da IBFX. Acontece que os dados do USDJPY que eu estava usando estão cheios de buracos e é uma porcaria total. Então, eu baixei uma plataforma de demonstração FXDD e seus dados, e uma vez que mudei algumas linhas de código, ele funciona corretamente.
O código acima funcionou depois eu mudei essas linhas:
Ok, descobri como obter o preço USDJPY correto que corresponde ao preço correto GBPJPY MAE / MFE. O principal problema era que a plataforma MT4 que eu estava usando (demo IBFX) era buggy. Uma vez que estou apenas tentando obter os cálculos funcionando neste ponto, não estou preocupado em obter modelos de 90% ou 99%, então tentei baixar dados básicos da IBFX. Acontece que os dados do USDJPY que eu estava usando estão cheios de buracos e é uma porcaria total. Então, eu baixei uma plataforma de demonstração FXDD e seus dados, e uma vez que mudei algumas linhas de código, ele funciona corretamente.
O código acima funcionou depois eu mudei essas linhas:
Isso é fantastico! especialmente podendo Excel! Você está interessado em compartilhar tudo? Espero que isso não pareça rude depois de ter feito todo o trabalho; ) Isso está faltando muito no MT4!
Expectativa matemática na negociação Forex Multicurrency.
Alguns comerciantes de divisas usam a mesma estratégia de negociação para todas as moedas, enquanto outros usam estratégias inteiramente diferentes dependendo dos pares de moedas que estão sendo negociados. Ou, os comerciantes podem usar múltiplas estratégias com vários pares de divisas, para aumentar os lucros, reduzindo o risco de redução resultante de excesso de concentração em uma única estratégia.
Os assessores especializados (EA) permitem otimizar os parâmetros de entrada, mas eles não tornam mais fácil juntar estratégias separadas em um único sistema. E, o teste pode mostrar um risco aumentado de remoções sobrepostas ou correlacionadas quando diferentes estratégias forex são combinadas.
Usando algoritmos, um sistema comercial pode verificar pares de moedas e executar operações específicas de acordo com os parâmetros de entrada. Uma multi-moeda, EA multi-sistema pode ser criada para avaliar todas as estratégias comerciais lado a lado. Isso pode ser útil no caso de uma única EA ter permissão para acessar uma determinada conta.
Pode ser um desafio desenvolver um sistema de comércio forex que funcione bem em diferentes pares de moedas sob uma variedade de condições. A maioria dos sistemas amplamente conhecidos para negociação multi-moeda baseiam-se em estratégias de tendência, como as fugas do canal Donchian, e são projetadas para lucrar com tendências a muito longo prazo. No entanto, uma estratégia de múltiplas moedas deve mostrar claramente uma "vantagem" vencedora sobre os horizontes de horário típicos para os comerciantes de forex.
Por exemplo, para que um sistema funcione bem com EUR / USD e USD / JPY, os sinais devem ter uma alta probabilidade de sucesso, apesar da volatilidade e correção potencial entre os dois pares. E, os negócios devem se tornar vencedores durante períodos de tempo razoavelmente curtos. Caso contrário, a negociação de pares correlacionados pode criar um risco de excesso de concentração e redução excessiva.
Existem muitas oportunidades lucrativas na negociação dos quatro principais pares de moedas e # 8212; EUR / USD, GBP / USD, USD / JPY e USD / CHF. Tenho desfrutado de um bom sucesso usando uma estratégia baseada na Expectativa Matemática (ME). Use-me para analisar dados e detectar oportunidades comerciais abrangentes e calcular pontos de entrada / saída para negociar os quatro principais pares de moedas.
A expectativa matemática prevê a probabilidade de um comércio forex ganhar.
Uma EA bem programada pode usar as ferramentas ME para ajudar a construir sistemas que funcionam em vários pares de moedas. Ajudei a desenvolver um par de sistemas que funcionam em tempo real e mostram rentabilidade a longo prazo através de back-testing.
Recentemente, os comerciantes tornaram-se mais conscientes das desvantagens que surgem ao usar técnicas de mineração de dados para testar e testar estratégias para sistemas de negociação forex. Métodos alternativos de desenvolvimento de sistemas como System Parameter Permutation (SPP) estão agora disponíveis e podem ajudar os comerciantes a evitar a questão do viés de mineração de dados.
Se for feito com cuidado, SPP ou mineração de dados ajudará a construir um conjunto de indicadores de boa qualidade para gerar sinais nos quatro principais pares de moedas. Então, o consultor especialista calcula a expectativa matemática para ver se o comércio provavelmente será lucrativo ou não.
Finalmente, é uma questão de especificar filtros e testes para encontrar estratégias precisas que consistentemente resultem em sinais lucrativos e lucrativos. Os pontos de entrada e saída são calculados pelo sistema de negociação mecânica usando a expectativa matemática ajustada pela volatilidade atual.
Calculando a expectativa matemática de sucesso.
Expectativa Matemática (ME) é uma estatística que mede o maior lucro temporário que um comércio experimentou durante todo o tempo que permaneceu aberto. Foi popularizado pela primeira vez sob as regras de posicionamento e gerenciamento de dinheiro Optimal-F desenvolvidas por Ralph Vince. A equação é:
Expectativa matemática = MFE - MAE.
A ferramenta de expectativa matemática oferece aos comerciantes de Forex de várias moedas uma "vantagem" preditiva no desenvolvimento de sistemas vencedores. ME é definido de acordo com os conceitos de Excursão Favorável Máxima (MFE) e Excursão Adversa Máxima (MAE). O valor de ME pode ser calculado em tempo real pelo sistema de negociação mecânica.
A excursão favorável máxima é o maior saldo em um comércio favorável antes que um comércio forex seja fechado, independentemente do preço de fechamento final durante o período, seja diariamente, por hora ou minuciosamente. O MFE é o maior saldo positivo alcançado enquanto o comércio estava aberto.
A Excursão adversa máxima é a maior perda não realizada ou temporária durante uma negociação, independentemente de o comércio ter sido fechado como um perdedor ou não. MAE é o menor saldo negativo no comércio enquanto estava aberto.
Para quantificar e analisar o ME de um determinado par forex, os comerciantes podem simplesmente calcular MFE médio e MAE médio para um grande número de trades passados. A expectativa matemática é igual a Excursão favorável máxima menos Excursão adversa máxima.
Se o MFE médio for maior que o MAE médio, a expectativa matemática é positiva. Quanto maior a relação entre MFE e MAE para um determinado par de moedas, mais favorável é a perspectiva de um comércio potencial.
Estratégias de negociação forex Multicurrency com base na Expectativa Matemática.
Ao negociar EUR / USD, GBP / USD, USD / JPY e USD / CHF com uma estratégia de várias moedas com base na Expectativa Matemática, esta métrica geralmente é positiva e geralmente alta, e similar entre os vários pares de moedas.
É importante evitar avaliar o tamanho da posição, ou regras de saída de comércio ou qualquer outro parâmetro enquanto o consultor especialista analisa os pontos de entrada. Esses parâmetros podem ser definidos de forma independente pelo sistema de negociação mecânica baseado em ME ajustado para a volatilidade, conforme discutido mais adiante neste artigo.
Depois de determinar o ponto de entrada e a direção do comércio, o sistema de negociação mecânica calcula os valores de MFE e MAE geralmente em primeiro lugar a 10 bar além do preço de entrada, depois 15 barras além, depois 20 barras além do preço de entrada.
Além de sinalizar pontos de entrada, o ME também mostra se a vantagem do comércio forex é melhor depois de abrir a posição, ou em algum intervalo médio depois de estar na posição.
Minha estratégia de negociação de múltiplas moedas mais simples usa gráficos diários e depende de uma combinação de três regras baseadas em preços, e apenas alguns parâmetros que usam a expectativa matemática para prever o sucesso.
As regras para negócios longos e curtos são as seguintes:
Comércio longo (e fechar um curto comércio) quando:
Fechar & gt; Anterior Próximo.
Abrir & gt; Anterior Baixo.
Anterior Fechar & gt; Prior Close.
Comércio curto (e fechar um longo comércio) quando:
Fechar & lt; Anterior Próximo.
Abrir & lt; Anterior Alto.
Anterior Próximo & lt; Prior Close.
Esse sistema reverte o comércio quando o sinal muda. Então, se o sistema tiver uma posição "longa" aberta quando um sinal "curto" for recebido, o sistema fechará a posição longa e, em vez disso, ficará curto. Da mesma forma, se o sistema tiver um # & # 8220; curto & # 8221; posição quando um & # 8220; longo & # 8221; o nível é recebido, ele irá fechar o curto e ir imediatamente.
Outro parâmetro deste sistema é o disparador de parada-perda que é definido em um valor apenas um pouco mais do que o intervalo verdadeiro médio de quinze dias ou vinte dias (ATR). Esse valor é atualizado sempre que um novo sinal é recebido na mesma direção.
No entanto, se houver novos sinais na mesma direção, o meu sistema não adiciona novas posições, já que descobriu que as retiradas superam os lucros adicionais ao fazê-lo.
Finalmente, no que diz respeito ao tamanho da posição, o sistema aloca um máximo de 2% do patrimônio da conta para um único comércio de ME alto. Se houver múltiplos sinais em vários pares de moedas, os cálculos ME estão mostrando correlação entre os sinais, o tamanho total da posição não será mais de 2% do patrimônio.
Resultados de negociação.
Este sistema simples de negociação de divisas de múltiplas moedas mostrou resultados decentes na negociação real, e back-testing em um período de vinte anos mostra que teria obtido resultados lucrativos por pelo menos dezesseis dos vinte anos testados. Ele mostrou uma relação de recompensa a risco de cerca de 1,7 e porcentagem de vencedor em torno de 45%, enquanto o fator de lucro foi de quase 1,4.
Ainda assim, as reduções podem ser demoradas - a retirada mais longa observada em back-testing foi superior a 1000 dias. A proporção de lucro para retirada ao usar esta estratégia é semelhante à das ações de compra e retenção e, durante o teste de back-testing, a proporção foi de aproximadamente 0,35 com um retorno total de mais de 500% durante um período de vigência de vinte anos, teste.
Gerenciamento de risco para estratégias de negociação de múltiplas moedas usando ME.
Ao conhecer os valores médios de MFE e MAE, um comerciante de forex pode programar um sistema mecânico de múltiplas moedas para sair de uma negociação em um alvo de lucro ou ponto de stop-loss determinado pela adição de um número calculado de pips além dos valores de Excursão Favorável Máxima ou Excursão Máxima.
Em média, para ganhar ao longo do tempo, o sistema de negociação forex deve atingir o objetivo de lucro com mais freqüência do que toca o nível de saída stop-loss.
Por exemplo, se meu sistema estiver vendo um MAE médio de 35 pips e um MFE médio de 55 pips, há uma oportunidade negociável. O alvo de lucro pode ser projetado para 50 pips, que é 5 pips menor que MFE, e a saída stop-loss pode ser configurada em 30 pips, o que é 5 pips além do MAE.
No que diz respeito ao design do sistema, é importante programar o sistema de negociação para definir metas de lucro e pontos de parada de perda de acordo com a volatilidade em vez de definir um número fixo de pips.
A volatilidade ajuda a determinar os pontos de saída para o comércio de moedas múltiplas.
Como mencionado anteriormente, um sistema de negociação mecânica pode facilmente usar o Average True Range (ATR) como uma ferramenta dependente da volatilidade para calcular MAE e MFE para definir pontos de saída. O sistema determina o preço de entrada mais ou menos uma porcentagem do ATR que é viável de acordo com a análise ME. Para ter uma amostra suficientemente grande, geralmente configurei o ATR para calcular os 15 ou 20 intervalos de tempo anteriores.
Por exemplo, durante um mercado quando o EUR / USD está movendo uma média de cerca de 100 pips por dia, o sistema deve calcular pontos de lucro alvo e pontos de stop-loss com base na volatilidade atual e na análise de ME.
Então, se um comércio se mover em uma direção favorável para 55 pips, e se o ATR atual for 85 pips, o movimento não é relatado como 55 pips; Em vez disso, o MFE é relatado como 64,7% de ATR.
Ao longo do tempo, vi que o MFE para os quatro principais pares de moedas EUR / USD, GBP / USD, USD / JPY e USD / CHF parece flutuar em torno de um valor de MFE de cerca de 60% de ATR e MAE médio em torno de 40 % de ATR para a entrada típica após 15 períodos de tempo.
Para ajustar os resultados da negociação forex de acordo com a volatilidade, o sistema de negociação mecânica pode definir os objetivos de lucro e os pontos de parada em diferentes níveis. Por exemplo, o sistema pode definir o ponto de saída do objetivo de lucro em 55% do valor ATR longe do ponto de entrada, não no valor total de MFE de 60%.
E, a volatilidade pode exigir a definição dos pontos de saída stop-loss a 45% do valor ATR além do ponto de entrada, não em 40% da ATR. Ainda assim, é provável que este sistema atinja os níveis de lucro alvo com mais frequência do que os níveis de stop-loss, e os vencedores devem ser maiores, desde que os lucros alvo sejam maiores do que as perdas de paradas.
Para todas as negociações, o número calculado de pips para lucros-alvo e stop-loss sempre baseia-se na volatilidade apenas no momento da negociação, conforme reflete a ATR.
Quando surge um sinal, o sistema de negociação verifica o valor da ATR atual e, em seguida, calcula o número exato de pips para atingir o lucro alvo e os níveis de stop-loss.
Por exemplo, suponha que haja um sinal longo em EUR / USD, e o ATR atual seja de 100 pips. Assim, o ponto de lucro alvo será de 55 pips sobre o preço de entrada (55% do valor ATR). E, o stop-loss será de 45 pips sob o preço de entrada (45% da ATR).
Mais alguns pensamentos sobre Expectativa Matemática.
A expectativa matemática é geralmente menor para os negócios "curtos", e alguns comerciantes viram ME aumentar até dezesseis barras depois do aberto, depois decaem-se durante as elevações de preços em até oitenta barras após a abertura.
Para negociações "longas", o ME geralmente tem uma vida útil mais longa, com valores que podem aumentar rapidamente até o trigésimo período de tempo e, em seguida, continuam lentamente até cerca de 75 períodos de tempo. Usando este sistema, minha duração média do comércio é de cerca de 25 dias.
A melhor vantagem ao negociar EUR / USD, GBP / USD, USD / JPY e USD / CHF parece acumular cerca de 30 períodos de tempo. Se o movimento favorável continua em frente a esse ponto médio, então é provável que algum tipo de viés fundamental no mercado esteja prolongando o movimento.
Em resumo, esta estratégia básica de negociação forex de múltiplas moedas aproveita um ME positivo e alto compartilhado entre os quatro principais pares de moedas. As entradas, metas de lucro e pontos de stop-loss são todos baseados em ME.
Quando os indicadores de expectativa matemática estão prevendo sucesso, os quatro principais pares de moedas e # 8212; EUR / USD, GBP / USD, USD / JPY e USD / CHF - podem ser negociados com sucesso juntos ou separadamente.
Комментариев нет:
Отправить комментарий