Skip to main content

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.


ami broker.


6 de outubro de 2017.


Limites de multithreading.


De vez em quando, os usuários nos aproximam perguntando várias questões relacionadas ao multithreading, tais como:


Por que sua fórmula não é executada 32 vezes mais rápido no computador de 16 núcleos / 32 threads O processador de 16 núcleos será duas vezes mais rápido do que o núcleo 8 Porque a CPU não mostra 100% de uso.


O motivo de todas essas questões é a falta de compreensão do multithreading e das leis que regem a computação em geral.


Neste artigo, tentaremos abordar alguns desses mal-entendidos e equívocos. Nós assumimos que o leitor já leu o uso eficiente de multitração dos usuários da AmiBroker & # 8217; # 8217; guia e está plenamente consciente de como o trabalho é distribuído em muitos tópicos na janela Análise. Nós também assumimos que o leitor já leu o capítulo de desempenho da Peeper no guia do AmiBroker & # 8217; s guia. Estas duas partes do manual explicam conceitos fundamentais e são essenciais para a compreensão do que está escrito abaixo.


Outra leitura fundamental é o artigo da lei de Amdahl na Wikipedia que explica o limite de aceleração teórica de qualquer programa multi-threaded. Em suma, a lei de Amdahl diz que, se 95% do seu programa é executado em múltiplos segmentos e apenas 5% dele é serial (single-threaded), o máximo de aceleração possível independentemente do número de CPUs e quantos núcleos você possui. 20x (20 vezes).


Concentremo-nos no desempenho da janela de Análise (Exploração / Digitalização / Backtesting / Otimização). Qualquer operação na janela Análise envolve:


preparando dados (isto envolve a leitura de dados do banco de dados, a compactação de dados para o intervalo selecionado, filtragem, preenchimento, etc.) configuração do mecanismo AFL para execução (configuração de arrays embutidos, paradas, análise de sua fórmula) execução da sua fórmula (em backtest, por exemplo, significa primeira fase do backtest executado, feito em cada símbolo) por símbolo processando a saída de sua fórmula (no backtest é classificar sinais por pontuação de posição) pós-processamento (no caso de backtest de portfólio é, por exemplo, portfólio fase de backtest que é feita uma vez por backtest, NÃO para cada símbolo)


O AmiBroker é um aplicativo multithreading altamente paralelo, portanto a maioria das etapas é feita em vários tópicos. Especificamente apenas o primeiro e o último (1. e 5.) passo é serial, o resto (2, 3, 4) é paralelo. Vale ressaltar que os passos 1-4 são feitos em cada símbolo, enquanto o passo 5 é feito apenas uma vez para todos os símbolos. Além desse programa, gasta algum tempo no gerenciamento da UI (coisas como atualizar controles de UI como barra de progresso e reagir à entrada do mouse / teclado), que é claro, em um único segmento (UI principal).


Existe uma exceção, um caso especial: otimização individual. Na otimização individual, o passo 1 é feito apenas uma vez (para um símbolo), e todas as outras etapas 2-5 (incluindo a última) são feitas em vários segmentos.


Agora, é onde a lei de Amdahl é iniciada. Ao adicionar threads / núcleos / processadores, você só pode diminuir as partes paralelas (2..4 ou 2..5) e, em última instância, você está limitado pela velocidade de acesso aos dados. Você pode "back back" mais rápido do que você pode ler / preparar os dados.


Quanto ao acesso a dados: o banco de dados é recurso compartilhado, independentemente de onde reside. Se ele reside no disco rígido, é um dispositivo físico único que não se acelera com o aumento do número de CPUs. Se ele reside na RAM, ainda é uma RAM física única, que tem limite de largura de banda e latência fixa, independentemente de quantos processadores você joga na mistura. Mesmo que esteja no cache L3 (Nível 3) no processador, ainda é um cache L3 único compartilhado por múltiplos núcleos. E não vale a pena nada, que o cache L3, mesmo na maioria dos processadores modernos, opera na metade da velocidade do núcleo, de modo que o único núcleo pode realmente saturar a largura de banda do cache L3 se não faz nada além de ler ou escrever grandes partes de dados de / para ele. Em muitos casos, isso significa que o processador deve aguardar a memória, a menos que esteja fazendo cálculos complexos envolvendo apenas uma quantidade mínima de dados. Estes são, por exemplo, resultados de medição do mundo real para controlador de RAM de triplo canal na CPU Intel i7 920 (medido usando o programa memtest86)


Apenas cache L1 é executado na velocidade máxima do núcleo. Como você pode ver o cache L3 tem metade da largura de banda e a RAM possui 1/4 de largura de banda do cache L1. Claro que as velocidades do disco (mesmo SSD) estão muito longe por trás de 11 GB / segundo oferecido pela RAM.


Em caso de backtest do portfólio: uma fase de back-back final (backtesting de portfólio) é uma por backtest, feita uma vez para todos os símbolos, então, naturalmente, é feito em um único segmento (em oposição à primeira fase que é feita em cada símbolo em paralelo).


Agora, sabendo disso tudo, você pode se perguntar como usar todo esse conhecimento na prática.


Por exemplo, permite compreender os limites de ganhos de velocidade alcançáveis ​​para determinada fórmula e planejar suas compras de hardware ou encontrar maneiras de melhorar os tempos de execução.


Como aprendemos com o acima, as únicas partes que podem ser aceleradas adicionando mais núcleos são aquelas que são executadas em paralelo (vários segmentos). Na prática, significa "# 8211; seu código de fórmula AFL. Quanto mais, mais tempo é gasto em partes paralelas, melhor se equilibra em múltiplos núcleos. Isso significa que as fórmulas simples NÃO se dimensionam muito bem porque são muito simples para colocar bastante tensão na CPU e são principalmente a conexão de memória (acesso a dados). Todas as suas transições simples de transição média simples são simples demais para manter a CPU ocupada por mais tempo, especialmente quando não há muitos dados para processar.


Deixe-nos tomar esta fórmula trivial, por exemplo:


e execute Optimize-> Individual Optimize no símbolo que possui 2000 citações.


Agora, mude para & # 8220; Info & # 8221; guia na janela Análise e você verá esta saída (este exemplo vem de 4 núcleos / 8 threads Intel i7), todos os tempos são em segundos:


Otimizante individual iniciado.


Concluído em 0,49 segundos. Número de linhas: 500.


(Timings: dados: 0.11, setup: 0.00, afl: 0.28, job: 2.97, lock: 0.00,


pbt: 0.00, UI thread: 0.11, threads do trabalho: 3.26 / 3.26)


Portanto, nossa otimização de 500 passos em citações de 2000 demorou menos da metade do segundo. O que você vê há alguns números crípticos que você pode imaginar o que eles querem dizer. Aqui está a explicação (para o backtest / otimização)


