Tuesday 10 April 2018

Estratégia de negociação ruby


sistemas de negociação ninjatrader.
Ferramentas de negociação & amp; sistemas.
Sistemas e ferramentas de negociação desenvolvidos profissionalmente, projetados para a plataforma NinjaTrader, para lhe dar uma vantagem competitiva no cenário comercial.
Lucrum Ruby Trading Estratégia Advanced NinjaTrader 7/8 Trading Strategy Toolbox.
All-In-One sistema de negociação que fornece a vantagem vencedora para ser um comerciante dia consistentemente rentável em futuros, Forex ou ações. $ 100 de desconto!
© 2017 Lucrum Trading Systems - Todos os direitos reservados.
Isenção de responsabilidade exigida pelo governo dos EUA - A negociação de futuros e opções da Commodity Futures Trading Commission tem grandes recompensas em potencial, mas também grande risco potencial. Você deve estar ciente dos riscos e estar disposto a aceitá-los para investir nos mercados de futuros e opções. Não negocie com dinheiro que você não pode perder. Esta e todas as outras informações em nosso site não constituem uma solicitação nem uma oferta para compra / venda de futuros ou opções. Nenhuma representação está sendo feita de que qualquer conta terá ou poderá obter lucros ou perdas semelhantes àquelas discutidas neste site. O desempenho passado de qualquer sistema ou metodologia de negociação não é necessariamente indicativo de resultados futuros.
CFTC REGRA 4.41 - OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES. A PARTIR DE UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, UMA VEZ QUE AS COMERCIALIZAÇÕES NÃO FORAM EXECUTADAS, OS RESULTADOS PODEM TER COMPENSADO PARA O IMPACTO, SE ALGUM, DE DETERMINADOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL TAMBÉM ESTÃO SUJEITOS AO FATO DE QUE ELES FORAM CONCEBIDOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO FEITA QUE QUALQUER CONTA PODERÁ OU POSSIBILITAR LUCROS OU PERDAS SEMELHANTES AOS APRESENTADOS.

