DTR Trading.
Um blog sobre estratégias de negociação de opções (Iron Condors, Strangles, Calendars, Butterflies), estratégias de rotação de ações e tecnologias relacionadas com Java para testar e automatizar o comércio.
Domingo, 14 de setembro de 2014.
Estratégias de Dados Históricos e Rotação Momentum.
Esses artigos são dos blogs do MarketSci e Woodshedder que escreveram um número de postagens (mais do que eu mencionei acima) sobre o tema das estratégias de rotação. Ambos parecem ser semi-aposentados agora e não blog muito. Na minha publicação, não analisaremos as próprias estratégias, mas sim os dados que eles usam.
Se você quiser usar o fechamento real em vez do fechamento ajustado no Ambroker, substitua a linha destacada acima, com a linha abaixo e volte a baixar todos os seus dados históricos do Yahoo.
Como lembrete, a série ajustada de tempo fechado é uma versão modificada da série real de tempo de fechamento que inclui ganhos de dividendos e ganhos de capital. Isso significa que um preço de compra mostrado em um backtest não será o preço de compra real que você poderia ter recebido na negociação nesse dia (para qualquer ação ou ETF que, em algum momento posterior, emitiu um dividendo ou ganho de capital). É muito importante pensar sobre este ponto e o impacto que pode ter em seus resultados de backtest versus live!
Se o seu sistema de rotação passasse a usar os preços ajustados ajustados e tivesse a AGG na sua cesta de veículos de rotação, a pontuação da AGG para 29 de agosto teria sido diferente em 29 de agosto quando você trocou, do que quando você executa seu backtest para essa data em setembro 2 (após a emissão de dividendos). Você notará que o fechamento de 29 de agosto é 109,98, mas o fechamento ajustado é de 109,79. e esta questão se articula com cada dividendo e ganho de capital que é emitido. Todo ajuste ajustado próximo é modificado quando um novo dividendo é emitido. Dê uma olhada na diferença entre o fechamento ajustado e o fechamento real apenas dois anos atrás:
Na imagem abaixo, você pode ver as curvas de equidade para várias estratégias de rotação diferentes executadas em relação aos 10 ETFs da lista acima, mas usando as séries de tempo de fechamento ajustadas. (Clique na imagem para ver uma versão maior).
Estas não são seleções muito diferentes entre as séries de tempo de fechamento ajustadas e as séries reais de tempo de fechamento com esta estratégia de rotação e os 10 ETFs na lista acima. Observei diferenças significativamente maiores com diferentes cestas de ETFs e fundos mútuos.
11 comentários:
Excelente ponto e excelente informação! obrigado.
Eu acho que você está faltando alguns pontos:
- se quiser obter resultados do seu backtest, incluindo dividendos e outras ações corporativas, você deve usar o ajuste ajustado.
- você deve se certificar de aplicar sinais a séries de tempo de preço ajustado ao usar a multiplicação / divisão (como ajuste ajustado) ou soma / diferenciação (como a média móvel). Você pode encontrar mais sobre isso na Bíblia por Murphy "Análise Técnica dos Mercados Financeiros"
AZTrader e pcavatore - obrigado pelos seus comentários.
Eu concordo com o pcavatore. Por que você não deseja usar preços ajustados para todos os cálculos, pois isso mostrará o retorno real? Os preços ajustados estão lá por esse motivo exato. Os preços reais fechados podem gerar sinais falsos, ou seja, queda de preços devido a dividendos.
Espero que ambos entendam isso com um sistema baseado em ranking / rotação que opera em uma cesta estática de veículos (que pagam dividendos e ganhos de cap), seu sistema gerará diferentes resultados de teste de volta todos os meses que você testar seu sistema quando você usa dados ajustados .
Por que devemos nos importar que um backtest não reproduza a negociação ao vivo? O que interessa é se a negociação ao vivo é rentável quando executada em um modelo de teste anterior, não que o backtest não reproduza negócios ao vivo após o fato. O fechamento ajustado eo fechamento real são o único e o mesmo na data de negociação em tempo real. Então, a menos que você possa demonstrar que testar um modelo em preços ajustados fechados tem um efeito negativo ao colocar ordens ao vivo no preço em tempo real ou faz um modelo de backtest mais propenso a falhas em tempo real, não consigo ver o alarme para qualquer outra coisa do que os esquemas de classificação relativa.
Você apenas atualizou meu ponto com sua última frase.
Isso faz sentido. Então, para o problema que você descreveu, ainda mais, no que diz respeito à AmiBroker, é que downloads não ajustados do Yahoo, mas as importações são ajustadas e apenas fornece o preço de fechamento não ajustado para usar o PositionScore se você ativar essa opção. Eu vejo um problema ao comparar o fechamento não ajustado com o ajustado O, H, L. Este problema deve ter sido o que Ruggerio estava aludindo há alguns anos no que diz respeito ao software Backtest do Trader's Studio usando três fluxos de dados separados ( tudo fornecido pelo CSI de onde o Yahoo é proveniente).
Por padrão, o Amibroker irá carregar os dados ajustados. Você pode modificar esse comportamento e mandá-lo carregar a série de preços reais / verdade ao alterar a linha $ FORMAT no arquivo Formats \ aqh. format conforme mencionado acima.
Data Abrir Alto Baixo Fechar Volume Ajustar Fechar *
18 de novembro de 2011 109,73 109,73 109,44 109,62 805,700 101,60.
Date Open High Low Close Volume.
18 de novembro de 2011 101.702 101.702 101.4332 101.6 805.700.
Por favor corrija-me se eu estiver errado. Os problemas que você destacou aqui são importantes somente se você confiar no número absoluto dos dados ajustados para seus cálculos.
Amleth, seu argumento faz sentido e é o que eu acreditava ser verdade antes da negociação desses sistemas ao vivo. O que experimentei pessoalmente na minha negociação ao vivo é diferente.
DTR Trading.
Um blog sobre estratégias de negociação de opções (Iron Condors, Strangles, Calendars, Butterflies), estratégias de rotação de ações e tecnologias relacionadas com Java para testar e automatizar o comércio.
Menu customizado.
Quarta-feira, 28 de setembro de 2016.
Código de AmiBroker do Sistema de Rotação Momentum.
Você pode baixar o código AFL acima do Google Drive: 00_60DayMomentum. afl.
Linha 1 - O comércio de rotação precisa ser ativado para este sistema Linha 24 - Os atrasos de comércio são definidos para 1, o que significa que os negócios são inseridos um dia após o sinal ser gerado Linha 43 - A variável LastDayOfMonth realmente armazena o segundo para o último dia do mês . Isso faz com que o sinal de classificação de rotação seja calculado no segundo ao último dia do mês. Uma vez que o nosso atraso comercial é um, o comércio ocorre no dia seguinte, o último dia do mês Linha 47 - Se o ROC (60) for negativo, o PositionScore é definido como 0, caso contrário o PositionScore está definido para o ROC (60 )
No segundo dia de negociação do mês, esta estratégia calcula o ROC de 60 dias para cada produto na carteira com base nos preços de fechamento desse dia. Se o ROC de 60 dias for negativo, o sistema define o PositionScore como 0 para esse produto. Em seguida, classifica todos os produtos no portfólio, selecionando o produto com a classificação mais alta. Se todos os produtos tiverem uma classificação de 0, o sistema passará para dinheiro. No último dia de negociação do mês, ele executa as ordens de compra e venda no fechamento - ordens de "mercado em fechamento" na negociação ao vivo.
AmiBroker Backtester Settings - guia geral.
AmiBroker Backtester Settings - Tab.
AmiBroker Backtester Settings - Stops Tab.
AmiBroker Backtester Settings - Guia Relatório.
AmiBroker Backtester Settings - Guia de portfólio.
AmiBroker Backtester Settings - guia Avançar para a frente.
AmiBroker Backtester Settings - Monte Carlo Tab.
AmiBroker Backtester Filter Settings.
Para executar o meu AFL na sua instalação do AmiBroker:
Faça o download do meu arquivo AFL Abra uma guia Análise AB Selecione meu arquivo AFL no campo Fórmula na guia Análise Atualize as configurações de filtro (mostrado acima) para executar somente esta estratégia contra uma lista de exibição específica Altere o intervalo para "Datas From-To" e depois selecione um intervalo de datas Finalmente, selecione o botão Backtest para executar a estratégia.
Depois de ter testado de retorno configurado e em execução, o próximo passo é automatizar as atualizações de cotações e a geração de sinal. Eu uso o utilitário Windows Task Scheduler para chamar scripts JS, que por sua vez iniciam o AB e o AmiQuote. Este tópico está além do escopo deste artigo, mas posso discutir isso no futuro.
ami broker.
Use a ferramenta de Exploração AmiBroker poderosa e ultra-rápida para explorar o mercado para oportunidades e ineficiências - sua vantagem para ficar à frente da multidão.
Definir entrada objetiva & amp; saia regras para remover as emoções da sua negociação. Use Backtesting no nível da carteira e amp; Otimização para ajustar o desempenho. Valide a robustez usando Walk-forward & amp; Simulação de Monte Carlo.
Troque visualmente por Gráficos ou use a ferramenta Análise para gerar lista de pedidos, ou faça pedidos diretamente do seu código usando a interface de negociação automática. Seja qual for o seu estilo. A escolha é sua.
Atualize sua negociação para o próximo nível.
Gráficos poderosos, fáceis de usar e bonitos.
As médias, bandas e indicadores de arrastar e soltar, outros parâmetros, modifiquem parâmetros em tempo real usando controles deslizantes e personalizem usando muitos estilos diferentes e amp; gradientes para torná-los bonitos.
O backtesting e otimização de portfólio mais rápido do mundo.
A velocidade surpreendente vem junto com recursos sofisticados como: dimensionamento de posições avançadas, pontuação e classificação, negociação rotacional, métricas personalizadas, backtesters personalizados, suporte a múltiplas moedas.
Automação e processamento em lote.
Não gaste seu tempo e energia em tarefas repetidas. Deixe a AmiBroker automatizar sua rotina usando um processador Batch recém-integrado. Não há mais chatos repetidos. Você pode executá-lo a partir do agendador do Windows para que o AmiBroker possa funcionar enquanto você dorme.
Toda a informação ao seu alcance.
Esta é apenas uma das muitas coisas que você pode fazer usando a Exploração.
A janela Análise é o lar de backtesting, otimização, walk-forward e simulação de Monte Carlo.
Ferramentas poderosas para o comerciante do sistema.
A janela Análise.
A janela Análise é o lar de todas as suas verificações, explorações, backtests de portfólio, otimizações, testes avançados e simulação de Monte Carlo.
Selecione mercados para oportunidades.
Exploração é ferramenta de triagem multidimensional / mineração de dados que produz saída tabular totalmente programável com número ilimitado de linhas e colunas de todos os dados de símbolos.
Teste seu sistema.
O Backtest permite testar o desempenho do seu sistema em dados históricos. A simulação é realizada em nível de carteira como na vida real, com vários títulos negociados ao mesmo tempo, cada um com uma regra de dimensionamento de posição definível pelo usuário.
Pontuação & amp; ranking.
Se os sinais de entrada múltipla ocorrerem na mesma barra e você fica sem poder de compra, o AmiBroker realiza um ranking bar-by-bar com base na classificação de posição definível pelo usuário para encontrar comércio preferível.
Encontre valores de parâmetros ótimos.
Diga à AmiBroker que tente milhares de combinações de parâmetros diferentes para encontrar os melhores. Use a Otimização de Inteligência Artificial Inteligente (Embreagem de Partículas e CMA-ES) para procurar espaços enormes em tempo limitado.
Teste avançado.
Não caia em uma armadilha sobreposta. Valide a robustez do seu sistema, verificando o desempenho fora da amostra após o processo de otimização em amostra.
Simulação de Monte Carlo.
Prepare-se para condições de mercado difíceis. Verifique os cenários do pior caso e a probabilidade de arruinar. Veja as informações estatísticas de seu sistema comercial.
Linguagem de fórmula concisa e rápida para expressar suas idéias de negociação.
Processamento rápido de matriz e matriz.
Nos vetores e matrizes de AmiBroker Formula Language (AFL) são tipos nativos como números simples. Para calcular o ponto médio dos arrays High e Low element-by-element, basta digitar MidPt = (H + L) / 2; // H e L são arrays e é compilado para o código da máquina vectorizada. Não é necessário escrever loops. Isso permite executar suas fórmulas na mesma velocidade que o código escrito no montador. Os operadores e as funções de matriz rápida nativas tornam os cálculos estatísticos uma brisa.
Uma linguagem concisa significa menos trabalho.
Seus sistemas de negociação e indicadores escritos na AFL terão menos digitação e menos espaço do que em outras línguas, porque muitas tarefas típicas na AFL são apenas single-liners. Por exemplo, a parada de Chandelier baseada em ATR é dinâmica: ApplyStop (stopTypeTrailing, stopModePoint, 3 * ATR (14), True, True);
Depurador interno.
O depurador permite que você faça um passo único através do seu código e veja as variáveis em tempo de execução para entender melhor o que a sua fórmula está fazendo.
Editor de código de última geração.
Desfrute de um editor avançado com destaque de sintaxe, auto-completar, dicas de chamada de parâmetro, dobramento de código, auto-indentação e relatórios de erros em linha. Quando você encontra um erro, a mensagem significativa é exibida diretamente na linha, portanto, não esticar seus olhos.
Menos digitação, resultados mais rápidos.
A codificação de sua fórmula nunca foi tão fácil com fragmentos de código prontos para uso. Use dezenas de fragmentos pré-escritos que implementam tarefas e padrões comuns de codificação, ou crie seus próprios trechos!
Multi-threading.
Todas as suas fórmulas beneficiam automaticamente de vários processadores / núcleos. Cada fórmula de gráfico, renderizador gráfico e cada janela de análise são executadas em segmentos separados.
Três edições AmiBroker para escolher.
Edição Padrão.
Versão de nível de entrada para comerciantes de fim de dia e swing. Fim de dia e Tempo real. Intraday a partir do intervalo de 1 minuto. Limite de 10 símbolos na janela de cotações em tempo real. 2 threads simultâneos por janela de análise. Apenas 32 bits.
Edição Profissional.
Plataforma profissional em tempo real e analítica com backtesting e otimização avançados. Fim de dia e Tempo real. Todos Intraday Tick / Second / Minute intervalos, símbolos ilimitados na janela de cotação em tempo real. Símbolos ilimitados em Time & amp; Sales. Estatísticas de MAE / MFE incluídas. Até 32 threads simultâneos por janela de análise. Inclui versões de 64 bits e 32 bits.
Ultimate Pack Pro.
Tudo o que a AmiBroker Professional Edition possui mais dois programas muito úteis:
AmiQuote - download de citações de múltiplas fontes em linha com dados EOD e intraday gratuitos e dados fundamentais gratuitos.
Assistente de código AFL - cria fórmulas AFL fora de frases em inglês simples. Ferramenta de aprendizagem inestimável para iniciantes. (AmiQuote e as licenças do Assistente de Código AFL valem US $ 198 quando compradas separadamente, para que você economize 8% ao comprar este pacote)
Requisitos do sistema: Microsoft Windows 10, 8.1, 7, Vista, XP, 2000, pelo menos 512 MB de RAM. Os usuários do Apple Mac podem usar o Bootcamp / Parallels / VMWare para executar o AmiBroker.
Empresa Sobre Nós Termos de Branding & amp; Condições Política de Privacidade Us & # x2709; Docs Lista de recursos O que há de novo Guia do usuário Fontes de dados Vídeos Suporte Suporte técnico & amp; Área de Membros de Vendas Área de Conhecimento Base de Conhecimento do DevLog KB Outros AmiBroker YahooGroup Links úteis.
Este site usa cookies. Ao navegar neste site você concorda com nossa privacidade e amp; política de cookies.
Комментариев нет:
Отправить комментарий