a) dados & # 8211; Tempo gasto a acessar / preparar os dados.


b) configuração & # 8211; Tempo gasto na preparação do motor AFL.


c) afl & # 8211; Tempo gasto executando sua fórmula (primeira fase do backtest)


d) trabalho & # 8211; pós-processamento (aqui são coletados os sinais e a simulação comercial é realizada no caso de otimizar individualmente)


e) bloquear & # 8211; Tempo gasto na seção crítica / bloqueio acessando tabela de sinal compartilhado.


f) pbt & # 8211; código de backtesting do portfólio (não usado na otimização individual)


g) UI thread & # 8211; Tempo gasto na UI thread no total (data + pbt + UI handling) & # 8211; tempo de rosca simples.


h) threads de trabalho & # 8211; Tempo gasto em threads de trabalho (paralelo) (setup + afl + job + lock) & # 8211; tempo multi-threaded.


Em primeiro lugar, pode parecer surpreendente que & # 8220; threads de trabalho & # 8221; O tempo é 3.26, o que é muito maior do que a otimização completa realizada (0,49 segundos). Mas desta vez é uma SOM dos tempos gastos em todos os 8 tópicos. Corriam em paralelo. Cada um estava executando para (3.26 / 8 segundos = 0.4075 segundos), e com apenas um segmento executando, seria de 3.26s. Agora você de repente percebe o poder do multi-threading!


Então, agora, parece que nossa fórmula corre (0.11 + 3.26) /0.49 = 6.8 vezes mais rápido do que em um único núcleo.


Você pode perguntar por que não 8x? Nós tivemos 8 tópicos, didn & # 8217; t nós?


O primeiro motivo é a lei da Amdahl & # 8217; O tempo de série (0.11sec) é constante e limita nossa velocidade, não importa quantos tópicos você colocaria, mas há algo mais.


Permitam-nos verificar quanto tempo isso realmente demora se limitarmos a um único tópico. Tente executar com a indicação #pragma limitando o número de threads:


De repente, o resultado é:


Otimizante individual iniciado.


Concluído em 1,62 segundos. Número de linhas: 500.


(Timings: dados: 0.07, configuração: 0.00, afl: 0.10, job: 1.37, lock: 0.00,


pbt: 0.00, UI thread: 0.07, threads do trabalho: 1.47 / 1.47)


O que? A otimização completa levou apenas 1,62 segundos quando executado em um único segmento, que é apenas 3,3 vezes mais lento que o multi-threaded, e não 6,8x como calculamos anteriormente. Por que thread de trabalho é 1.47? Era 3.26? O que aconteceu?


Há algumas razões para isso:


a) Hyper-threading & # 8211; Assim que você exceder a contagem de núcleo da CPU e começar a confiar em hipertensão (executando 2 threads em um único núcleo), descobre que a hipertensão não oferece desempenho 2x. Se o seu código NÃO estiver fazendo coisas complicadas, como muitas funções trigonométricas que colocam o FPU ocupado ou outro crunching de números, o hyperthreading não lhe dará um desempenho de 2x. Em tarefas simples, luta para entregar + 30%.


b) Turbo boost & # 8211; As CPUs modernas têm configurações diferentes para o turbo boost e o turbo boost multi-core. O efeito é que a CPU pode atingir o aumento de clock para 4GHz quando se usa apenas um único núcleo, mas o limite para 3.5GHz ao executar o código multi-threaded. Isso limita o desempenho multi-threaded e acelera aplicativos de thread único.


c) cache C3 simultâneo / acesso RAM e # 8211; Quando vários núcleos executam o código que acessa o cache / RAM L3, eles lutarão pelo acesso desacelerando.


O efeito de todos os três fatores é amplificado pelo fato de que nossa fórmula é extremamente simples e NÃO faz nenhuma matemática complexa, portanto é basicamente vinculada a dados. É por isso que a execução de um único núcleo não era tão ruim quanto esperávamos.


Mas o que aconteceria se aumentássemos o número de barras (mantendo a fórmula o mesmo)? Vamos tentar com 12000 barras de dados (6 vezes mais dados do que anteriormente):


Otimizante individual iniciado.


Concluído em 1,61 segundos. Número de linhas: 500.


(Timings: dados: 0.18, configuração: 0.00, afl: 0.81, job: 11.57, lock: 0.00,


pbt: 0.00, UI thread: 0.19, threads de trabalho: 12.38 / 12.38)


Otimizante individual iniciado.


Concluído em 6,90 segundos. Número de linhas: 500.


(Timings: dados: 0,10, configuração: 0,00, afl: 0,28, trabalho: 6,48, bloqueio: 0,00,


pbt: 0.00, UI thread: 0.10, threads do trabalho: 6.76 / 6.76)


Primeiro, observamos que, embora usemos 6x mais dados, o tempo no caso multi-threaded aumentou de 0.49 para 1.61, que é apenas 3.28x. Em segundo lugar, vemos que a execução de 8 threads é agora de 6.90 / 1.61 = 4.29 vezes mais rápida que a única threadada.


O que aconteceu que o desempenho multi-threaded agora é melhor e ele melhorou?


Simplesmente # 8211; nós carregamos CPU com mais trabalho. Essa é a regra geral, quanto mais trabalho você colocar na CPU, mais tempo é gasto em seção paralela e mais ganhos que você obtém de multi-threading.


Então, o que aconteceria se você colocasse CPU em algum trabalho muito pesado. É surpreendentemente difícil colocar a CPU i7 em um trabalho tão difícil que fica ocupado fazendo cálculos e não fazendo muito acesso à memória. Você realmente precisaria usar funções que fazem pilhas em cálculos em pequenos pedaços de dados sentados em cache L1 o tempo todo ou usam algumas funções matemáticas transcendentais que exigem FPU para passar mais do que um único ciclo para derivar o resultado. Vamos tentar com a combinação de elevação para poder, logaritmo decimal e arcus seno.


Uma vez que você executa isso, você verá AmiBroker saturando sua CPU (na minha finalidade, ela usa 99% da CPU) pela primeira vez. Os resultados são:


Otimizante individual iniciado.


Concluído em 39,39 segundos. Número de linhas: 500.


(Timings: dados: 0.14, setup: 0.00, afl: 302.73, job: 9.14, lock: 0.00,


pbt: 0.00, UI thread: 0.14, threads de trabalho: 311.87 / 311.87)


Otimizante individual iniciado.


Concluído em 251,27 segundos. Número de linhas: 500.


(Timings: dados: 0,12, configuração: 0,00, afl: 243,92, trabalho: 6,59, bloqueio: 0,00,


pbt: 0.00, UI thread: 0.12, threads de trabalho: 250.51 / 250.51)


Agora, você pode ver que a execução de 8 threads foi (251.27 / 39.39) 6,38 vezes mais rápida que a única threadada.