Lucrum Ruby System.
Sistema de Ruby Lucrum.
Veja a ação do preço de forma clara e com definição usando as ferramentas do profissional Lucrum Ruby Trading System. Promoção de venda de US $ 100 de desconto por tempo limitado para celebrar nossa parceria com a NinjaTrader!
Lucrum Ruby para NinjaTrader 7 e Ninjatrader 8 é uma caixa de ferramentas de comerciantes de indicadores personalizados que são projetados para lhe dar a vantagem competitiva ao negociar em qualquer mercado. Nossos componentes algorítmicos profundos fornecem pistas visuais para oportunidades de negociação longas e curtas. O sistema funciona com muitos estilos diferentes de negociação e funciona igualmente bem em todos os mercados negociados.
Nosso sistema foi projetado para dar a qualquer profissional, independentemente de experiência ou habilidade, uma ferramenta para ajudar a posicionar-se no lado correto do mercado com confiabilidade sistemática. A visão e o objetivo desse sistema era aplicar uma série de metodologias de negociação testadas e verdadeiras e combiná-lo em um sistema tudo-em-um visualmente claro, conciso e acionável. Dê uma chance a Ruby hoje e veja por si mesmo.
8 ferramentas, 1 tipo de barra personalizada, várias estratégias, um sistema.
Apenas $ 395 para a vida.
Usando os intervalos alto / baixo dos intervalos de desvio de movimento de preço, o sistema Ruby é capaz de identificar vários padrões de quebra de chave, como canais de alta e baixa.
Sinais de comércio codificados por cores.
Com base no funcionamento interno do sistema, o Lucrum Ruby produz sinais comerciais codificados por cores que exibirão a força e a direção implícitas. Esses sinais não são repintados.
Visão Renko Bar Type.
O Vision Renko Bar Type é o tipo de barra mais preciso disponível no NinjaTrader 7 e fornece o movimento de preço mais realista de qualquer gráfico baseado no Renko. Nosso Renko também é 100% backtest preciso.
O sistema Ruby é capaz de exibir a direção do mercado com total clareza. Usando as barras codificadas por cores e as bandas em movimento, a pessoa terá uma noção mais forte de onde o preço está tendendo. Nosso algoritmo proprietário encontra as oportunidades de negociação para você.
Os níveis de Fibonacci em tempo real são exibidos e atualizados à medida que os intervalos de desvio se desenvolvem. Esses níveis de retração de Fibonacci podem ser usados ​​para identificar pontos-chave de suporte ou resistência, bem como fornecer stop loss e obter níveis de lucro.
Parada de Volatilidade Dinâmica.
A parada de volatilidade de faixa real escalonada é ajustada dinamicamente conforme o preço se move para fornecer ao trader uma excelente fonte de stop loss / take profit.
Ativando as altas / baixas extensões, você pode projetar facilmente as altas e baixas anteriores com base nos ápices dos intervalos de desvio. Isso é especialmente útil ao estabelecer o stop loss e obter níveis de lucro.
Troca de paleta de cores.
Use as entradas incorporadas para alterar as cores de todos os componentes do sistema Lucrum Ruby.
Guia Compreensivo de Uso e Negociação.
Toda compra do Ruby Trading System inclui um manual completo de operadores e um guia para o uso e a aplicação dos componentes do sistema. Com o guia de negociação, você aprenderá sobre cada componente do sistema Ruby e como eles juntos criam uma estratégia baseada em regras fácil e concisa.
O guia não apenas fornece os passos detalhados de como usar e aplicar a metodologia do sistema Ruby, mas abrange uma gama mais ampla de teoria, capital e gerenciamento de riscos.
O que nossos clientes pensam.
Mike H "Eu também queria que você soubesse; Eu estive checando alguns softwares de alto dólar que supostamente tem alguns algoritmos super-secretos por trás disso. Eu coloquei tudo através do Bloodhound para compilar minhas idéias em uma direção única e concisa. Ajustando alguns dos seus parâmetros, eu realmente obtenho resultados mais precisos. Obrigado. & Quot;
Larry F & quot; Sendo um comerciante relativamente novo negociando futuros crus, encontrei o sistema de negociacao Ruby para realmente me ajudar com o sucesso global da minha negociacao. O sistema é visualmente orientado e permite-me determinar rapidamente as oportunidades que suportam a minha estratégia. Eu recomendo Ruby para todos os traders, iniciantes ou não, por causa da grande quantidade de ferramentas aplicáveis ​​para usar. Obrigado. & Quot;
Bernard: “Eu gostaria de agradecer a você por esta ferramenta, ela certamente se tornou a pedra angular da minha negociação e achou-a simples, porém detalhada, com uma infinidade de maneiras de usá-la. Com isso, eu sou capaz de, mais ou menos consistentemente, transformar os lucros tanto no petróleo bruto quanto no e-mini semana após semana.
Sam R & quot; Este produto teria me poupado muito esforço e dinheiro (perdido) se eu tivesse tido mais cedo. Estou aproveitando a clareza das tendências de preços e as barras da Renko ajudam a suavizar um pouco mais. Eu acho que isso já se pagou uma dúzia de vezes ao longo do ano negociando ao lado. & Quot;
© 2017 Lucrum Trading Systems - Todos os direitos reservados.
Isenção de responsabilidade exigida pelo governo dos EUA - A negociação de futuros e opções da Commodity Futures Trading Commission tem grandes recompensas em potencial, mas também grande risco potencial. Você deve estar ciente dos riscos e estar disposto a aceitá-los para investir nos mercados de futuros e opções. Não negocie com dinheiro que você não pode perder. Esta e todas as outras informações em nosso site não constituem uma solicitação nem uma oferta para compra / venda de futuros ou opções. Nenhuma representação está sendo feita de que qualquer conta terá ou poderá obter lucros ou perdas semelhantes àquelas discutidas neste site. O desempenho passado de qualquer sistema ou metodologia de negociação não é necessariamente indicativo de resultados futuros.
CFTC REGRA 4.41 - OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES. A PARTIR DE UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, UMA VEZ QUE AS COMERCIALIZAÇÕES NÃO FORAM EXECUTADAS, OS RESULTADOS PODEM TER COMPENSADO PARA O IMPACTO, SE ALGUM, DE DETERMINADOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL TAMBÉM ESTÃO SUJEITOS AO FATO DE QUE ELES FORAM CONCEBIDOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO FEITA QUE QUALQUER CONTA PODERÁ OU POSSIBILITAR LUCROS OU PERDAS SEMELHANTES AOS APRESENTADOS.

