суббота, 7 апреля 2018 г.

Sistema de negociação rotacional amibroker


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.

Sistema de negociação rotativo Amibroker
- Activa o modo de negociação rotacional do backtester.
Caixa de ferramentas do sistema de negociação.
Nota: esta função agora está marcada como obsoleta. Use SetBacktestMode (backtestRotational) em novas fórmulas.
NOTA IMPORTANTE: A menos que você deseja implementar sistema de troca de fundos / rotação, você NÃO deve usar este modo.
O comércio de rotação é um método popular para a negociação de fundos mútuos. Também é conhecido como fundo de comutação ou pontuação e classificação. Seu permiso básico é girar símbolos o tempo todo para que apenas as principais questões N classificadas de acordo com algumas pontuações definidas pelo usuário sejam negociadas. O número de posições abertas depende da configuração "Posições máximas máximas" e dos fundos disponíveis / tamanho da posição. Uma vez que a posição é inserida permanece no lugar até a classificação da segurança cair abaixo de WorstRankHeld (configurável através do SetOption ("WorstRankHeld", 5)). Os sinais regulares de compra / venda / curto / cobertura não são utilizados.
O modo rotacional usa apenas uma variável de pontuação (PositionScore) para classificar e girar títulos. Esta ideia foi implementada anteriormente na fórmula PortfolioTrader AFL escrita por Fred Tonetti com GUI escrita por Dale Wingo.
Para entrar neste modo, você deve chamar a função EnableRotationalTrading () no início da sua fórmula. A partir de então, o uso de variáveis ​​buy / sell / short / cover não é permitido. Somente a variável PositionScore será usada para classificar os títulos e negociar os principais títulos N.
Uma fórmula de troca rotatória simples (os estoques com RSI alto são os melhores candidatos para curto prazo, enquanto as ações com baixo RSI são melhores candidatos para posições longas):
SetOption ("WorstRankHeld", 5);
PositionScore = 50 - RSI (); // PositionScore tem o mesmo significado que rScore no PT.
A pontuação (PositionScore) para todos os títulos é calculada primeiro. Então todas as pontuações são classificadas de acordo com o valor absoluto de PositionScore. Então, o N superior é escolhido para ser negociado. N depende dos fundos disponíveis e da configuração "posições máximas". O Backtester entra sucessivamente nas negociações a partir da segurança mais alta até que o número de posições abertas atinja "posições máximas abertas" ou não haja mais fundos disponíveis. A pontuação tem o seguinte significado: maior pontuação positiva significa melhor candidato para entrar no comércio longo menor pontuação negativa significa melhor candidato para entrar no curto comércio o escore de zero significa que não há comércio (saia do comércio se já houver posição aberta em determinado símbolo) a pontuação igual a consistência de scoreNoRota significa que as negociações já abertas devem ser mantidas e nenhuma negociação nova entrou na pontuação igual a scoreExitAll constante faz com que o backtester do modo rotacional saia de todas as posições independentemente do HoldMinBars. Observe que esta é uma bandeira global e basta configurá-lo para apenas qualquer símbolo para sair de todas as posições atualmente abertas, independentemente do símbolo que você use scoreExitAll (pode ser mesmo em um símbolo que não está atualmente ocupado). Ao configurar PositionScore para scoreExitAll, você sai de todas as posições imediatamente, independentemente da configuração do HoldMinBars.
As saídas são geradas automaticamente quando a classificação da segurança cai abaixo do "pior ranking". Não há controle real sobre quando as saídas acontecem, exceto para estabelecer baixa pontuação para forçar as saídas. Você também pode definir a pontuação em qualquer (pelo menos uma) segurança para o valor de scoreNoRotate para evitar a rotação (então as posições abertas já são mantidas). Mas isso é global e não lhe dá controle individual.
O modo de rotação comercial usa "preço de compra" e "atraso de compra" nas Configurações | Página comercial como preço comercial e atraso para entradas e saídas (longas e curtas)
SetOption ("WorstRankHeld", 5);
PositionScore = 50 - RSI (); // PositionScore tem o mesmo significado que rScore no PT.
Referências:
A função EnableRotationalTrading é usada nas seguintes fórmulas na biblioteca on-line AFL: força relativa.

Комментариев нет:

Отправить комментарий