Esta é uma escala quase perfeita com hyperthreading & # 8211; Lembre-se que o fio hiper-roscado não é rápido como fio de núcleo separado. Para provar que podemos executar o mesmo código em 4 tópicos:


Com quatro tópicos, obtemos:


Otimizante individual iniciado.


Concluído em 64,63 segundos. Número de linhas: 500.


(Timings: dados: 0.13, setup: 0.00, afl: 250.22, job: 6.91, lock: 0.00,


pbt: 0.00, UI thread: 0.13, threads de trabalho: 257.12 / 257.12)


Portanto, o desempenho de 4 threads foi 251,27 / 64,63 = 3,89 mais rápido do que um thread. E olhe para o & # 8220; threads de trabalho & # 8221; O tempo é muito próximo ao tempo de thread único (250s vs 257s). Isso prova nosso ponto de vista, exceto o efeito da RAM e do congestionamento L3 e uma velocidade de impulsão turbo ligeiramente mais lenta, os fios de núcleo completo se dimensionam perfeitamente, desde que a sua fórmula os coloque em algum trabalho real.


Nota: em todos esses testes, NÃO incluímos o impacto da velocidade do disco porque executamos a otimização individual de um único símbolo, que fica sem memória RAM.


A linha inferior é: apesar da campanha publicitária de marketing, a CPU de 32 threads não lhe compra um desempenho de 32x. O desempenho do mundo real depende de muitos fatores, incluindo a complexidade da fórmula, sempre que seja pesado em matemática ou não, quantidade de dados, velocidade de RAM, tamanhos de cache no chip, turbo boost clocks diferenças entre configurações de thread único e multi-thread e assim por diante . O diabo está nos detalhes e não há respostas simples. Eu sempre digo: não assuma. Os pressupostos não são fatos. A menos que você mede algo, não sabe.


Artigos relacionados:


Arquivado por Tomasz Janeczko às 6:25 pm em Análise, Backtest.


Comentários desativados em Limites de multithreading.


17 de abril de 2016.


Back-test rotacional de longa duração.


O comércio de rotação é um tipo de backtest onde você troca alterando posições entre vários símbolos com base em sua pontuação relativa em vez de sinais tradicionais de compra / venda / curto / cobertura.


Como não há sinais usados, apenas o PositionScore atribuído a um símbolo dado é importante.


Vale ressaltar que em caso de teste rotativo, o campo Posições na guia Geral das configurações de Análise é ignorado. Ele é usado apenas para backtests regulares que usam sinais reais de compra / venda / curto / cobertura.


No modo rotacional, os negócios são conduzidos por valores da variável PositionScore sozinhos.


maior pontuação positiva significa melhor candidato para entrar em um longo prazo, o menor resultado negativo significa melhor candidato para entrar no curto comércio.


Como você pode ver, a variável SIGN of PositionScore decide sempre que é longo ou curto.


Portanto, & # 8211; se quisermos testar o sistema de longo tempo no modo de teste de rotação reversa, então devemos usar apenas valores positivos na variável PositionScore. Por exemplo, & # 8211; se estamos negociando um sistema, que usa taxa de variação de 252 barris para fins de pontuação:


Então, para negociar apenas posições longas, devemos mudar a definição do PositionScore, por exemplo, para:


Desta forma, nossas pontuações permanecerão positivas e isso irá efetivamente desativar negócios curtos.


Mais informações sobre o modo de rotação do backtester podem ser encontradas no manual: amibroker / guide / afl / enablerotationaltrading. html.


Artigos relacionados:


Arquivado por Tomasz Janeczko às 21h59 sob o comando do General.


30 de janeiro de 2016.


Separe as classificações para as categorias que podem ser usadas no backtesting.


Quando queremos desenvolver um sistema de negociação, que insere apenas N símbolos de pontuação superior de cada um dos setores, indústrias ou outros subgrupos de símbolos classificados separadamente, devemos criar classificações apropriadas para cada uma dessas categorias. Isso pode ser feito com as funcionalidades de classificação fornecidas pela função StaticVarGenerateRanks.


A fórmula apresentada abaixo itera através da lista de símbolos incluídos no teste e, em seguida, calcula as pontuações utilizadas para classificar e as grava em variáveis ​​estáticas. Os nomes das variáveis ​​estáticas são baseados no número da categoria (setores neste exemplo) e que permite criar classificações separadas para cada setor.


Nosso teste deve ser aplicado a uma lista de observação, que contém todos os símbolos que queremos incluir no nosso código de classificação:


A execução da exploração mostrará dois símbolos de topo para cada um dos setores:


Também podemos alterar a definição de variável de filtro para.


e mostre todos os símbolos classificados.


Essas informações de classificação podem ser usadas em backtest e as regras de exemplo incluídas no final do código usam informações de classificação para permitir que apenas dois símbolos com pontuação superior sejam negociados.


Artigos relacionados:


Arquivado por Tomasz Janeczko às 1:22 da manhã sob o general.


29 de janeiro de 2016.


Parada de ruína ou misterioso Short (6) na lista de comércio.


Quando você testar novamente um sistema de negociação, às vezes você pode encontrar trades marcados com (6) razão de saída, mostrando por exemplo: Curto (6) ou Curto (ruína) na lista comercial como na figura abaixo:


Conforme explicado neste artigo da Base de Conhecimento: amibroker / kb / 2014/09/24 / how-to-identifier-which-signal-triggers / such identificador nos diz que o comércio foi fechado por causa da ruína parar a ativação.


Uma parada de ruína é uma parada de porcentagem fixa embutida em -99,96%, portanto, é ativada se sua posição está perdendo quase todos (99,96%) de seu valor de entrada. Isso quase nunca ocorre em negócios longos, mas pode ser bastante comum se o seu sistema de negociação faça transações curtas sem qualquer tipo de perda máxima. Imagine que você poupe um estoque quando seu preço é de US $ 10, então o preço da unidade subiu para US $ 20 (o dobro do preço de entrada). Quando você compra para cobrir o cargo, você deve pagar US $ 20 por ação, o que significa que sua perda nesse comércio é de US $ 10 por ação (US $ 20 a US $ 10). Isso significa perda de 100% (conforme o valor de entrada). Se você colocou tal comércio com todo seu capital, você estaria falido. É por isso que esta parada é chamada de "parada de ruína" # 8221 ;. Infelizmente, pela natureza da venda a descoberto, os ganhos são limitados a 100% (quando o preço das ações diminui para zero), mas as perdas são praticamente ilimitadas.


Então, o que fazer para evitar saídas por arruinação?


A melhor idéia é apenas colocar o máximo adequado. Parada de perda em porcentagens muito menores (como 10% ou 20%), dependendo da tolerância ao risco, para limitar as reduções e diminuir a chance de limpar sua conta até zero.