Estratégia de negociação de Ruby
Obter via App Store Leia este post em nosso aplicativo!
Linguagem de script para desenvolvimento de estratégia de negociação.
Atualmente, estou trabalhando em um componente de um produto comercial que permitirá que um desenvolvedor de quants ou estratégias escreva suas próprias estratégias personalizadas. Obviamente, não posso fazer com que eles escrevam essas estratégias em linguagens nativamente compiladas (ou mesmo em uma linguagem que compila para um bytecode para rodar em uma vm), já que seus ciclos de desenvolvimento / teste precisam ser da ordem de minutos.
Eu olhei para lua, python, ruby ​​até agora e realmente gostei de todos eles até agora, mas ainda os encontrei um pouco "baixo nível" para os meus usuários-alvo. Eu precisaria de alguma forma escrever meu próprio interpretador + interpretador para suportar uma linguagem com um mínimo de suporte para avaliação de expressões lógicas, aritméticas, em loop, ou há outra recomendação que qualquer um de vocês possa ter? Desde já, obrigado.
11 respostas.
Mark-Jason Dominus, autor do módulo Text :: Template do Perl, tem algumas ideias que podem ser relevantes:
Quando as pessoas criam um módulo de modelo como este, elas quase sempre começam inventando uma sintaxe especial para substituições. Por exemplo, eles o constroem para que uma string como %% VAR %% seja substituída pelo valor de $ VAR. Então eles percebem a necessidade de formatação extra, então eles colocam alguma sintaxe especial para formatação. Então eles precisam de um loop, então inventam uma sintaxe de loop. Muito em breve eles têm uma nova linguagem de modelo pouco.
Essa abordagem tem dois problemas: primeiro, sua pequena linguagem é aleijada. Se você precisa fazer algo que o autor não tenha pensado, você perde. Segundo: Quem quer aprender outro idioma?
Se você escreve sua própria mini-linguagem, você pode acabar na mesma situação - mantendo uma gramática e um analisador para uma ferramenta que é prejudicada pelo design.
Se uma linguagem de programação real parece um nível muito baixo, a solução pode não ser abandonar a linguagem, mas sim fornecer aos usuários finais funções de utilitário de nível mais alto, para que possam operar com conceitos familiares sem ficarem atolados no ervas daninhas da linguagem subjacente.
Isso permite que os usuários iniciantes operem em alto nível; no entanto, você e qualquer usuário final com talento - seus superusuários - ainda podem aproveitar todo o poder de Ruby ou Python ou qualquer outra coisa.
Parece que você pode precisar criar algum tipo de Linguagem Específica de Domínio (DSL) para seus usuários, que poderia ser construído livremente sobre o idioma de destino. Ruby, Python e Lua todos têm suas peculiaridades relacionadas à sintaxe, e até certo ponto algumas delas podem ser massageadas com definições de funções inteligentes.
Um exemplo de um DSL razoavelmente robusto é o Pepino, que implementa uma interessante estratégia de conversão de palavreado especificado pelo usuário em código executável real por meio de uma série de expressões regulares aplicadas aos dados de entrada.
Outro candidato pode ser JavaScript, ou algum tipo de DSL para ponte JavaScript, pois isso permitiria que a estratégia fosse executada no lado do cliente ou no lado do servidor. Isso pode ajudar a escalonar seu aplicativo, já que as máquinas clientes costumam ter um poder computacional excedente em comparação com um servidor altamente carregado.
Módulos customizados serão necessários, não importa o que você escolher, que definam as construções de alto nível de sua empresa.
Aqui estão algumas das necessidades que imagino - você pode ter algumas delas já abordadas: uma maneira de obter posições atuais, cotações atuais e históricas, dados de desempenho anteriores etc. no aplicativo. Definir / backtest / enviar vários tipos de ordens (limite / mercado / stop, o que troca, triggers) ou parâmetros de opções, etc. Você provavelmente vai precisar de vários sandboxes para testes, bem como a coisa real.
Quants quer ser capaz de fazer operações de matriz, cálculo estocástico, PDEs.
Se você quisesse fazer isso em python, carregar o NumPy seria um começo.
Você também pode começar com um sistema proprietário projetado para fazer pesquisa financeira matemática, como algo construído sobre o Mathematica ou o Matlab.
Eu tenho trabalhado em um Python Algorithmic Trading Library (na verdade, para backtesting, não para negociação real). Você pode querer dar uma olhada: gbeced. github / pyalgotrade /
Verifique o tadeveloper para uma estrutura de backtesting usando o MATLAB como uma linguagem de script. O MATLAB tem a vantagem de ser muito poderoso, mas você não precisa ser um programador para usá-lo.
Isso pode ser um pouco simplista, mas muitos usuários de quant são acostumados a trabalhar com o Excel & amp; Macros VBA. Será que algo como o VBSCript pode ser usado, pois eles podem ter alguma experiência nesta área.
Os idiomas existentes são "um pouco" de baixo nível "para meus usuários-alvo".
No entanto, tudo o que você precisa é "um mínimo de suporte para avaliação de expressão lógica, lógica e aritmética simples"
Eu não entendi o problema. Você só quer alguns recursos. O que há de errado com a lista de idiomas que você forneceu? Eles realmente oferecem esses recursos?
Qual é a desconexão? Sinta-se à vontade para atualizar sua pergunta para expandir o problema.
Eu usaria o Common Lisp, que suporta desenvolvimento rápido (você tem uma imagem em execução e pode compilar / recompilar funções individuais) e adaptar o idioma ao seu domínio. Você forneceria funções e macros como blocos de construção para expressar estratégias, e toda a linguagem estaria disponível ao usuário para combiná-las.
É algo ao longo das linhas de processamento do nível de complexidade que você está atirando para? O processamento é um bom exemplo de como usar uma linguagem completa (Java) e reduzir / simplificar a sintaxe disponível em apenas um subconjunto aplicável ao domínio do problema (domínio do problema = visualização no caso de Processamento).
Aqui está uma pequena comparação lado a lado dos documentos de processamento.
Como outros sugeriram, você pode simplesmente escrever funções de alto nível suficientes para que a maior parte da complexidade fique oculta do usuário, mas você ainda pode fazer mais coisas de baixo nível quando necessário. A linguagem de ligação para o Arduino segue essa estratégia de usar uma camada fina de funções de alto nível no topo de C para torná-lo mais acessível a não-programadores e amadores.
Defina a linguagem primeiro - se possível, use a pseudo-linguagem chamada EBN, é muito simples (veja a entrada da Wikipedia).
Então, quando você tiver isso, escolha o idioma. Quase certamente você vai querer usar uma DSL. Ruby e Lua são muito bons nisso, IMO.
Uma vez que você comece a trabalhar, você pode achar que você volta para sua definição e ajusta-a. Mas essa é a ordem certa para fazer as coisas, eu acho.

