Thursday 21 December 2017

Amibroker trading system example no Brasil


Como otimizar o sistema de negociação. NOTA Este é um tópico bastante avançado Por favor, leia os tutoriais AFL anteriores primeiro. A idéia por trás de uma otimização é simples Primeiro você tem que ter um sistema comercial, este pode ser um crossover média móvel simples, por exemplo Em quase todos os sistemas lá São alguns parâmetros como período de média que decidem como dado sistema se comporta ie é é bem adequado para longo prazo ou curto prazo, como é reage em estoques altamente volátil, etc A otimização é o processo de encontrar valores ideais dos parâmetros que dão maior lucro de O sistema para um determinado símbolo ou um portfólio de símbolos AmiBroker é um dos poucos programas que permitem otimizar seu sistema em vários símbolos ao mesmo tempo. Para otimizar seu sistema você tem que definir de um até dez parâmetros para ser otimizado Você decide O que é um valor mínimo e máximo permitido do parâmetro e em que incrementos esse valor deve ser atualizado AmiBroker então executa vários testes de volta o sistema usando A LL possíveis combinações de valores de parâmetros Quando este processo é terminado AmiBroker exibe a lista de resultados classificados por lucro líquido Você é capaz de ver os valores de parâmetros de otimização que dão o melhor resultado. Formulação AFL de gravação. Otimização no back tester é suportado através de nova função Chamada otimizar A sintaxe desta função é a seguinte: variable optimize Descrição, default min max step. variable - é a variável AFL normal que recebe o valor retornado pela função otimizar Com modos normais de backtesting, exploração, exploração e comentar, a função otimizar retorna o padrão Valor, então a chamada de função acima é equivalente a variável default. In otimização modo otimizar função retorna sucessivos valores de min a max inclusive com step stepping. Description é uma seqüência de caracteres que é usado para identificar a variável de otimização e é exibido como um nome de coluna em O resultado de otimização list. default é um valor padrão que otimiza a função retorna na exploração , Indicador, comentário, varredura e modos normais de teste de volta. Min é um valor mínimo da variável que está sendo otimizada. max é um valor máximo da variável que está sendo otimizada. step é um intervalo usado para aumentar o valor de min para max. AmiBroker suporta Até 64 chamadas para otimizar a função, portanto, até 64 variáveis ​​de otimização, note que se você estiver usando a otimização exaustiva, então é realmente boa idéia para limitar o número de variáveis ​​de otimização para apenas few. Each chamada para otimizar gerar otimização máxima otimização loops e várias chamadas Para otimizar multiplicar o número de execuções necessárias Por exemplo, otimizar dois parâmetros usando 10 etapas exigirá 10 10 100 laços de otimização. Call otimizar a função apenas ONCE por variável no início de sua fórmula como cada chamada gera um novo loops de otimização. Otimização multi-símbolo É totalmente suportado pelo AmiBroker. O espaço de pesquisa máximo é 2 64 10 19 10.000.000.000.000.000.000 combinações.1 Single optimization variável. sigavg Otimizar S Ignal média 9 2 20 1.Buy Cross MACD 12 26, Sinal 12 26 sigavg Venda Cross Signal 12 26 sigavg, MACD 12 26.2 Otimização de duas variáveis ​​adequada para 3D charting. per Otimizar por 2 5 50 1 Nível Otimizar nível 2 2 150 4.Comprar CCI por nível de venda de nível, CCI per.3 Múltiplo 3 variável otimização. mfast Otimizar MACD Rápido 12 8 16 1 mslow Otimizar MACD Lento 26 17 30 1 sigavg Otimizar Sinal média 9 2 20 1.Buy Cross MACD mfast Depois de digitar a fórmula, basta clicar no botão Otimizar na janela de análise automática. O AmiBroker iniciará o teste de todas as combinações possíveis de variáveis ​​de otimização e relatará os resultados em A lista Após a otimização é feita a lista de resultado é apresentada ordenada pelo lucro líquido Como você pode classificar os resultados por qualquer coluna na lista de resultados é fácil obter os valores ideais de parâmetros para o mais baixo rebaixamento, menor número de comércios, Maior prof O fator, a exposição de mercado mais baixa e o retorno anual ajustado pelo risco mais alto As últimas colunas da lista de resultados apresentam os valores das variáveis ​​de otimização para o dado teste. Quando você decide qual combinação de parâmetros se adequa às suas necessidades o melhor tudo o que você precisa fazer é substituir o padrão Valores em otimizar chamadas de função com os valores ótimos Na fase atual você precisa digitá-los manualmente na janela de edição de fórmula o segundo parâmetro de otimizar a função call. Displaying gráficos de otimização 3D animado. Para exibir gráfico de otimização 3D, você precisa executar dois - Otimização de variáveis ​​primeiro Duas otimização de variáveis ​​precisa de uma fórmula que tenha 2 Otimizar chamadas de função Uma fórmula de otimização de duas variáveis ​​de otimização se parece com this. per Otimizar por 2 5 50 1 Level Otimizar nível 2 2 150 4.Comprar Cross CCI per, - Level Sell Cross Level, CCI per. After entrando a fórmula que você necessita estalar Optimize o botão. Uma vez que a optimização é completa você deve estalar sobre a gota para baixo seta no botão Optimize e escolher Visualizar o gráfico de otimização 3D Em poucos segundos, um gráfico de superfície tridimensional colorido aparecerá em uma janela do visualizador de gráfico 3D Um gráfico de exemplo 3D gerado usando a fórmula acima é mostrado abaixo. Por padrão, os gráficos 3D exibem valores de lucro líquido contra variáveis ​​de otimização. No entanto enredo gráfico de superfície 3D para qualquer coluna na tabela de resultados de otimização Basta clicar no cabeçalho da coluna para classificá-lo seta azul aparecerá indicando que os resultados de otimização são classificados por coluna selecionada e, em seguida, escolha Exibir gráfico de otimização 3D novamente. Os parâmetros afetam o desempenho de negociação, você pode mais facilmente decidir quais os valores dos parâmetros produzem frágil e que produzem o desempenho do sistema robusto Configurações robustas são regiões no gráfico 3D que mostram gradual em vez de mudanças abruptas no enredo de superfície gráficos de otimização 3D são grande ferramenta para evitar curva - Encaixe Curve-montagem ou sobre-otimização ocorre quando o sistema é mais complexo do que ele precisa ser, e al L que a complexidade foi focada em condições de mercado que podem nunca acontecer novamente Mudanças radicais ou picos nos gráficos de otimização 3D mostram claramente áreas de sobre-otimização Você deve escolher a região de parâmetro que produz um platô amplo e amplo em gráfico 3D para a sua vida real trading Parâmetro conjuntos Produzindo picos de lucro não funcionará de forma confiável em trading.3D reais visualizadores de gráfico views. AmiBroker s visualizador de gráfico 3D oferece capacidades de visualização total com rotação de gráfico completo e animação Agora você pode ver os resultados do sistema de todas as perspectivas concebíveis Você pode controlar a posição e outros parâmetros Do gráfico usando o mouse, barra de ferramentas e atalhos de teclado, o que você achar mais fácil para você Abaixo você encontrará a lista.- para girar - mantenha pressionado o botão esquerdo do mouse e mover em direções XY - Zoom-in, zoom-out - Para baixo RIGHT botão do mouse e mover em XY direções - para mover traduzir - mantenha pressionado o botão esquerdo do mouse e tecla CTRL e mover em XY direções - para animar - mantenha pressionada Gire o botão do mouse, arraste rapidamente e solte o botão ao arrastar. SPACE - animar auto-girar SETA PARA A ESQUERDA - girar vert para a esquerda SETA PARA A DIREITA - girar para a direita para a direita SETA PARA CIMA - girar horiz para cima PARA BAIXO KEY - girar horiz para baixo NUMPAD PLUS - Zoom NUMPAD - MINUS - Far zoom out NUMPAD 4 - mover para a esquerda NUMPAD 6 - mover para a direita NUMPAD 8 - mover para cima NUMPAD 2 - mover para baixo PAGE UP - nível da água para cima PAGE DOWN - nível da água para baixo. Smart não exaustiva optimization. AmiBroker agora Oferece otimização inteligente não-exaustiva, além de busca regular e exaustiva Pesquisa não-exaustiva é útil se o número de todas as combinações de parâmetros do sistema de negociação dado é simplesmente muito grande para ser viável para busca exaustiva. Pesquisa exaustiva é perfeitamente bem desde que seja Razoável usá-lo Vamos dizer que você tem 2 parâmetros cada variando de 1 a 100 passo 1 Que s 10000 combinações - perfeitamente OK para pesquisa exaustiva Agora com 3 parâmetros você tem 1 milhão de combinações - ainda é OK para sear exaustiva Ch, mas pode ser lenghty Com 4 parâmetros você tem 100 milhões de combinações e com 5 parâmetros 1 100 você tem 10 bilhões de combinações Nesse caso, seria muito demorado para verificar todos eles, e esta é a área onde não - Os métodos de busca podem resolver o problema que não é resolvível em tempo razoável usando busca exaustiva. Aqui está absolutamente a instrução mais simples como usar novo otimizador não-exaustiva neste caso CMA-ES.1 Abra sua fórmula no Editor de Fórmula. Única linha no topo da sua formula. OptimizerSetEngine cmae você também pode usar spso ou trib here.3 Opcional Selecione seu alvo de otimização em Análise Automática, Configurações, Walk-Forward guia, otimização alvo campo Se você ignorar esta etapa otimizará para CAR MDD composto anual retorno dividido pelo máximo drawdown. Now se você executar a otimização usando esta fórmula, ele vai usar novo evolutivo não-exhaustive CMA-ES otimizador. Como ele funciona. A otimização é o processo de encontrar min Imum ou máximo de determinada função Qualquer sistema de negociação pode ser considerado como uma função de certo número de argumentos As entradas são parâmetros e dados de cotação a saída é o seu alvo de otimização dizer CAR MDD E você está procurando máximo de determinada função. Alguns de otimização inteligente Os algoritmos são baseados no comportamento animal da natureza - algoritmo de PSO, ou processo biológico - Algoritmos genéticos, e alguns são baseados em conceitos matemáticos derivados por seres humanos - CMA-ES. Estes algoritmos são usados ​​em muitas áreas diferentes, incluindo finanças Entre PSO finanças ou CMA - ES financiar no Google e você vai encontrar um monte de info. Non-exaustiva ou métodos inteligentes vai encontrar global ou local óptimo O objetivo é, naturalmente, para encontrar um global, mas se houver um único pico afiado de combinações de parâmetros zilhões, Métodos exaustivos podem não conseguir encontrar este único pico, mas tomando-o forma perspecive do comerciante, encontrando o único pico afiado é inútil para negociar porque esse resultado seria instável demasiado frágil e n Ot replicável em negociação real Em processo de otimização estamos procurando bastante regiões de platô com parâmetros estáveis ​​e esta é a área onde os métodos inteligentes brilham. Quanto ao algoritmo usado por pesquisa não exaustiva parece como segue. a o otimizador gera alguma partida geralmente aleatória A população de conjuntos de parâmetros b backtest é realizada por AmiBroker para cada conjunto de parâmetros da população c os resultados de backtests são avaliados de acordo com a lógica do algoritmo e nova população é gerada com base na evolução dos resultados, E vá para a etapa b até que os critérios de parada sejam atendidos. Os critérios de parada de exemplo podem incluir um alcance de iterações máximas especificadas b parar se o intervalo de melhores valores objetivos das últimas gerações X é zero c parar se adicionar 0 1 vetor de desvio padrão em qualquer eixo principal Direção não altera o valor do valor objetivo d others. To usar qualquer otimizador inteligente não-exaustiva em AmiBroker você precisa especificar o engin otimizador E você deseja usar na fórmula AFL usando OptimizerSetEngine função. A função seleciona motor de otimização externo definido pelo nome AmiBroker atualmente é fornecido com 3 motores Padrão Particle Swarm Optimizer spso, Tribes trib, e CMA-ES cmae - os nomes em chaves são para ser Usado em chamadas OptimizerSetEngine. Além de selecionar otimizador de motor que você pode querer definir alguns dos seus parâmetros internos Para fazê-lo usar OptimizerSetOption função. OptimizerSetOption nome, função de valor. A função definir parâmetros adicionais para motor de otimização externo Os parâmetros são dependentes do motor Todos Três otimizadores fornecidos com o AmiBroker SPSO, Trib, CMAE suportam dois parâmetros Executando o número de execuções e MaxEval testes de avaliação máxima por execução única O comportamento de cada parâmetro é dependente do motor, então os mesmos valores podem e normalmente renderão resultados diferentes com diferentes motores usados. A diferença entre Runs e MaxEval é a seguinte avaliação ou teste é único backtest ou avaliação N de valor de função objetivo RUN é uma execução completa do algoritmo encontrar o melhor valor - geralmente envolvendo muitas avaliações de testes. Cada executar simplesmente RESTAURAR todo o processo de otimização a partir do novo início nova população inicial aleatória Portanto, cada execução pode levar a encontrar diferentes locais min max Se não encontrar global Um parâmetro So Runs define o número de corridas de algoritmo subsequentes MaxEval é o número máximo de bactests de avaliações em qualquer run. If único o problema é relativamente simples e 1000 testes são suficientes para encontrar global max, 5x1000 é mais provável Encontrar máximo global porque há menos chances de ser preso no máximo local, como subseqüentes será iniciado a partir de diferentes inicial random population. Choosing valores de parâmetros pode ser complicado Depende do problema em teste, sua complexidade, etc, etc Qualquer estocástico não-exaustiva Método não lhe dá garantia de encontrar global min max, independentemente do número de testes se for menor do que exaustiva A resposta mais fácil é Para especificar como grande número de testes como é razoável para você em termos de tempo necessário para completar Outro conselho simples é multiplicar por 10 o número de testes com a adição de nova dimensão Isso pode levar a superestimar o número de testes necessários, mas é bastante Seguro Os motores enviados são projetados para ser simples de usar, portanto, os valores automáticos padrão razoável são usados ​​para otimização pode ser normalmente executado sem especificar qualquer coisa aceitando defaults. It é importante entender que todos os métodos de otimização inteligentes funcionam melhor em espaços de parâmetro contínuo e relativamente bom objetivo Funções Se o espaço de parâmetros é discreto algoritmos evolutivos podem ter dificuldade em encontrar o valor ideal É especialmente verdadeiro para binário on off parâmetros - eles não são adequados para qualquer método de pesquisa que usa o gradiente de mudança de função objetivo como a maioria dos métodos inteligentes fazer Se o seu sistema de negociação contém muitos Parâmetros binários, você não deve usar otimizador inteligente diretamente neles. Em vez disso, tente otimizar Somente parâmetros contínuos que usam o optimizer esperto, e comuta parâmetros binários manualmente ou através do script externo. SPOSO - Padrão Particle Swarm Optimizer. Standard Particle Swarm Optimizer é baseado no código SPSO2007 que é suposto produzir bons resultados desde que os parâmetros corretos, ou seja, Runs, MaxEval são fornecidos Para o problema específico Picking opções corretas para o otimizador PSO pode ser complicado, portanto, os resultados podem variar significativamente de caso para caso. Vem com os códigos de fonte cheios dentro da subpasta de ADK. Código do exemplo para o optimizer padrão do enxerto da partícula que encontra o valor o melhor em 1000 testes dentro do espaço da busca de 10000 combinações. OptimizerSetEngine spso OptimizerSetOption Funciona, OptimizerSetOption MaxEval, 1000.sl Optimize s, 26, 1 fa Otimizar f, 12, 1, 100, 1.Comprar Cross MACD fa, sl, 0 Vender Cross 0, MACD fa, sl. TRIBES - Parâmetro Adaptativo sem Particle Swarm Optimizer. Tribes é adaptativo, parâmetro-menos versão de PSO Otimizador não-exaustivo de otimização de enxame de partículas Para o fundo científico ver. Em teoria, ele deve executar melhor do que PSO regular, porque ele pode ajustar automaticamente os tamanhos de enxame e estratégia de algoritmo para o problema que está sendo resolvido. Prática mostra que seu desempenho é bastante semelhante ao PSO. O plugin implementa Tribes-D ie variante sem dimensão Baseado em por Maurice Clerc Códigos fonte originais usados ​​com permissão do autor. Vem com código fonte completo dentro da pasta ADK. Parâmetros suportados MaxEval - número máximo de avaliações backtests por padrão de execução 1000.Você deve aumentar o número de avaliações com número crescente de dimensões número de parâmetros de otimização O padrão 1000 é bom para 2 ou máximo 3 dimensões. Runs - número de execuções reinicia padrão 5 Você pode deixar o número de execuções no valor padrão de 5.O número padrão de execuções ou reinicializações é definido como 5.Para usar otimizador Tribes, basta adicionar uma linha ao seu código. OptimizerSetOption MaxEval, 5000 5000 avaliações max. CMA-ES - Covariance Matrix Adaptação Estratégia Evolutiva Optimizer. CMA-ES Covariance Matrix Adaptação Estratégia Evolutiva é avançado otimizador não-exaustiva Para o fundo científico ver De acordo com benchmarks científicos supera nove outras estratégias evolutivas mais populares como PSO, evolução genética e diferencial. O plugin implementa a variante global de pesquisa com vários reinícios com pop crescente Ulation tamanho vem com código fonte completo dentro ADK folder. By número padrão de execuções ou reinicia é definido como 5 É aconselhável deixar o número padrão de reinicializações. Você pode variá-lo usando OptimizerSetOption Runs, N chamada, onde N deve estar no intervalo 1 10 Especificar mais de 10 execuções não é recomendado, embora seja possível Note que cada execução usa DUAS vezes o tamanho da população da execução anterior para que ele cresça exponencialmente Portanto, com 10 execuções você acaba com a população 2 10 maior 1024 vezes que a primeira execução. É outro parâmetro MaxEval O valor padrão é ZERO o que significa que o plugin irá calcular automaticamente MaxEval necessário É aconselhável não definir MaxEval por si mesmo como padrão funciona bem. O algoritmo é inteligente o suficiente para minimizar o número de avaliações necessárias e converge muito rápido Ao ponto da solução, tão frequentemente encontra soluções mais rapidamente do que outras estratégias. É normal que o plugin pulará algumas etapas das avaliações, se detecta que a solução foi encontrada, para ela E você não deve se surpreender que a barra de progresso de otimização pode se mover muito rápido em alguns pontos O plugin também tem capacidade de aumentar o número de etapas acima do valor inicialmente estimado se for necessário para encontrar a solução Devido à sua natureza adaptativa, Ou o número de etapas exibido pelo diálogo de progresso é apenas melhor adivinhar no momento e pode variar durante o curso de otimização. Para usar otimizador CMA-ES, você só precisa adicionar uma linha ao seu código. Isso irá executar a otimização com configurações padrão que Estão bem para a maioria dos casos. Deve-se notar, como é o caso com muitos algoritmos de busca de espaço contínuo, que o parâmetro de etapa decrescente em Otimizar chamadas de funciton não afeta significativamente os tempos de otimização. A única coisa que importa é a dimensão do problema, Número de diferentes parâmetros número de otimizar chamadas de função O número de passos por parâmetro pode ser definido sem afetar o tempo de otimização, então use a resolução mais fina que você deseja Em theor Y o algoritmo deve ser capaz de encontrar solução em no máximo 900 N 3 N 3 backtests onde N é a dimensão Na prática converge um LOT mais rápido Por exemplo, a solução em 3 N espaço de parâmetro tridimensional dizer 100 100 100 1 milhão etapas exaustivas podem Pode ser encontrado em tão pouco como 500-900 CMA-ES. Multi-threaded otimização individual. Iniciando a partir de AmiBroker 5 70, além de multithreading símbolo múltiplo você pode executar multi-threaded único símbolo de otimização Para acessar esta funcionalidade, clique em drop Se para baixo ao lado do botão Optimize na janela New Analysis e selecione Individual Optimize. Individual Optimize usará todos os núcleos de processador disponíveis para realizar a otimização de símbolo único, tornando-a muito mais rápida do que a otimização regular. No modo de símbolo atual, realizará otimização em um símbolo Em todos os símbolos e modos de filtro irá processar todos os símbolos sequencialmente, isto é, primeira otimização completa para o primeiro símbolo, então otimização no segundo símbolo, etc. M backtester não é suportado ainda 2 motores de otimização inteligente não são suportados - otimização apenas otimização obras. Eventualmente, podemos nos livrar da limitação 1 - quando AmiBroker é alterado para backtester personalizado não usa OLE mais Mas 2 é provavelmente aqui para ficar por muito tempo. Sobre para AmiBroker. Para AmiBroker é um pacote de software de terceiros que fornece programação completa para AmiBroker para AmiBroker abrange todos os recursos programáveis ​​de scripts AmiBroker. AFL NET plugins AFL pode substituir todos os scripts AFL completamente ou parcialmente plug-ins AFL pode acessar matrizes de dados, AFL funções, backtester objetos Assim como um script AFL AflXCompiler utilitário pode traduzir script AFL em C código reduzindo o tempo eo custo de conversão de scripts para código compilado. Data plug-ins NET plugins de dados fornecem uma maneira mais simples para coletar dados de negociação offline ou em tempo real e alimentá-los para AmiBroker S database. OLE automatização interface As classes de invólucros de automação ajudam a conduzir processos de otimização AmiBroker de processos externos escritos em algum idioma Biblioteca ParallelAB permite várias instâncias de AmiBroker para ser usado em paralelo para executar a tarefa de otimização múltiplas simultaneamente. IBController IBController wrapper classes ajudar a usar IB trading Todas as funções programáveis ​​da AmiBroker podem ser Filtros, scanners, explorações, módulos de backtester personalizados, sistemas de negociação automatizados e em tempo real, otimizador e plug-ins de fonte de dados, programas de automação OLE ou carregamento de dados, etc. podem ser desenvolvidos em C, F, ou qualquer outra língua. Para AmiBroker para os desenvolvedores de sistemas de negociação. Extender ou substituir o seu AFLs com code. AFL desenvolvimento plug-in que uma vez utilizado para desafiar até mesmo os desenvolvedores experientes CC agora pode ser feito em qualquer idioma muito facilmente e rápido NET plug-ins podem prolongar ou substituir completamente AFL Scripts AFL incluem arquivos podem ser facilmente convertidos para AFL plug-in indicadores AFL, scanners, explorações, backtester módulos, módulos de negociação em tempo real, etc pode ser criado em puro ou em uma mistura de AFL e código NET pode simplesmente acessar todos os built - Em métodos AFL e objetos da interface de backtester. Os plug-ins de fonte de dados podem ser desenvolvidos em qualquer idioma também. Usar a interface de dados é muito mais simples do que a interface CC original. Eles ainda oferecem a funcionalidade completa da interface original e simplificam a integração de off Line e streaming de dados sources. Real tempo negociação usando IBController interface de negociação para AmiBroker fornece fácil integração de indicadores AFL, lógica de negociação em código orientado a objeto e AmiBroker Interface de Auto-Trading para Interactive Brokers A interface gerenciada do IBController e os plug-ins juntos fornecem maneiras novas, mais fáceis, mais confiáveis ​​e gerenciáveis ​​de criar sistemas de negociação em tempo real. O AmiBroker integrado no seu processo de negociação personalizado para o AmiBroker também simplifica a integração de todos os tipos De aplicações em AmiBroker Using faz com que a integração de aplicações com interfaces COM como Excel, Access, Word, R, SciLab, MatLab, etc uma tarefa simples. Existem também ilimitadas possibilidades de integração usando a biblioteca de classe E g NET plug-ins podem enviar personalizado Envie SMS, ligue para um serviço web, acesse arquivos, comunique-se com um sistema de gerenciamento de comércio externo através da rede ou até mesmo receba eventos de um sistema externo. Aumente o desenvolvimento usando classes e depuração passo a passo para AmiBroker reduz muito o tempo de desenvolvimento e Poupa muito tempo Passo a passo depuração ajuda a depurar e corrigir bugs O objetivo do projeto era fazer para AmiBroker fácil de usar e stil Os plug-ins eficientes da NET não requerem código de encanamento como os plug-ins CC Os desenvolvedores podem escrever código tão rápido quanto escrever código AFL ou converter seu código AFL quase linha a linha para C VB e desenvolvedores de scripts VB podem escrever plug-ins simplesmente dentro. A biblioteca ParallelAB ajuda você a usar eficientemente todo o seu hardware para otimização extensiva, exploração, tarefas de digitalização. Permite que você desenvolva facilmente código de automação que pode conduzir vários processos AmiBroker para executar tarefas diferentes usando bancos de dados diferentes, mesmo em hardware distribuído. Para AmiBroker para licenciamento de sistemas de negociação para AmiBroker é uma solução fácil para black box desenvolvedores de sistemas de comércio para proteger, licenciar e vender seus sistemas scripts AFL pode ser facilmente e rapidamente convertidos em plugins não deixando nenhuma lógica de negociação pública em arquivos AFL NET plugins podem ser protegidos e Licenciado por ferramentas de proteção comercial como IntelliLock CliSecure Licenciamento Licenciamento Pro etc. Os plugins protegidos podem ser tornados públicos Somente os clientes que receberam licença para suas máquinas podem usar os Plug-Ins protegidos. Para AmiBroker para provedores de serviços de dados. O desenvolvimento de plug-ins de dados é uma tarefa desafiadora e complexa. Requer muito conhecimento e experiência de desenvolvedores. CC, escrevendo e depurando código multithreaded, interface de plug-in de dados AmiBroker e interface de provedor de dados para AmiBroker. Barreira de desenvolvimento de fonte de dados, fornecendo uma interface de fonte de dados simplificada para integrar com AmiBroker e funções de biblioteca para processar facilmente dados de negociação recebidos em citações Provided código de amostra de fonte de dados também ajudam a compreender a estrutura interna e os processos das fontes de dados. October 14, Adicionados a 29 de fevereiro de 2017, pontos adicionais a serem considerados.1 Este sistema depende da obtenção de preenchimentos precisos no preço aberto. Para obter esses preenchimentos, é necessário um feed de dados com atraso mínimo de qualidade e habilidades avançadas de programação para implementar a automação comercial.2 Ao configurar a entrada Preço ligeiramente abaixo do preço aberto tentando melhorar o desempenho do sistema falha miseravelmente Mesmo melhorando o preço por Apenas um centavo mata o sistema Isso sugere que a maior parte do lucro vem de dias em que o preço do Open foi igual ao diário Baixo, ou seja, o preço subiu do Open e nunca caiu abaixo dele Isso, é claro, é óbvio Para confirmar Isso eu adicionei esta condição de teste que olha adiante para excluir dias em que Open Low. Buy Compre E NÃO O L. Isto mata o sistema e prova que a maioria do lucro vem de dias onde OL Para confirmar ainda mais isto eu adicionei a condição oposta. Compra Comprar AND O L. Isso dá quase lucros infinitos e prova que a maioria dos lucros vêm de dias em que o preço se move imediatamente a partir do Open e nunca retorna abaixo dele Tentando melhorar o preço de entrada é um erro que deve entrar em um conjunto Stop 1-2 ct acima do preço aberto, isso eliminará os dias quando o preço cai e nunca volta para trás Isso melhora o desempenho significativamente.3 Este sistema de negociação knee-jerk trader-respostas padrões Esses padrões são geralmente afogados por grande volume de negociação, portanto, este sistema Tem funciona muito melhor quando você selecionar tickers com volumes entre 500.000 e 5.000.000 partes dia Isto também melhora significativamente o desempenho. Adicionando os dois recursos acima resulta em uma curva de equidade muito melhor do que o mostrado abaixo Desculpe, eu não tenho tempo para documentar o acima em maior Detalhe Boa sorte. Este post descreve uma idéia de negociação de Long-somente muito simples que compra em um determinado percentual abaixo de ontem s baixo e sai no dia seguinte s aberto embora às vezes pode ser difícil obter o preço exato aberto, a alta rentabilidade Do sistema torna-o um bom candidato para a experimentação adicional O sistema funciona bem com Watchlists como o N100, SP500, SP1500, Russel 1000, etc Desempenho no Russel 1000, com posições máximas abertas definido como 1, para o período 12 10 2003 a 12 10 2017, olha como este. Algumas das outras listas de observação dão menos lucros da exposição mas este vem com DDs mais baixo As comissões foram ajustadas a 0 005 por a parte Nenhuma margem usada. Isto pode significar que, devido a problemas de digitalização em tempo real, os símbolos listados no topo deste tipo podem ser comercializados de forma diferente daqueles listados Na parte inferior. Pague a atenção à liquidez que você pôde querer negociar mais de uma posição e deslize A entrada é rather risco-livre, mas as saídas podem ser DDs problemáticos são significativas mas podem ser deslocadas com entradas e saídas negociadas em tempo real melhoradas Ao negociar automaticamente Pode ser possível colocar ordens de entrada OCA DAY-LMT para todos os sinais e apenas esperar e ver o que preenche Desde saídas são mais difíceis do que entradas que você pode querer explorar outras estratégias de saída. Parameter valores padrão são apenas escolhido de um chapéu Quase certamente Você pode otimizá-los ou ajustá-los dinamicamente para tickers individuais Eu rapidamente testei este sistema no modo Walk-Forward e os resultados foram rentáveis ​​para todos os anos testados Exceto para o número De ações negociadas parâmetros parecem não muito crítico Over-otimização não parece um problema neste caso. O código abaixo é muito simples e requer poucas explicações No entanto, é importante entender que este sistema goza de uma pequena vantagem por negociação no Open, e Calculando o TrendMA usando o mesmo preço Open Alguns podem interpretar isso como vazamento futuro, no entanto, se você trocar este sistema em tempo real, não é Muitas pessoas não percebem que se você trocar no Open você também pode usar esse preço em Seus cálculos, desde que você executá-los em tempo real, é aqui que AmiBroker e tecnologia pode lhe dar uma vantagem Se você Ref de volta o TrendMA por uma barra do sistema ainda é muito rentável no entanto DDs aumentar para algumas Watchlists Se você usar investimentos fixos o A diferença é insignificante. O procedimento de negociação seria começar a digitalização antes que o mercado abra e remova os tickers que são preços tão remotos que eles são improváveis ​​para atender o OpenThresh Assim, você pode começar a digitalizar 1000 sy Mbols, mas muito rapidamente o número digitalizado vai diminuir a apenas uma dúzia de tickers Quando você se aproximar 9 30am sua varredura em tempo real será muito rápido e você será capaz de colocar a sua ordem LMT muito perto do Open você pode até mesmo ser capaz Para melhorar o preço aberto. Mesmo que algumas pessoas olhou para o código abaixo e não encontrou nada de errado, os lucros parecem bastante elevados para um sistema tão simples Por favor, relate os erros que você pode see. Filed por Herman às 7 03 pm sob idéias Experimental Comentários Off em EOD Gap-Trading Portfolio system. September 1, 2017.Esta idéia foi postada 161332 na lista principal AmiBroker em 3 de julho de 2017 Houve inúmeros comentários excelentes sobre a lista e se você estiver interessado em trabalhar neste sistema você faz bem Para lê-los todos antes de começar Depois de postar eu encontrei um número de postagens na web discutindo esta idéia de negociação, alguns alegaram estar negociando um sistema semelhante com sucesso bom. I referido a este sistema um Gap Trading sistema, mas isso pode ser um pouco de Um termo impróprio A versão pode ser uma melhor classificação Googling para ele vai te dar muitos mais hits para sistemas semelhantes Aqui estão alguns links. It parece ser uma idéia bastante negociada negociação e eu sugiro que você vai fazer alguns Googling em seu próprio país para aprender o mais recente como Um usuário Amibroker você tem melhores ferramentas do que a maioria dos comerciantes e você tem uma chance melhor do que a maioria para chegar a uma variação que funciona Talvez com um pouco menos lucros e com uma quantidade significativa de código adicional não será um projeto quicky. As pessoas comentaram que este sistema não funcionará no comércio real, enquanto eles podem estar certos outros dizem esquemas como este trabalho eu não terminei o sistema e não posso alegar saber se ele é negociável ou não. O sistema compra a uma certa percentagem abaixo yesterday s Low, on a LMT order, and exits in the same day at the Close. Filed by Herman at 6 53 pm under Ideas Experimental Comments Off on A Long-only EOD Gap trading idea. I use a small setup criteria to scan for my stocks. MACD default, I l ook for Histogram 4 down bars and 1 up bar for buy signal I have the histogram set to red for down and blue for up so I can see clearly MACD above Zero Line RSI Above 30 This system is base on trend trading Buying on pullback when the market continues its up trend. To scan for MACD Trend setups.1 Insert the following formula into a chart.2 Run a Scan in AA using SMACDTrend with All symbols n last days n 1 and Sync chart on select as the settings. Stocks that meet the criteria will be reported in the Results list. Note Some variations of the setup rules can define signals that are quite rare and in small databases it is possible that there will be no setups on any given day hence no stock will be reported by the scan.3 Click on any symbol in the Results pane to view the chart, for that symbol, in the background. Note In this example a training database, that only contains data up to 5 11 2007, was used. Trading idea by protraderincments and formula by Bill WaveMechanic. Filed by brianz at 11 06 pm under Ideas Experimental Comments Off on MACD Trend System. October 14, 2007.Filed by brianz at 10 43 pm under Ideas Experimental Comments Off on 15 Day Performers Trading System. August 19, 2007.This is the first in a series off KISS keep it simple, stupid trading ideas for you to play with All system ideas presented here are unproven, unfinished, and may contain errors They are intended to show possible patterns for further exploration As always, you are invited to make comments and or add your own ideas to this series. I prefer real-time systems that trade fast, are automated, and are devoid of traditional indicators Preferably, they should have no optimizable parameters however, I may not always be able to meet this objective Not all systems will be that simple there will be some that use simple averaging or HHV LLV type functions The first system shown below is a copy of the demo system I use to develop Trade-Automation routines elsewhere on this site. Real-Time Gap-Trading To s ee how this works, you should Backtest it on 1-minute data with a periodicity in the range of 5-60 minutes Your first impression may be that these profits are simply due to an up market, however, the fact that Long and Short profits are about equal suggests there is more to it Because 98 of all trades fall between 9 30 AM and 10 30 AM, this type of system is nice if you just want to trade a short time each day This reduces risk with respect to market exposure and gives you more time to enjoy other activities. Backtesting this on the NASDAQ-100 watchlist individual backtests, 15 min Periodicity gives the profits shown below for the period of 1 MAR 2007 to 17 AUG 2007 Ticker names are omitted to keep the chart compact the chart simply shows a net profit bar for each ticker tested Average exposure for this system is about 15 hence, you may be able to trade portfolios to increase profits and smooth the equity curves Be cautioned that in its raw form the drawdowns are unacceptable and that there may be volume restrictions for many tickers. Since this system has low exposure, it may be a candidate for market scanning and ranked portfolio trading RARs would be an indication of the absolute maximum profits that could be obtained if one succeeded to increase exposure to near 100 However, price movement from different tickers may be correlated, and trades from different tickers may overlap If many tickers trade at the same time, it would be difficult to increase system exposure. Edited by Al Venosa. Filed by Herman at 1 49 pm under Ideas Experimental Comments Off on KISS-001 Intraday Gap Trading. August 17, 2007.You are invited to submit links to system ideas in comments to this post. Gap Trading Strategies Stockcharts Intraday Moving Average Crossover with Position Sizing NeoTicker Volatility-Breakout-Systems Traders Log Ten day High Low system StockWeblog Reversion Systems SeekingAlpha Systems Traders Club Trader Club Bulletins. July 16, 2007.This category is reserved for real wo rking trading systems, i e that you have traded at some point in time or would consider trading Since the criteria for tradability varies from person to person, and since systems may work or not depending on how they are traded, it will be difficult to screen contributions here With respect to what is posted here, keep an open mind and consider that the poster considers the system tradable. You can contribute by posting as an author requires registration or in a comment to this post. Filed by Herman at 11 14 am under Practical Profitable Comments Off on Introduction to Trading Systems Practical. This is where you can share trading systems that are marginally profitable, i e those that should not be traded as they are but that show potential Typically this would be a basic system that is profitable but experiences draw downs of 50 Such systems can often be improved by adding Stops, Targets, Money Management, Portfolio techniques, etc The reality is that while you may not have the expertise to make it work someone else may. Almost all of us find trading system ideas in books and magazines that we then code in AFL for evaluation Some of these systems may have been around for many years while others are new ideas After coding them, almost always, we are disappointed and chuck out the system work Instead of throwing out your work you are invited to post the system here to give another developer a chance to fix it. You are invited to contribute as an author requires registration or in a comment to this post. Filed by Herman at 11 04 am under Ideas Experimental Comments Off on Introduction to Trading Systems Ideas.

No comments:

Post a Comment