Se, por algum motivo estranho, você quiser desligar esta parada embutida, você pode fazer isso usando este código:


mas é altamente desencorajado, porque quando você limpa sua conta até zero (ou mesmo abaixo de zero), não faz sentido executar novamente o teste. Em vez de desabilitar esse recurso, você deve colocar a parada de perda máxima adequada e mais apertada.


Artigos relacionados:


Arquivado por Tomasz Janeczko às 4:04 pm sob Stops.


28 de janeiro de 2016.


Como funciona o modo de risco, parar de funcionar?


Além de paradas regulares por porcentagem ou ponto, o AmiBroker permite definir o tamanho da parada como risco (stopModeRisk), o que significa que permitimos apenas desistir de uma certa porcentagem do lucro obtido em determinado comércio. A imagem apresentada abaixo visualiza uma parada de fim de modo de risco usando tamanho de risco de 35%. Uma vez que no início do comércio, os lucros podem ser muito baixos (e potencialmente desencadear saídas indesejadas), esse tipo de parada é melhor usar com argumento válido, o que permite atrasar a parada de ativação por certo número de barras.


A linha azul na parte superior representa a maior alta desde a entrada, enquanto a linha vermelha mostra o cálculo do nível de parada, a área amarela mostra as barras, onde nossa parada ficou ativa:


Os níveis acima foram calculados com o seguinte código:


Artigos relacionados:


Arquivado por Tomasz Janeczko às 6:45 am sob Stops.


20 de janeiro de 2016.


Número de negociações interrompidas como métricas personalizadas.


Para fins de contagem de negociações fechadas por parada específica, podemos nos referir à propriedade ExitReason do objeto comercial no backtester personalizado. A fórmula de backtest personalizada apresentada abaixo itera através da lista de negócios fechados e conta os negócios, que indicam a razão de saída = 2, que é stop-loss.


Os seguintes valores são utilizados para indicação do motivo de saída particular:


saída normal perda máxima parar lucro alvo parar arrastar parar n-bar parar arruinar a parada (perder 99,96% do valor de entrada)


Artigos relacionados:


Arquivado por Tomasz Janeczko às 3:16 pm sob Backout personalizado.


6 de outubro de 2015.


Como executar determinado fragmento de código apenas uma vez.


Há situações em que talvez precisemos executar certos componentes de código apenas uma vez, por exemplo. para inicializar algumas variáveis ​​estáticas antes da execução da negociação automática ou executar algumas tarefas (como classificação) no início da backtest ou da exploração. As seguintes técnicas podem ser úteis em tais casos:


Quando queremos executar certa parte do código apenas uma vez depois de iniciar o AmiBroker, podemos usar uma bandeira escrita para uma variável estática que indicaria se nossa inicialização foi ativada ou não.


Se quisermos executar certa parte do código no início do teste executado na janela Análise, podemos usar:


Quando Status (& # 8220; stocknum & # 8221;) é detectado no código, então a execução é realizada em um único segmento para o primeiro símbolo. Somente após o processamento deste primeiro símbolo terminar, os outros tópicos serão iniciados.


Um exemplo prático que mostra o uso desse recurso é apresentado no seguinte tutorial:


Artigos relacionados:


Arquivado por Tomasz Janeczko às 7:03 da manhã sob o general.


28 de setembro de 2015.


Seleção de símbolo quando o PositionScore não está definido.


O backtester de portfólio da AmiBroker permite definir critérios de classificação e seleção de estoque por meio da variável PositionScore. Isso é explicado em detalhes no seguinte capítulo do tutorial:


Se o PositionScore não estiver definido ou tiver o mesmo valor para dois ou mais símbolos, o AmiBroker usará as seguintes regras:


A transação com maior PositionSize é preferida & # 8211; o método de comparação depende da abordagem de dimensionamento de posição usada em nosso código: se usarmos SetPositionSize (valor do dólar, spsValue) e # 8211; então o valor de $ é comparado. Se usarmos SetPositionSize (compartilhamentos, spsShares) e # 8211; então o número de ações é usado para comparação. Se usarmos SetPositionSize (perc, spsPercentOfEquity) e # 8211; então% de equidade é importante. Ordem alfabética de negociações longas em vez de negociações curtas, se ambos ocorrerem ao mesmo tempo para o mesmo símbolo.


Artigos relacionados:


Arquivado por Tomasz Janeczko às 9:59 da manhã sob o general.


27 de setembro de 2015.


Como lidar com símbolos descartados no teste rotativo.


Este artigo da Base de Conhecimento: amibroker / kb / 2014/09/26 / closing-trades-in-delisted-symbols / explica como fechar negociações em símbolos excluídos no backtest regular (para evitar a retenção de estoque excluídos na lista de negócios e ter o nosso máximo limite de símbolo afetado por essas posições).


No teste rotativo no entanto, não podemos usar a variável Sell, porque os negócios são conduzidos por símbolos & # 8217; ranking por valores PositionScore. Portanto, precisamos atribuir zero à variável PositionScore para as barras de saída respectivamente & # 8211; Isso irá forçar a saída de qualquer posição ocupada em determinado estoque.


Observe que estamos ajustando o último índice de barras caso os atrasos comerciais sejam definidos nas configurações.


Como no teste regular, também podemos usar informações de DelistingDate se o importarmos para a janela Símbolo -> Informações.


Artigos relacionados:


Arquivado por Tomasz Janeczko às 10:59 da manhã sob o general.


26 de setembro de 2015.


Limite o número de negócios por dia em um backtest.


NOTA: Os códigos apresentados abaixo são apenas para dados intradiários.


O cenário é o seguinte: somos comerciantes intradiários e queremos limitar o número de negócios feitos por dia por símbolo.


Para simular esse cenário em um backtest, precisamos contar os sinais e removê-los em conformidade depois de atingir nosso limite. Há vários métodos para fazê-lo e a escolha depende dos sinais que nosso sistema gera.


Se nossos sinais comerciais chegarem a uma seqüência como Buy-Sell-Buy-Sell (sem sinais repetidos no meio), então poderíamos contar os sinais BUY desde o início do dia e permitir o primeiro N desses sinais, onde N é o número dos negócios que permitimos. Isso pode ser alcançado com a função Sum:


Se os sinais do mesmo tipo puderem ser repetidos e ocorrer, por exemplo, em sequência, como Buy-Buy-Buy-Sell, antes de contar os sinais de entrada, precisamos primeiro remover os redundantes. Isso pode ser alcançado com a chamada de função Equity (1), que removerá sinais repetidos da maneira como o backtester os lidará:


Quando nosso sistema comercial usa regras comerciais complexas, então não conhecemos a ordem dos sinais, podemos usar um loop para processar sinais e contar negócios.


Artigos relacionados:


Arquivado por Tomasz Janeczko às 6:23 pm sob Backtest.


Links.


Veja também.


Categorias.


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.


Rotational Trading: um conceito simples e poderoso.


Desta vez, quero abordar um tópico que não foi abordado aqui antes: negociação rotativa. Em primeiro lugar, vou dar-lhe algum conhecimento sobre o motivo pelo qual você deve procurar o rooteamento e, mais tarde, vou apresentar um sistema de rotação simples, mas poderoso.


A idéia básica por trás da negociação rotacional é simples: você classifica uma lista de ações ou ETFs por qualquer tipo de medida. Então você decide comprar ou vender o pior ou o melhor número de ações desta lista. Você pode fazer isso assim que as novas ações entrarem / sair da parte superior / pior cinco explorações ou em um cronograma predefinido, p. Ex. todas as semanas ou meses.


Aqui estão algumas das razões pelas quais você deve procurar negociação rotativa:


Diversificação: há momentos em que certas estratégias funcionam melhor do que outras. Não se deve colocar todos os seus ovos em uma cesta. Então, além do balanço ou troca de reversão média, isso pode ser uma alternativa interessante. Compra em força: você se lembra do tempo de meados de fevereiro a meados de abril deste ano? Dois meses com quase nenhum revés. Tempos bastante difíceis para o comércio de swing. Os sistemas de negociação de rotação geralmente compram em força; Daí, aqueles estão bem nessas condições. Sem dependência do timing do mercado: estamos tão focados em encontrar a melhor entrada ou a melhor saída. Os sistemas de negociação de rotação são menos sensíveis a encontrar a melhor entrada. Você monta os melhores estoques, desde que estejam entre os melhores estoques, então você muda de cavalos e vai novamente. Simples em execução: se a mudança entre as ações ou ETFs não for feita com muita frequência, a execução comercial pode ser bastante relaxante em comparação com algumas outras estratégias. Além disso, o custo de negociação é menos um fardo, pelo menos para modelos de rotação infreqüentes. Fácil de desenvolver. Com o software de negociação correto, esta pode ser uma tarefa bastante fácil. Isso pode não ser um problema para muitos de vocês, mas certamente há pessoas que não são desenvolvedores de software sofisticados. Uma das razões pelas quais troquei do meu antigo software (Tradesignal) para o Amibroker é a sua capacidade de configurar esses modelos muito fácil e rápido (com apenas algumas linhas).


Precisamos responder algumas questões antecipadamente:


O que queremos negociar e por quê? Eu gosto de trocar estoques NASDAQ100 para este propósito, porque os melhores ou os piores executantes costumam mostrar uma forte tendência em qualquer direção. Basta pensar em Apple, Bidu e co. Quantos estoques queremos negociar? Eu escolho 5 a 10 melhores ações para negociar. Se você chegar a muitos, então você pode inserir ações que podem não chegar ao topo. Direção do comércio: uso negociação rotacional por longos negócios. As tendências ascendentes são mais lentas (= mais longas) em desenvolvimento em comparação com tendências rápidas e bruscas para baixo. Portanto, movimentos para cima são mais fáceis de capturar. Como classificar os estoques? Ter uma boa maneira de classificar as ações para decidir o que é fraco e o que é forte é fundamental para o sucesso de um sistema rotacional. Usando um indicador de curto prazo, tal RSI (2) para medir a força não é uma boa idéia, já que no curto prazo muitas ações tendem a significar - reverter. Assim, o sistema entraria em força e deixaria em fraqueza (como as gotas de ranking RSI (2)). Então, você precisa de um método que olhe para além da tendência de curto prazo e seja capaz de medir a verdadeira força de tendência. Agora, analisaremos os detalhes do sistema conforme descrito acima. Deixe-me indicar claramente que não troco o sistema conforme descrito abaixo. No entanto, eu uso o mesmo conceito e ingredientes similares. Sugiro que você use o sistema como ponto de partida para sua própria pesquisa.


No caso de sua plataforma de negociação atual não oferecer capacidades de negociação rotacional, então você deve definitivamente olhar para o Amibroker. São apenas US $ 199. Eu não estou associado com AmiBroker, mas acho que oferece uma grande BANG para o BUG.


Um dos princípios básicos do comércio rotacional: você monta os melhores estoques, desde que estejam entre os melhores estoques, então você muda de cavalos e vai novamente. Para que isso aconteça, eu quero encontrar os estoques de tendências mais fortes, pois eles prometem continuar por algum tempo. Minha forma preferida de medir a força da tendência é a ETI. Então classifico as ações de acordo com seu valor de ETI (maior valor de ETI na parte superior).


Deixe-me dar-lhe alguns antecedentes sobre como realizei o teste.


Eu olhei os estoques atuais da Nasdaq 100. O primeiro ano de negociação é 2001. Não quero que os tempos de "bolhas" sejam incluídos nos resultados dos testes. Nenhuma comissão. Pego as 5 melhores ações e atribuo 20% do patrimônio líquido.


Já o resultado é bastante bom, dado que o princípio é extremamente simples e som. Cerca de 32% de CAGR, alta média de comércio vencedor e quase 55% de vencedores.


No entanto, o sistema tem um problema: quase 60% MaxDD (= max. Draw down). Emocionalmente, isso será muito difícil de trocar! O que você não vê; Um dos tempos mais lucrativos do sistema está correto após esta redução severa. Não tenho certeza se eu posso trocar isso! Então, ou você se inclina, por exemplo, ao curto-se o índice, ou você adiciona um componente de tempo ao seu sistema rotacional. Eu faço os dois, dependendo do estado do mercado.


Evitando cortes severos.


Mas vamos analisar a adição de um componente de tempo ao sistema. Eu só troco o sistema em momentos em que o índice está acima do 200 MA ou 30 MA. Normalmente, essas reduções severas ocorrem abaixo da média de 200 MA e a segunda média de 30 MA me ajudará a entrar quando a recuperação ocorrer. Portanto, essa pequena mudança melhorará significativamente o desempenho, ao mesmo tempo em que torna muito mais fácil o comércio. Eu sei que isso é parcialmente contra a filosofia de negociação rotacional (= estar sempre no mercado e evitar o timing do mercado), então você precisa descobrir seu próprio nível de tolerância de risco.


Freqüência de trades.


Atualmente, o sistema produz 585 negócios em cerca de 10 anos. Não é muito. Portanto, o custo de negociação não deve ser um problema. Da conveniência, bem como do ponto de vista emocional, o sistema pode ser melhorado. A ETI não é um indicador que muda rapidamente, mas das 585 negociações existem cerca de 120 negócios com apenas 2 barras. Isso indica que o ranking muda frequentemente e, portanto, produz esses negócios evitáveis. Eu, portanto, sugiro que você execute os negócios apenas uma vez por semana. Escolha um dia da semana que seja mais conveniente para você. Eu escolhi terça-feira para este teste, no entanto, todos os outros dias da semana produzem bons resultados semelhantes.


Como você vê, as métricas de desempenho ficam aproximadamente as mesmas, enquanto a quantidade de negócios foi significativamente reduzida.


O sistema apresentado apresenta um desempenho decente de 37% ao ano, enquanto é emocionalmente possível negociar. Isso proporciona um bom ponto de partida para o seu próprio sistema rotacional. No entanto, mais importante do que o sistema que apresentou é o fato de que você deve procurar diversificar suas estratégias de negociação por causa das razões que esbocei no início deste artigo.


SetPositionSize (20, spsPercentOfEquity);


Pontuação = IIf (idx & gt; MA (idx, 200) OU idx & gt; MA (idx, 30), pontuação, 0);


PositionScore = IIf (Year () & gt; = 2001 E DayOfWeek () == 2, score, scoreNoRotate);


Sobre o Autor System Trader Success Contributor.


Os autores contribuintes são participantes ativos nos mercados financeiros e totalmente absorvidos na análise técnica ou quantitativa. Eles desejam compartilhar suas histórias, idéias e descobertas no System Trader Success e espero que você seja um comerciante do sistema melhor. Entre em contato conosco se você quiser ser um autor contribuidor e compartilhar sua mensagem com o mundo.


Posts Relacionados.


Usando Metals to Trade Bonds.


Indicador e estratégia do MCVI sobre gráficos diários.


Publicações populares.


Connors 2-Period RSI Update para 2013.


Este indicador simples faz dinheiro novamente e novamente.


The Ivy Portfolio.


Melhorando a Estratégia de Identidade Simples, Parte 1.


Copyright © 2017 da Capital Evolution LLC. - Projetado por temas Thrive | Powered by WordPress.


Por favor faça login novamente. A página de login será aberta em uma nova janela. Depois de efetuar o login, você pode fechá-lo e retornar a esta página.


Melhor comerciante do sistema.


Better System Trader é o podcast e o blog dedicado a comerciantes sistemáticos, fornecendo dicas práticas de especialistas em comércio em todo o mundo.


Blast Buy & # 038; Mantenha-se com esta estratégia simples da Bollinger Band.


No Episódio 4 do podcast do Better System Trader, Nick Radge discute algumas idéias comerciais que ele usou para criar sistemas lucrativos. Ele menciona uma idéia da Bollinger Band, que também é publicada em seu livro Unholy Grails. Nick diz:


the strategy that we did test and showed very promising results was an entry using a Bollinger band and an exit using the opposite Bollinger band, but we use 3 standard deviations for the entry and 1 standard deviation for the exit, just to keep the trailing stop a little bit tighter.”


In Unholy Grails the strategy is used on the Australian stockmarket but in this article we’re going to test it on the Nasdaq 100 instead to determine if the strategy has potential in other markets.


The trading rules.


Firstly, here are the test parameters:


Period: Daily charts Universe: Nasdaq 100, using historical constituents to eliminate survivorship bias, data from Premium Data Test period: From 1/1/2005 to 1/1/2015. This period was chosen because it has a mix of bull and bear markets, along with high and low volatility Starting equity: $100,000 Maximum number of simultaneous trades: 6 Position size: Each position will be 1/6th of $100,000 Compounding profits: No Commissions: $10 each way Leverage: 0%


Now for the entry and exit rules. In Nicks book, he uses 100 period Bollinger Bands so we’ll do the same. The upper Bollinger Band will be 3 deviations from the central line, the lower Bollinger Band will be 1 deviation below the central line.


Entry: Buy on the Open the day after a stock closes above the top Bollinger Band.


Exit: Exit on the Open the day after a stock closes below the lower Bollinger Band.


Here is an example of an entry (10/05/2007) and exit for AAPL:


Comparing the results of the basic Bollinger Band strategy to Buy & Hold:


The annual return of the basic strategy is almost 20% better than Buy & Hold with less than 1/2 the drawdown. The equity curve of the basic strategy shows a general rise in equity with a few periods of drawdown:


Adding a market filter.


A market filter is used to switch a strategy on or off based on broader market conditions. As this is a long only system we probably don’t want to enter trades in a bear market so we’ll only enter trades when the index is rising. With the S&P 500 the most frequently used index by financial professionals, we’re going to use that for the index filter.


In this test a bull market will be defined as the index closing above the 100 day simple moving average; when the index closes below the 100-day moving average it is a bear market and we won’t enter trades until prices closes back above the 100 day moving average. The 100 day moving average was chosen to match the Bollinger Band value, other moving average lengths may work better but will need to be tested. The results:


The index filter has improved the quality of the strategy, with a higher return, lower drawdown and higher win/loss ratio with fewer trades.


There are periods during the test where more trade entry signals are presented than we can take using a maximum of 6 positions, so we need to decide which stocks to choose when this happens.


Let’s try a basic ranking strategy in order to systematise the selection process.


When a number of stock entries occur on the same day we need to make a decision on which ones to take. We could choose them randomly but we would need to run monte carlo simulations to get a better indication of the possible variations using this method. I prefer to add a simple ranking system to the strategy so stock selection is completely systematic.


The ranking strategy I’m going to use here is based on what I think the strategies strength is. I expect the strategy will perform best either just after a bear market or a period of consolidation, entering at the start of a new bull market or breaking out of consolidation and riding it higher. In this case, we’re going to try ranking by Rate of Change over the last 90 days, so the stocks with the smallest Rate of Change will have a higher priority than those with a large Rate of Change. Logically it makes sense but what do the results tell us?


The ranking strategy produced a higher annual return, with lower drawdown, a lower number of trades and a higher win %. It may have not impacted too many trades so the addition of the ranking may not be statistically significant but it does provide a systematic method to choosing stocks when multiple opportunities present themselves.


The power of Compounding.


So far we’ve seen the basic strategy slightly outperforms Buy & Hold but with considerably lower drawdowns. The inclusion of an Index Filter and ranking by smallest ROC has improved the strategy although the results aren’t outstanding.


Let’s see how compounding profits impacts strategy results:


Update 27/4 – As requested by Rick, here is a histogram of distributions, with the majority of trades in the -25 to +70% range and a few trades with 100% and higher:


With compounded profits we now have a strategy that produces more than double the returns of Buy & Hold with only half the drawdown. The win rate of 73.33% and win/loss ratio of 3.33 are also good for a trend following system.


It appears the strategy has some potential and warrants further investigation. Some areas of consideration could be:


The length of the Bollinger Bands, Different market filters, More adaptive trailing stops, Ranking based on other metrics, Suitability to other markets.


Like a copy of the AmiBroker code?


Want to get the latest updates automatically?


The best way to get notified when new stuff is released is to sign up to the list below and we’ll be sure to let you know:


Posts Relacionados.


Hans van der Helm.


Thanks for the very interesting article “Blast Buy & Hold with this simple Bollinger Band strategy”. I’m using Amibroker as well. Is it possible to post (or send me) the code of this system?


Desde já, obrigado.


Hans van der Helm.


Hi Hans, I’ve just ed you the AFL code, hope it helps.


Andrew - Thanks for the write up. I am interested in the afl. Appreciate your work on this.


Thanks Derrick, I’ve ed you a copy of the AFL.


Thanks for the great information. Could you please the afl? Obrigado.


This strategy is stocks only strategy?


Hi Casey, I’ve only tested it on stocks however it may work on futures/forex etc.


I can provide the AmiBroker code if you want to test it for yourself?


Nice article. Can you please send the AFL code?


Thanks Bob, I’ve just sent you the AFL code.


Thanks for that interview with Nick and the analysis of his Bollinger Band system.


Looking forward to the AFL code.


Cheers John, I’ve just sent you the AFL code.


Really enjoying the podcasts and the great information you provide. Could you please send through the AFL code.


Thanks Paul, glad you’re enjoying the podcast.


I’ve just ed you the AFL.


Good article, I really enjoyed it. Could I also have the AFL to play with?


Hi Rick, the AFL code is on its way.


Thanks a lot, got it!


Two things: (a) Could you post results from index start? Although there is a downtrend, the chose period has two uptrends.


(b) What was the contribution of AAPL and GOOG in the results? If you were to remove those companies from the index, what would be the result? I’m saying this because it is unlike;y to have similar companies in the near future. To what degree are your results influenced by a few outliers?


Great point about considering the outliers.


I checked the trade results and the trades with the highest returns weren’t actually AAPL or GOOG. In fact, the strategy didn’t take a trade in GOOG at all and AAPL was only the 3rd highest, here are the top 5:


If I remove all the AAPL trades, the Annual Return is 18.43% and DD is -23.60% so the returns are slightly lower but who’s to know what will happen in the future – AAPL may continue higher, another stock could take over, this strategy may fail miserably tomorrow, we just never know.


Obrigado! Still I am concerned about outliers. I would be nice if you could add to the blog a histogram of returns per stock traded, maybe at least the top 30 ones. Then it will be clear if the performance was due to a few random outliers or due to the method. Apologies for the request but I do not have the data to do it, otherwise I would.


Hi Rick, I’ve added a chart showing the returns. The bulk of the trades are in the range of -25 to +70%, with a few +100% or higher. I hope that answers your questions.


Please keep in mind that this research is not a complete trading system, it is just a starting point. The purpose of the research was to determine if the strategy that Nick mentions in the podcast has potential in other markets. It appears it may but further investigation obviously has to be completed before taking it further.


If you can I highly recommend getting some data and running some of these tests yourself, I’m sure the strategy could be improved so I’d be interested to hear your results.


Great write up. It’s amazing what a a simple system with just a few tweaks can do. I’d appreciate a copy of the AFL code so I can see if I can make a few other tweaks that might help. Obrigado.


Hey Gav, glad you enjoyed it.


Yes, I’ve found the simple systems are often the best, I look forward to hearing what you uncover in your testing.


The AFL is on its way.


Nice methodology! I’d love to get a look at the strategy’s code, please 🙂


Hi Ran, have just sent you the code.


Nice article, can u please mail me the code so i can test it on instruments i trade.


Cheers Mandeep, just sent you the code.


Hello Andrew, Thank you for the great Information and Podcasts. I also enjoyed the interview with Cesar Alvarez. I´m looking forward for more Podcasts with real Traders. Could you please send through the AFL code.


Thanks Juergen, I’ve just sent you the AFL code.


Keep an eye out for the next few episodes, we have some awesome traders coming – Kevin Davey, Gary Stone, Rob Hanna, Howard Bandy and more.


Simple works best and that’s what this system is. I like many of the concepts used in this system.


Some of my concerns or ideas for improvement are:


1) The high winning percentage. I would expect this to come down over time and be closer to 50%.