Backtesting Bem-sucedido de Estratégias de Negociação Algorítmica - Parte I.
Backtesting Bem-sucedido de Estratégias de Negociação Algorítmica - Parte I.
Este artigo continua a série sobre negociação quantitativa, que começou com o Beginner's Guide and Strategy Identification. Ambos os artigos, mais longos e mais envolvidos, têm sido muito populares, por isso vou continuar nesse sentido e fornecer detalhes sobre o tema do backtesting de estratégia.
O backtesting algorítmico requer conhecimento de muitas áreas, incluindo psicologia, matemática, estatística, desenvolvimento de software e microestrutura de mercado / troca. Eu não poderia esperar cobrir todos esses tópicos em um artigo, então vou dividi-los em duas ou três partes menores. O que vamos discutir nesta seção? Começarei definindo o backtesting e depois descreverei o básico de como ele é realizado. Então eu vou elucidar sobre os preconceitos que tocamos no Beginner's Guide to Quantitative Trading. A seguir, apresentarei uma comparação das várias opções de software de backtesting disponíveis.
Nos artigos subseqüentes, veremos os detalhes das implementações de estratégia que são mal mencionadas ou ignoradas. Também vamos considerar como tornar o processo de backtesting mais realista, incluindo as idiossincrasias de uma bolsa de valores. Em seguida, discutiremos os custos de transação e como modelá-los corretamente em uma configuração de backtest. Terminaremos com uma discussão sobre o desempenho de nossos backtests e, finalmente, forneceremos um exemplo de uma estratégia comum de quant, conhecida como um comércio de pares que reverte a média.
Vamos começar discutindo o que é o backtesting e por que devemos realizá-lo em nossa negociação algorítmica.
O que é o backtesting?
O comércio algorítmico se diferencia de outros tipos de classes de investimento, porque podemos fornecer expectativas mais confiáveis ​​sobre o desempenho futuro de desempenho passado, como consequência da disponibilidade abundante de dados. O processo pelo qual isso é realizado é conhecido como backtesting.
Em termos simples, o backtesting é realizado expondo seu algoritmo de estratégia particular a um fluxo de dados financeiros históricos, o que leva a um conjunto de sinais de negociação. Cada negociação (que vamos querer dizer aqui como uma ida e volta de dois sinais) terá um lucro ou prejuízo associado. A acumulação deste lucro / perda ao longo da duração do seu backtest de estratégia levará ao lucro e perda total (também conhecido como 'P & L' ou 'PnL'). Essa é a essência da ideia, embora, é claro, o "diabo esteja sempre nos detalhes"!
Quais são as principais razões para o backtest de uma estratégia algorítmica?
Filtragem - Se você se lembra do artigo sobre identificação de estratégia, nosso objetivo na fase inicial de pesquisa era configurar um pipeline de estratégia e filtrar qualquer estratégia que não atendesse a determinados critérios. O backtesting nos fornece outro mecanismo de filtragem, pois podemos eliminar estratégias que não atendem às nossas necessidades de desempenho. Modelagem - O backtesting nos permite testar (com segurança!) Novos modelos de certos fenômenos de mercado, como custos de transação, roteamento de ordens, latência, liquidez ou outras questões de microestrutura do mercado. Otimização - Embora a otimização da estratégia seja repleta de vieses, o backtesting nos permite aumentar o desempenho de uma estratégia, modificando a quantidade ou os valores dos parâmetros associados a essa estratégia e recalculando seu desempenho. Verificação - Nossas estratégias são muitas vezes adquiridas externamente, através do nosso pipeline de estratégia. O backtesting de uma estratégia garante que ela não tenha sido implementada incorretamente. Embora raramente tenhamos acesso aos sinais gerados por estratégias externas, muitas vezes teremos acesso às métricas de desempenho, como as características de Sharpe Ratio e Drawdown. Assim, podemos compará-los com nossa própria implementação.
Backtesting fornece uma série de vantagens para negociação algorítmica. No entanto, nem sempre é possível fazer backtest diretamente de uma estratégia. Em geral, à medida que a frequência da estratégia aumenta, torna-se mais difícil modelar corretamente os efeitos de microestrutura do mercado e das trocas. Isso leva a backtests menos confiáveis ​​e, portanto, uma avaliação mais complicada de uma estratégia escolhida. Este é um problema particular em que o sistema de execução é a chave para o desempenho da estratégia, como acontece com os algoritmos de freqüência ultra-alta.
Infelizmente, o backtesting é repleto de preconceitos de todos os tipos. Nós abordamos algumas dessas questões em artigos anteriores, mas vamos agora discuti-las em profundidade.
Vieses que afetam os backtests de estratégia.
Existem muitos vieses que podem afetar o desempenho de uma estratégia de backtested. Infelizmente, esses vieses tendem a inflar o desempenho em vez de prejudicá-lo. Assim, você deve sempre considerar um backtest como um limite superior idealizado no desempenho real da estratégia. É quase impossível eliminar os vieses do comércio algorítmico, por isso é nosso trabalho minimizá-los da melhor maneira possível, a fim de tomar decisões informadas sobre nossas estratégias algorítmicas.
Existem quatro principais vieses que desejo discutir: Viés de Otimização, Viés de Look-Ahead, Viés de Sobrevivência e Viés de Tolerância Psicológica.
Viés de otimização.
Este é provavelmente o mais insidioso de todos os preconceitos de backtest. Envolve o ajuste ou a introdução de parâmetros de negociação adicionais até que o desempenho da estratégia no conjunto de dados de backtest seja muito atraente. No entanto, uma vez que viver, o desempenho da estratégia pode ser muito diferente. Outro nome para esse viés é "ajuste de curva" ou "viés de snooping de dados".
O viés de otimização é difícil de eliminar, pois as estratégias algorítmicas geralmente envolvem muitos parâmetros. "Parâmetros" neste exemplo podem ser os critérios de entrada / saída, períodos de retorno, períodos médios (isto é, o parâmetro de suavização da média móvel) ou frequência de medição de volatilidade. O viés de otimização pode ser minimizado mantendo o número de parâmetros no mínimo e aumentando a quantidade de pontos de dados no conjunto de treinamento. De fato, também é preciso ter cuidado com este último, pois os pontos de treinamento mais antigos podem estar sujeitos a um regime anterior (como um ambiente regulatório) e, portanto, podem não ser relevantes para sua estratégia atual.
Um método para ajudar a atenuar esse viés é realizar uma análise de sensibilidade. Isso significa variar os parâmetros de forma incremental e traçar uma "superfície" de desempenho. O raciocínio sólido e fundamental para as escolhas de parâmetros deve, com todos os outros fatores considerados, levar a uma superfície de parâmetro mais suave. Se você tem uma superfície de desempenho muito agitada, isso geralmente significa que um parâmetro não está refletindo um fenômeno e é um artefato dos dados de teste. Existe uma vasta literatura sobre algoritmos de otimização multidimensional e é uma área altamente ativa de pesquisa. Eu não vou me debruçar sobre isso aqui, mas mantenha isso no fundo de sua mente quando você encontrar uma estratégia com um backtest fantástico!
Tendência de Look-Ahead.
O viés de antecipação é introduzido em um sistema de backtesting quando dados futuros são acidentalmente incluídos em um ponto da simulação onde esses dados não estariam disponíveis. Se estivermos realizando o backtest cronologicamente e chegarmos ao ponto de tempo $ N $, então o bias de look-ahead ocorrerá se os dados forem incluídos para qualquer ponto $ N + k $, onde $ k> 0 $. Erros de polarização antecipada podem ser incrivelmente sutis. Aqui estão três exemplos de como o viés de look-ahead pode ser introduzido:
Bugs técnicos - Matrizes / vetores no código geralmente possuem iteradores ou variáveis ​​de índice. Deslocamentos incorretos desses índices podem levar a um viés de antecipação ao incorporar dados em $ N + k $ para não-zero $ k $. Cálculo de Parâmetros - Outro exemplo comum de viés de look-ahead ocorre ao calcular parâmetros estratégicos ótimos, como com regressões lineares entre duas séries temporais. Se todo o conjunto de dados (incluindo dados futuros) for usado para calcular os coeficientes de regressão e, portanto, aplicado retroativamente a uma estratégia de negociação para fins de otimização, os dados futuros serão incorporados e haverá um viés de antecipação. Maxima / Minima - Determinadas estratégias de negociação utilizam valores extremos em qualquer período de tempo, como incorporar os preços altos ou baixos nos dados do OHLC. No entanto, como esses valores máximos / mínimos só podem ser calculados no final de um período de tempo, um viés de antecipação é introduzido se esses valores forem usados ​​durante o período atual. É sempre necessário atrasar valores altos / baixos em pelo menos um período em qualquer estratégia de negociação fazendo uso deles.
Tal como acontece com o viés de otimização, é preciso ter muito cuidado para evitar sua introdução. Muitas vezes, é a principal razão pela qual as estratégias de negociação têm um desempenho inferior aos backtests significativamente em "negociação ao vivo".
Viés de sobrevivência.
O viés de sobrevivência é um fenômeno particularmente perigoso e pode levar a um desempenho significativamente inflacionado para certos tipos de estratégia. Ocorre quando as estratégias são testadas em conjuntos de dados que não incluem o universo completo de ativos anteriores que podem ter sido escolhidos em um determinado momento, mas consideram apenas aqueles que "sobreviveram" à hora atual.
Como exemplo, considere testar uma estratégia em uma seleção aleatória de ações antes e depois do crash do mercado de 2001. Algumas ações da tecnologia faliram, enquanto outras conseguiram se manter à tona e até prosperaram. Se tivéssemos restringido essa estratégia apenas às ações que passaram pelo período de rebaixamento do mercado, estaríamos introduzindo um viés de sobrevivência, porque eles já demonstraram seu sucesso para nós. Na verdade, esse é apenas outro caso específico de viés de antecipação, já que informações futuras estão sendo incorporadas à análise passada.
Existem duas maneiras principais de atenuar o viés de sobrevivência em seus backtests de estratégia:
Conjuntos de dados livres de viés de sobrevivência - No caso de dados de patrimônio, é possível comprar conjuntos de dados que incluem entidades com saída de linha, embora não sejam baratas e só tendam a ser utilizadas por empresas institucionais. Em particular, os dados do Yahoo Finance NÃO são livres de viés de sobrevivência, e isso é comumente usado por muitos traders de algoritmos de varejo. Também é possível negociar em classes de ativos que não são propensas ao viés de sobrevivência, como certas commodities (e seus futuros derivativos). Usar dados mais recentes - No caso de ações, a utilização de um conjunto de dados mais recente atenua a possibilidade de que a seleção de ações escolhida seja ponderada para "sobreviventes", simplesmente porque há menos probabilidade de fechamento de estoque geral em períodos de tempo mais curtos. Também é possível começar a criar um conjunto de dados pessoal livre de viés de sobrevivência, coletando dados do ponto atual em diante. Depois de 3 a 4 anos, você terá um sólido conjunto de dados de equidade livres de viés de sobrevivência, com o qual será feito backtest de estratégias adicionais.
Consideraremos agora certos fenômenos psicológicos que podem influenciar seu desempenho comercial.
Tendência da Tolerância Psicológica.
Este fenómeno em particular não é frequentemente discutido no contexto do comércio quantitativo. No entanto, é discutido extensivamente em relação a métodos de negociação mais discricionários. Ele tem vários nomes, mas eu decidi chamar de "viés de tolerância psicológica" porque capta a essência do problema. Ao criar backtests durante um período de 5 anos ou mais, é fácil olhar para uma curva de capital de tendência ascendente, calcular o retorno anual composto, o índice de Sharpe e até as características de rebaixamento e ficar satisfeito com os resultados. Como exemplo, a estratégia pode possuir um rebaixamento relativo máximo de 25% e uma duração máxima de rebaixamento de 4 meses. Isso não seria atípico para uma estratégia momentânea. É fácil convencer-se de que é fácil tolerar esses períodos de perdas porque o quadro geral é otimista. No entanto, na prática, é muito mais difícil!
Se rebotes históricos de 25% ou mais ocorrerem nos backtests, então, com toda a probabilidade, você verá períodos de rebaixamento similar em negociações ao vivo. Estes períodos de abandono são psicologicamente difíceis de suportar. Observei em primeira mão como pode ser uma redução prolongada, em um ambiente institucional, e isso não é agradável - mesmo que os backtests sugiram que tais períodos ocorrerão. A razão pela qual eu o denominei de "viés" é que muitas vezes uma estratégia que de outra forma seria bem-sucedida é impedida de negociar durante períodos de rebaixamento estendido e, portanto, levará a um desempenho significativamente inferior em comparação com um backtest. Assim, embora a estratégia seja de natureza algorítmica, os fatores psicológicos ainda podem ter uma forte influência na lucratividade. O objetivo é assegurar que, se você vir perdas de uma certa porcentagem e duração nos backtests, então você deve esperar que elas ocorram em ambientes de negociação ao vivo e que precisem perseverar para alcançar a lucratividade mais uma vez.
Pacotes de software para backtesting.
O cenário de software para backtesting de estratégia é vasto. As soluções vão desde software sofisticado de grau institucional totalmente integrado até linguagens de programação como C ++, Python e R, onde quase tudo deve ser escrito do zero (ou 'plugins' obtidos). Como traders quant estamos interessados ​​no equilíbrio de poder "possuir" nossa pilha de tecnologia de negociação versus a velocidade e confiabilidade de nossa metodologia de desenvolvimento. Aqui estão as principais considerações para a escolha de software:
Habilidade de Programação - A escolha do ambiente dependerá em grande parte de sua capacidade de programar software. Eu diria que estar no controle da pilha total terá um efeito maior em seu P & L de longo prazo do que a terceirização, tanto quanto possível, do software do fornecedor. Isso se deve ao risco negativo de ter bugs externos ou idiossincrasias que você não consiga consertar no software do fornecedor, que, de outra forma, seriam facilmente solucionados se você tivesse mais controle sobre sua "pilha de tecnologia". Você também quer um ambiente que encontre o equilíbrio certo entre produtividade, disponibilidade de biblioteca e velocidade de execução. Eu faço minha própria recomendação pessoal abaixo. Interação de capacidade de execução / corretor - Certos softwares de backtesting, como o Tradestation, são vinculados diretamente a uma corretora. Eu não sou fã dessa abordagem, já que reduzir os custos de transação é muitas vezes um grande componente para obter um índice maior de Sharpe. Se você está preso a um corretor específico (e o Tradestation o "força" a fazer isso), você terá mais dificuldade em fazer a transição para um novo software (ou um novo corretor), se necessário. Os Interactive Brokers fornecem uma API robusta, embora com uma interface ligeiramente obtusa. Personalização - Um ambiente como o MATLAB ou o Python oferece uma grande flexibilidade na criação de estratégias de algoritmos, uma vez que fornecem bibliotecas fantásticas para quase todas as operações matemáticas imagináveis, mas também permitem uma ampla personalização quando necessário. Complexidade de estratégia - Certos softwares simplesmente não são feitos para processamento pesado de números ou complexidade matemática. O Excel é um desses softwares. Embora seja bom para estratégias mais simples, ele não pode realmente lidar com numerosos ativos ou algoritmos mais complicados, em velocidade. Minimização de viés - Uma determinada peça de software ou dados se presta mais a vieses de negociação? Você precisa ter certeza de que, se quiser criar todas as funcionalidades sozinho, não apresentará bugs que possam levar a vieses. Velocidade de desenvolvimento - Não se deve ter que passar meses e meses implementando um mecanismo de backtest. A prototipagem deve levar apenas algumas semanas. Certifique-se de que seu software não está atrapalhando o seu progresso em grande medida, apenas para pegar alguns pontos percentuais extras de velocidade de execução. C ++ é o "elefante na sala" aqui! Velocidade de Execução - Se a sua estratégia é completamente dependente da pontualidade da execução (como no HFT / UHFT), então uma linguagem como C ou C ++ será necessária. No entanto, você estará se aproximando da otimização do kernel do Linux e do uso do FPGA para esses domínios, o que está fora do escopo deste artigo! Custo - Muitos dos ambientes de software com os quais você pode programar estratégias de negociação algorítmica são completamente livres e de código aberto. Na verdade, muitos fundos de hedge fazem uso de software de código aberto para todas as suas pilhas de negociação de algoritmos. Além disso, o Excel e o MATLAB são relativamente baratos e existem alternativas gratuitas para cada um deles.
Agora que listamos os critérios com os quais precisamos escolher nossa infraestrutura de software, eu quero executar alguns dos pacotes mais populares e como eles se comparam:
Nota: Eu só vou incluir o software que está disponível para a maioria dos profissionais de varejo e desenvolvedores de software, pois este é o público do site. Enquanto outros softwares estão disponíveis, tais como as ferramentas mais institucionais, eu sinto que são muito caras para serem efetivamente usadas em um ambiente de varejo e eu pessoalmente não tenho nenhuma experiência com elas.
1.000 USD para uma licença.
Estratégias diferentes exigirão pacotes de software diferentes. As estratégias HFT e UHFT serão escritas em C / C ++ (atualmente, elas são executadas em GPUs e FPGAs), enquanto as estratégias de equidade direcional de baixa frequência são fáceis de implementar na TradeStation, devido à natureza "tudo em um" do software / corretagem.
Minha preferência pessoal é pelo Python, pois fornece o grau certo de personalização, velocidade de desenvolvimento, capacidade de teste e velocidade de execução para minhas necessidades e estratégias. Se eu precisar de algo mais rápido, posso "ir direto" para o C ++ diretamente dos meus programas em Python. Um método preferido por muitos comerciantes de quantificação é criar um protótipo de suas estratégias no Python e depois converter as seções de execução mais lentas em C ++ de maneira iterativa. Eventualmente todo o algoritmo é escrito em C ++ e pode ser "deixado sozinho para trocar"!
Nos próximos artigos sobre backtesting, vamos dar uma olhada em algumas questões específicas em torno da implementação de um sistema de backtesting algorítmico de negociação, bem como como incorporar os efeitos das trocas comerciais. Discutiremos a medição do desempenho da estratégia e, finalmente, concluiremos com uma estratégia de exemplo.
A Quantcademy.
Participe do portal de associação da Quantcademy que atende à crescente comunidade de traders de quantificação de varejo e aprenda como aumentar a lucratividade de sua estratégia.
Negociação Algorítmica Bem Sucedida.
Como encontrar novas ideias de estratégia de negociação e avaliá-las objetivamente para o seu portfólio usando um mecanismo de backtesting personalizado no Python.
Comércio Algorítmico Avançado.
Como implementar estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas Bayesianas com R e Python.