2) A sample size of 60 isn’t really enough to draw too many wide ranging conclusions.


3) Also having a max of 6 open trades is a bit on the risky side for me. It really doesn’t provide enough protection against specific risk.


4) Dividing capital equally among the 6 open positions could be improved to something along the lines of fixed fractional or volatility adjusted position sizing to help control risk better.


Love the website and podcasts. Continue com o ótimo trabalho!


Could you send me the AFL code?


All valid concerns which need to be investigated further, I’ve sent you the code.


Keep in mind that Nick Radge uses this strategy on the ASX and it produces better results than the results in this test, which tells me the strategy is robust. If you want more details I highly recommend you check out his book Unholy Grails.


Hi Andrew. Loving the podcasts! I’d like to hear some more about your own background and trading style in a future podcast.


Can you please send me the AFL. I’m a huge fan of Nick’s work.


Hey Ashley, glad you’re enjoying the podcast.


You can read a little about my background and trading in the About page on the website or in podcast episode 000 available in iTunes but it’s a good idea to include it in a future podcast episode so I’ll do that too.


I’ve just ed you a copy of the AFL code.


Good Work. Please send the AFL code.


Hey Emil, have just ed you the AFL.


Hi Andrew, your doing an excellent job with the podcasts and I’m really enjoying them, keep up the great work and when you have a chance could you please send me the AFL code.