Workshop de Opções.
Poderosos recursos de automação, monitoramento de mercado e análise de posições.
O Workshop de Opção é gratuito por 30 dias.
Últimas mensagens do blog.
Estratégias.
Divida suas posições.
em grupos independentes.
Gráficos de estratégia.
Mesas de opções.
vista de tabela configurável.
Gráficos de opções.
Cenários hipotéticos.
Automação de negociação.
Market Maker.
O criador de mercado possibilita a manutenção de ofertas e ofertas em qualquer instrumento. É lógica é altamente personalizável. Você pode citar um lance e / ou uma oferta, configurar spreads, definir sensibilidade para alterar o preço ou a volatilidade. Também pode unir instrumentos individuais para abrir ou fechar grandes posições em pequenas porções.
Delta Hedger.
O hedger Delta foi projetado para manter o delta de uma posição de opções dentro de um intervalo desejado. O usuário pode segregar algumas posições de opções em um sub-portfólio separado e protegê-las independentemente.
Guia de preços.
Iniciar.
O Workshop de Opção é gratuito por 30 dias!
Assine as novidades da Option Workshop.
Feedback Subscreva as notícias Avisos de risco e Condições do site +1 312 340 0574 Support Option Workshop, 2018 | Reportar um erro de digitação.
Para denunciar um erro de digitação:
Selecione o texto com um erro de digitação. Pressione Ctrl + Enter (opcionalmente) Digite uma descrição Pressione Enter.