Thanks Glenn, glad you’re enjoying the podcasts, I just ed you the AFL code.


I’d like the AFL code too please. Just getting started with AFL and need all the good sample code I can read.


I’m especially interested in your thoughts on the 100 day moving average as a long-term bull-bear indicator… do you have any other long-term bull-bear-sideways indicators that you use, or have references to others using?


Hi Paul, I’ve just sent you a copy of the AFL code.


If you’re just getting started in AmiBroker, I recommend you take a look at the AmiBroker book by Howard Bandy here, it’s a free download for personal use.


If you’re more interested in a course, check out the AmiBroker course by Cesar Alvarez here. Cesar has offered to open his AmiBroker Backtesting 101 course to Better System Trader podcast listeners. The course will teach you how to program strategies from beginning to end and even provides you with a strategy that averages 20%+ returns per year. The offer is only valid until May 20th and numbers are limited so get in quick.


As for ways to determine bullish/bearish conditions, I’ve found simple methods are the most effective, like moving averages, volatility indicators etc. Keep an eye out for the podcast interviews we release on May 18th and May 25th where we discuss more about this.


Nice article, I’d like to see the Amibroker code too. Obrigado.


Thanks Barry, I’ve just ed you the code.


Very impressive results for such a basic system. Certainly not over-optimized.


I’m interested. Could you please send me the AFL code.


Hi Peter, have just sent you the AFL code.


I know I’m a pain but I insist that you remove from the list the top 4-5 stocks.


How does CAR change?


Hi Rick, if I remove all GILD, BIDU, AAPL and EXPE trades the CAR has reduced as expected, down to +15.57% with -23.60% drawdown. It still beats Buy & Hold of +9.88% CAR with -52.81% drawdown but there is obviously more scope for improvement.


I encourage you to use this strategy as a starting point only, it is by no means a complete strategy and I’m sure there are many ways it can be refined.


Obrigado. I( agree. Good work!


JanWillem den Boer.


Could yo sent met the AFL Code.


Thanks JanWillem, just sent you the code.


Hi Jan, your spam filter is blocking the so I cant send to you, can you fix or me andrewbettersystemtrader with another address and I’ll resend.


janwillem den boer.


I have sent you my gmail address by seperate mail.


Hi Andrew, thanks for the podcast. Really appreciate your effort. Could you help with the code. Also wondering have you tried a long/short variation.


Hey Vivek, glad you like the podcast.


I haven’t tried a long/short variation, please let us know how you go if you test it yourself.


Have just sent you the AFL.


I’m learning Amibroker and find it helpful working through other peoples code and understanding how the logic has been coded. Would love a copy of your AFL code for this system.


Just sent you the code.


Nice article. Can you please send the AFL code?


Hi Miro, have sent you the code.


Many thanks for this interesting article. Would it be possible to have a copy of the Amibroker code?


Have a good one!


Hi Stephane, glad you liked it, have just sent you the AFL code.


Could you please send me the afl code. I am interested in further studies.


I’ve just sent you the code.


Is it possible to get the AFL code?


Hi Nir, click the blue ‘Download the FREE Bollinger Band code for AmiBroker’ button at the bottom of the article to download the code.


Obrigado pela estratégia. I have seen so many promising strategies that trade only LONG. I am yet to see a strategy trading profitable both LONG and SHORT. This would be a one up for your site if you could get an expert to write up an article on such a strategy. Saudações.


Hi Perry, thanks for the comment.


Check the blog next week, Rob Hanna provides a simple trading idea that does exactly that!


I’m really enjoying your podcasts and blog. May I please have a copy of, the AFL for this post.


Hey Growbuck, click the Blue download button just above the comments section to download the AFL code.


Great post, i’m learning the amibroker to develop the trading strategy. Lucky to see your website. May i get the afl code for deep studying? Obrigado.


Hi, click the blue download button on the page to get the AFL code.


May I please have a copy of, the AFL for this post.


Hey Phil, click the blue Download button just above the comments to get a copy of the code.


Just found your podcast and this was the first one I listened to – GREAT stuff. Obrigado!


Thanks Simon, glad you enjoyed it.


thanks for this great post. I would like to use the code to learn how to program an efficient strategy. Please send me the AFL code.


Hi Philipp, click the blue Download button just above the comments to get a copy of the code.


Dear Mr Andrew Swanscott.


Can you please send me the AFL code for this as I am using Amibroker and would like to back test the same.


Hey Ashok, click the blue download button to get the AFL code.


Trackbacks.


[…] Blast Buy & Hold with this simple Bollinger Band strategy [Better System Trader] In Episode 4 of the Better System Trader podcast, Nick Radge discusses some trading ideas hes used to create profitable systems. He mentions a Bollinger Band idea which is also published in his book Unholy Grails. Nick says: the strategy that we did test and showed very promising results was an entry using a Bollinger band and an exit using the opposite Bollinger band, but we use 3 standard […]


[…] Källa: Blast Buy & Hold with this simple Bollinger Band strategy – Better System Trader […]


Trading stocks, options, futures and forex involves significant risk of loss and is not suitable for everyone. O desempenho passado não é necessariamente indicativo de resultados futuros.

Comments

Popular posts from this blog

63 Melhores contas do Forex Twitter

O comércio de Forex é rápido, muito rápido e o Twitter se encaixa como uma luva para a mão de qualquer comerciante forex. Muitas informações rápidas e úteis são apresentadas na forma de tweets e às vezes de muita informação. Aqui está uma lista das minhas principais contas do Forex, cada uma com diferentes características, para os comerciantes interessados ​​em diferentes aspectos do comércio (técnico, fundamental, educacional, sentimento, uma mistura de alguns ou todos, etc.). Aqui está uma lista das principais 63 contas do forex do Twitter: ForexLive - O time Forex Live traz atualizações extremamente rápidas, desenvolve movimentos do mercado e muito humor. Seguir a conta do Twitter (que fornece mais do que apenas links para artigos) é uma excelente maneira de saber o que está acontecendo em tempo real. FXstreetNews & # 8211; A conta principal da FXStreet News é uma novidade de 24/5, opiniões e análises, e tudo a partir do grande portal forex. JamesChenFX & # 8211; James Chen,

Forex azerbaycanca

Forex - Foreign Exchange é o maior mercado de câmbio internacional. Na Forex, os comerciantes executam operações de petróleo, ouro, ações de empresas internacionais, bem como outros instrumentos financeiros. As operações de Forex são realizadas em plataformas de negociação fornecidas pelas empresas de corretagem. Sempre considere abrir uma conta com o corretor Forex licenciado no Azerbaijão. Sem financiamento, sem risco. Abra uma conta demo Obtenha uma experiência real no Forex! realize seus sonhos com o Forex. Seja um deles! Comercial como um profissional. Comece com tão baixo quanto $ 100! Comece a negociar no FOREX e se beneficie da oportunidade de ganhar! Participe do Concurso Você também pode se tornar um vencedor! Ganhe-se; Min. valor do depósito - renda ilimitada; Profissional rentável para todos. O que é necessario? Qualquer lugar com ligação à Internet disponível; Desktop, um PC, smartphone, etc; Desejo ganhar dinheiro. Preciso de mais detalhes antes que eu possa começar. Abra

Como evitar pagar o imposto duplo sobre as opções de ações dos empregados

Kathleen Pender 17 de janeiro de 2015. Qualquer pessoa que participe de uma opção de estoque de empregado ou plano de compra de ações no trabalho poderia pagar demais seus impostos e taxas; talvez por muito e mdash; se eles não entenderem um requisito de relatório que entrou em vigor em 2014. De acordo com o requisito, todos os corretores devem reportar base de custo no formulário 1099-B para ações que foram adquiridas e vendidas em 1º de janeiro de 2014 ou após uma opção de compra de ações ou plano de compra de um empregado de forma que possa resultar em dupla tributação, a menos que o empregado faça um ajuste no Formulário 8949. O novo requisito não se aplica a ações restritas atribuídas a funcionários. & ldquo; é muito confuso e assustador, & rdquo; diz Barbara Baksa, diretora executiva da National Association of Stock Plan Professionals. & ldquo; O importante não é assumir que a base de custos relatada no formulário 1099-B está correta. Você tem que ter confiança em sua