Pokemon de comércio de vermelho para Ruby / Sapphire?
Tendências agora.
A negociação binária é anunciada como o único sistema genuíno que permite aos usuários ganhar quantias absurdas de dinheiro em um período de tempo ridiculamente curto. Os anunciantes tentam implicar como se você pudesse ganhar US $ 350 a cada 60 segundos; se fosse verdade, então o comércio binário seria realmente um negócio surpreendente.
No entanto, faz algum sentido? Cada comerciante pode fazer toneladas de dinheiro no comércio binário? Quem está realmente pagando todo o dinheiro ou o lucro para os comerciantes?
O primeiro desafio é encontrar um corretor binário confiável; Em segundo lugar, você precisa encontrar uma estratégia de negociação binária, que você pode usar para obter lucros consistentemente. Sem uma estratégia comercial eficaz, não há como ganhar dinheiro nesse negócio.
Aprender uma estratégia de negociação rentável é possível, Você deve assistir a este vídeo de apresentação tr. im/4f450.
É provavelmente a melhor maneira de aprender a ganhar com a opção binária.
2ª geração - Prata / Ouro / Cristal.
4ª geração - Diamante / Pérola
Uma opção tem apenas dois resultados (daí o nome “opções binárias”). Isso ocorre porque o valor de um ativo só pode aumentar ou diminuir durante um determinado período de tempo. Sua tarefa será prever se o valor de um ativo aumenta ou diminui durante um determinado período de tempo.
Denunciar abuso.
Detalhes adicionais.
Se você acredita que sua propriedade intelectual foi violada e gostaria de registrar uma reclamação, consulte nossa Política de direitos autorais / IP.
Denunciar abuso.
Detalhes adicionais.
Se você acredita que sua propriedade intelectual foi violada e gostaria de registrar uma reclamação, consulte nossa Política de direitos autorais / IP.
Denunciar abuso.
Detalhes adicionais.
Se você acredita que sua propriedade intelectual foi violada e gostaria de registrar uma reclamação, consulte nossa Política de direitos autorais / IP.

No comments:

Post a Comment