Python para negociação algorítmica - página 18

 

Este indicador de escalpelamento criptográfico realmente funciona!



Este indicador de escalpelamento criptográfico realmente funciona!

Hoje, vamos explorar uma estratégia de escultura usando o Preço Médio Ponderado por Volume (VWAP) em backtesting no mercado Bitcoin. Vamos escrever um algoritmo Python para implementar essa estratégia e analisar os resultados.

Primeiro, vamos definir o contexto. O VWAP é uma ferramenta poderosa para negociação algorítmica, pois fornece suporte dinâmico e valores de resistência. Ele permanece independente do período de tempo usado, tornando-o vantajoso para negociação algorítmica, pois reduz o número de parâmetros a serem otimizados.

Nesta estratégia, usaremos um período de tempo de 15 minutos para os preços de negociação Bitcoin-dólar americano. Vamos considerar dois indicadores: a média móvel de 100 dias (DMA) e o VWAP. Ao analisar os movimentos de preços relativos a esses indicadores, podemos determinar a tendência do mercado. Quando um certo número de velas é negociado abaixo ou acima de 100 DMA, isso indica uma tendência de baixa ou de alta, respectivamente. Da mesma forma, se as velas estiverem sendo negociadas abaixo ou acima da curva VWAP, isso confirma a direção da tendência.

Em uma tendência de alta, procuraremos apenas posições de compra, enquanto em uma tendência de baixa, nos concentraremos em posições de venda. O ponto de entrada para nossas posições será acionado quando o preço estiver dentro de uma certa distância fixa da curva VWAP.

Para implementar essa estratégia em Python, usaremos o pacote pandas_ta para calcular o VWAP e o 100 DMA. Em seguida, criaremos duas novas colunas em nosso quadro de dados: o sinal EMA e o sinal VWAP. O sinal EMA contará o número de back candles que caem abaixo ou acima da curva EMA para confirmar uma tendência de baixa ou alta. Da mesma forma, o sinal VWAP contará o número de back candles que estão abaixo ou acima da curva VWAP.

Vamos mesclar esses sinais em uma coluna de sinal total em nosso quadro de dados, que servirá como gatilho para nossas posições de compra e venda. Para posições de compra, verificaremos se o sinal total é igual a 2 e se não há negócios abertos. Também verificaremos se o preço está próximo o suficiente da curva VWAP. Da mesma forma, para posições de venda, consideraremos um sinal total de 1 e verificaremos a distância do preço da curva VWAP.

Podemos visualizar os sinais em um gráfico, plotando as velas junto com os sinais de compra (roxo) e venda (verde).

Para testar a estratégia, calcularemos o Average True Range (ATR) como uma medida de volatilidade. A distância de stop loss será definida como 0,8 vezes o ATR atual e a distância de take profit será o dobro da distância de stop loss. Com esses parâmetros, podemos acionar posições de compra e venda, levando em consideração os valores de stop loss e take profit. Começaremos com um valor em dinheiro de $ 100.000 e uma alavancagem de 5.

Executando o backtest, podemos observar os resultados do nosso sistema de negociação. O algoritmo mostra uma alta porcentagem de retorno, com um patrimônio líquido final de cerca de US$ 10 milhões após três anos. Em comparação, a estratégia de comprar e manter alcançou apenas um retorno de 248%. No entanto, é importante observar que o desempenho do algoritmo flutua e pode apresentar dificuldades durante determinados períodos. Isso destaca a necessidade de adaptação dinâmica às mudanças nas condições do mercado.

Para avaliar a estabilidade do patrimônio, podemos traçar a curva do patrimônio ao longo dos anos. O algoritmo teve um desempenho excepcionalmente bom por dois anos, mas enfrentou desafios no último ano. Isso ressalta a natureza passiva do algoritmo, que depende de parâmetros fixos e pode exigir ajustes para se adaptar às mudanças do mercado.

A estratégia baseada em VWAP apresentada aqui é um bom investimento de atenção e tempo. Tem demonstrado retornos significativos durante um longo período, embora com algumas limitações. Outras otimizações e a inclusão de filtros e indicadores adicionais podem ser exploradas para melhorar.

Does this Crypto Scalping Indicator Actually Work!
Does this Crypto Scalping Indicator Actually Work!
  • 2022.06.02
  • www.youtube.com
This video describes a trading strategy using VWAP for Crypto such as the Bitcoin. The strategy algorithm is tested in Python and the code details are explai...
 

Como testar uma estratégia de mercado de ações usando Python no S&P 500


Como testar uma estratégia de mercado de ações usando Python no S&P 500

Olá a todos, hoje vamos realizar um teste detalhado de uma estratégia de escultura simples usando dados históricos do S&P 500. Explicaremos os fundamentos da estratégia e escreveremos o código em Python para fins de backtesting. Temos dados de três anos, que devem nos fornecer informações suficientes para avaliar o desempenho e os resultados da estratégia.

Como de costume, o código desta estratégia está disponível para download através do link na descrição abaixo. Usaremos um período de tempo de 15 minutos para este teste, embora você possa experimentar diferentes períodos de tempo, se desejar. Períodos de tempo mais baixos podem ser mais difíceis de controlar devido ao aumento de ruído e flutuações.

A estratégia gira em torno da identificação de padrões envolventes, que podem ser sinais de baixa ou alta. Adicionaremos duas condições para refinar os sinais. A primeira condição é a altura mínima de engolfamento, que é a diferença entre o preço de fechamento da vela anterior e o preço de abertura da vela de engolfamento. Vamos definir um requisito de distância mínima para o preço de abertura da vela envolvente para validar o sinal. Em outras palavras, o preço de abertura deve ser maior que a altura mínima de engolfamento.

A segunda condição é o comprimento máximo da cauda da vela, que se refere ao comprimento da cauda ou pavio da vela. Vamos definir um limite para o comprimento máximo da cauda e garantir que seja menor que o parâmetro especificado. Essa condição ajuda a filtrar certos padrões.

Para aumentar o número de sinais ao longo do tempo de negociação, introduziremos uma variação no padrão de engolfamento normal. Em vez de exigir estritamente que uma vela engula a anterior, permitiremos que duas ou mais velas consecutivas alcancem a engolfação, desde que estejam na direção oposta e atendam às condições de engolfamento. O número de velas permitidas para atingir o engolfamento será uma variável no código, permitindo flexibilidade e experimentação.

Neste ponto, podemos começar a escrever o programa e testar os resultados por meio de backtesting. Usaremos um arquivo Jupyter Notebook para esta demonstração. Primeiro, carregamos os dados históricos em um DataFrame chamado df_spy usando a função read_csv. Especificamos o período de 15 minutos e o intervalo de datas de 2019 a 2022. O índice do DataFrame é definido para a coluna de horário GMT.

Em seguida, definimos uma função chamada is_engulfing que recebe dois parâmetros: o DataFrame e o índice da vela atual. Esta função testa se a vela atinge um padrão envolvente. Definimos parâmetros para o número máximo de velas permitidas para atingir o padrão de engolfamento, a diferença de engolfamento e o comprimento máximo da cauda da vela. A função verifica várias condições para padrões envolventes de baixa e alta e retorna um sinal de 1 para sinais de baixa e 2 para sinais de alta.

Criamos uma cópia do DataFrame, filtrando as velas sem movimento (onde a máxima é igual à mínima). Esta etapa remove fins de semana e feriados. Armazenamos os dados filtrados em um DataFrame chamado df. Também definimos uma nova lista chamada sinal para armazenar os sinais para cada linha/vela.

Para cada linha no DataFrame df, calculamos o sinal usando a função is_engulfing com o índice correspondente e o DataFrame como parâmetros. Armazenamos os sinais na lista de sinais. Por fim, adicionamos a lista de sinais como uma nova coluna no DataFrame.

Para visualizar os sinais, usamos uma função de plotagem que traça o gráfico de velas com pontos abaixo ou acima das velas para representar sinais de alta ou baixa. Podemos selecionar um intervalo específico de velas para plotar e observar os sinais.

Para facilitar a visualização, redefinimos o índice do DataFrame para um índice inteiro e removemos o índice de data/hora GMT. Em seguida, selecionamos um intervalo de velas para plotar e observar os sinais.

Aqui está um resumo das etapas envolvidas no backtesting de uma estratégia de negociação usando gráficos de velas:

  1. Preparação de dados : obtenha dados históricos de preços para o instrumento financeiro desejado (por exemplo, ações, criptomoedas) que incluam os preços de abertura, alta, baixa e fechamento para cada período de tempo (por exemplo, minuto, hora, dia). Certifique-se de que os dados estejam em um formato que possa ser facilmente analisado.

  2. Definição de estratégia : defina a estratégia de negociação com base nos padrões de velas. Por exemplo, você pode procurar padrões de alta, como um padrão envolvente de alta, ou padrões de baixa, como uma estrela cadente. Determine as regras para entrar e sair de negócios com base nesses padrões.

  3. Geração de sinal : analise os dados históricos de preços e gere sinais com base na estratégia definida. Identifique a ocorrência de padrões de velas específicos que atendem aos critérios de entrada ou saída.

  4. Simulação de portfólio : simule a estratégia de negociação rastreando um portfólio hipotético. Comece com uma quantia fixa de capital e simule negociações com base nos sinais gerados. Acompanhe o valor e o desempenho do portfólio durante todo o período de backtesting.

  5. Avaliação de desempenho : avalie o desempenho da estratégia de negociação usando várias métricas, como lucratividade, retornos ajustados ao risco, rebaixamentos e outras medidas relevantes. Compare o desempenho da estratégia com um benchmark ou estratégias alternativas para avaliar sua eficácia.

  6. Visualização : Visualize os resultados do backtest usando gráficos de velas. Plote os dados de preços históricos e indique os sinais gerados (pontos de entrada e saída) no gráfico. Essa visualização pode ajudar a entender o desempenho da estratégia e identificar áreas de melhoria.

Seguindo estas etapas, você pode testar uma estratégia de negociação usando gráficos de velas. É importante observar que o backtesting fornece desempenho histórico e não garante resultados futuros. Além disso, é crucial considerar outros fatores, como custos de transação, derrapagem e condições de mercado ao desenvolver e implementar uma estratégia de negociação.

How to Backtest A Stock Market Strategy Using Python On The S&P 500
How to Backtest A Stock Market Strategy Using Python On The S&P 500
  • 2022.05.26
  • www.youtube.com
This is a high profit trading strategy coded and tested in python. The strategy is easy to use and suitable for beginners, it was tested on SP500 stock marke...
 

Estratégia de ação de preço para negociação algorítmica em Python



Estratégia de ação de preço para negociação algorítmica em Python

Olá pessoal! Bem-vindo ao terceiro vídeo sobre a barra de retrocesso de inventário de Huffman. Essa estratégia ganhou várias competições de negociação, então pensei em tentar criar uma versão automatizada que pudesse fornecer retornos positivos em alguns meses ou até mesmo em um período mais longo. Para manter este vídeo conciso, recomendo assistir aos dois vídeos anteriores, onde explicamos a estratégia em detalhes. Você pode encontrar o link para esses vídeos na descrição.

Em resumo, a estratégia envolve identificar barras de retração e manter uma inclinação específica para definição de tendência. Em uma tendência de alta, procuramos uma forma específica para as barras e, em uma tendência de baixa, procuramos a forma invertida da barra de retração. No entanto, neste vídeo, adicionaremos mais uma condição. Exigimos que a barra de retração seja maior (em uma tendência de alta) ou menor (em uma tendência de baixa) do que as barras anteriores e futuras. Essencialmente, estamos procurando uma barra de retração que atue como um ponto de pivô, indicando uma forte reação dos vendedores ou compradores tentando reverter a tendência.

Implementar essa condição adicional em uma estratégia de negociação algorítmica é mais desafiador do que explicar o conceito. No exemplo mostrado, temos uma tendência de alta e identificamos uma barra de retração de Huffman que atua como um ponto de pivô alto. Além disso, observamos uma quebra acima da máxima desta barra de Huffman, indicando uma provável continuação da tendência de alta. Vamos incorporar todas essas condições em nosso algoritmo Python e avaliar se elas melhoram os resultados obtidos nos vídeos anteriores.

Para fornecer uma breve visão geral, carregamos os dados históricos para o par de moedas EUR/USD em um período de uma hora de 2003 a 2022. Calculamos a média móvel exponencial (EMA) e o intervalo real médio (ATR), que pode ser útil para definir valores de stop-loss e take-profit. Calculamos a inclinação da EMA, pois é uma das condições para a estratégia de Huffman. Além disso, introduzimos dois novos parâmetros: o total de velas de retorno do sinal (esquerda e direita), que determinam o número de velas a serem comparadas com a máxima ou mínima da vela de Huffman.

O algoritmo define as condições para identificar uma barra Huffman em tendência de alta ou tendência de baixa. Neste vídeo, adicionamos uma condição extra para verificar se a barra Huffman também atua como um ponto de pivô. Comparamos a mínima (em tendência de baixa) ou máxima (em tendência de alta) da barra Huffman com as velas anteriores e futuras dentro do intervalo especificado. Se a condição for atendida, atribuímos um valor de 1 para uma tendência de baixa ou 2 para uma tendência de alta e armazenamos os sinais em uma nova coluna chamada "sinal tot" no quadro de dados.

Para garantir que o algoritmo esteja funcionando corretamente, plotamos os sinais em um gráfico, visualizando os pontos roxos que representam as barras de Huffman. Podemos confirmar que o algoritmo está identificando corretamente as barras com base em suas características.

Em seguida, incorporamos o sinal EMA como um sinal de confirmação para a direção da tendência. Também implementamos a função de sinal de quebra Huffman, que detecta quebras acima ou abaixo das barras Huffman e atribui sinais de acordo.

Para testar a estratégia, definimos os valores de stop-loss e take-profit, que podem variar dependendo das condições e indicadores específicos usados. Nesse caso, usamos o ATR para definir o stop-loss e uma taxa take-profit/stop-loss de 1,5. Conduzimos o backtest com um depósito inicial de $ 10.000, uma margem de 1:50 e uma negociação por vez.

Inicialmente, os resultados não são satisfatórios, com retorno de -70% e grande rebaixamento. No entanto, isso não implica necessariamente que a estratégia ou indicador seja inerentemente ruim. Ele destaca a importância de considerar outros fatores, como gerenciamento de dinheiro e a seleção de valores de stop-loss e take-profit, que podem influenciar significativamente o desempenho da estratégia.

Para melhorar o desempenho da estratégia, podemos otimizar os parâmetros e ajustar as regras de gestão do dinheiro. Neste exemplo, otimizaremos o parâmetro total de velas de retorno do sinal, que determina o número de velas a serem comparadas com a máxima ou mínima da barra Huffman. Vamos testar diferentes valores variando de 2 a 10 e avaliar os resultados.

Após otimizar o parâmetro, obtemos melhor desempenho com um retorno de 187% e um rebaixamento reduzido. Isso demonstra a importância da otimização de parâmetros em estratégias de negociação algorítmica.

Para aprimorar ainda mais a estratégia, podemos considerar a incorporação de filtros ou condições adicionais. Por exemplo, podemos implementar um filtro de tendência usando um período de tempo maior, como o gráfico diário ou semanal. Isso pode ajudar a garantir que as negociações sejam realizadas apenas na direção da tendência geral.

Também podemos explorar diferentes estratégias de saída, como trailing stops ou níveis dinâmicos de lucro com base na ação do preço ou volatilidade. Esses componentes adicionais podem ser testados e integrados ao algoritmo para melhorar potencialmente seu desempenho.

É importante observar que o desempenho passado não garante resultados futuros. A estratégia deve ser exaustivamente testada e validada usando dados históricos e métodos robustos de backtesting. Também é crucial considerar os custos de transação, derrapagem e outros aspectos práticos da negociação ao implementar a estratégia em um ambiente de negociação em tempo real.

Em conclusão, a estratégia de barra de retração de estoque de Huffman pode ser uma ferramenta útil na identificação de possíveis pontos de pivô e reversões de tendência no mercado. Ao incorporar condições adicionais e otimizar parâmetros, podemos melhorar o desempenho da estratégia. No entanto, é essencial realizar testes completos e considerar outros fatores, como gerenciamento de dinheiro e estratégias de saída, para desenvolver um sistema de negociação abrangente e eficaz.

Isso encerra nosso vídeo sobre a implementação da estratégia de barra de retração de inventário de Huffman em Python. Espero que você tenha achado esta série informativa e útil em seus empreendimentos comerciais. Se você tiver alguma dúvida ou comentário, sinta-se à vontade para deixá-los abaixo. Obrigado por assistir e boas negociações!

Price Action Strategy For Algorithmic Trading In Python
Price Action Strategy For Algorithmic Trading In Python
  • 2022.05.12
  • www.youtube.com
This is a continuation of the previous videos, on price action trading strategy, about the Hoffman Inventory Retracement Bar indicator, and the previously in...
 

Como codificar a estratégia de negociação da barra de retração em Python



Como codificar a estratégia de negociação da barra de retração em Python

Olá a todos, sejam bem-vindos a esta continuação do método de retração da barra de inventário de Hoffman. No vídeo anterior, apresentamos esse método e explicamos o código para detectar formas específicas de velas e tendências de preços. Se estiver interessado no código, você pode baixar o arquivo Jupyter Notebook no link fornecido na descrição abaixo.

Neste vídeo, usaremos as barras de Hoffman que identificamos anteriormente em uma estratégia de negociação, testaremos o sistema e avaliaremos os resultados. A estratégia se concentra na identificação de formas de velas específicas em uma tendência de alta ou tendência de baixa e na verificação de rompimentos acima ou abaixo da mínima dessas velas.

Vamos considerar um exemplo em que temos uma tendência de alta. Detectamos uma barra de retração de Hoffman onde a cauda superior é de pelo menos 45% do volume total da vela. Isso indica que os vendedores estão tentando contrariar o movimento de tendência de alta. No entanto, na vela seguinte, observamos que o preço de fechamento é superior à máxima da vela de Hoffman anterior. Isso sugere que os compradores ainda estão mais fortes no mercado e provavelmente continuarão elevando o preço.

Para implementar essa estratégia em Python, vamos percorrer o preço de fechamento de cada vela e verificar entre as velas vizinhas anteriores se alguma delas forma uma barra de retração de Hoffman. Definiremos um parâmetro chamado "back_candles", que determina o número de velas a serem consideradas ao pesquisar a barra de Hoffman. Este parâmetro pode ser ajustado para experimentar diferentes valores.

Se ocorrer um rompimento acima da máxima ou abaixo da mínima da vela de Hoffman, colocaremos uma posição de compra ou venda, respectivamente, dependendo da tendência atual do preço. Também podemos definir valores de stop-loss e take-profit, que podem ser baseados no intervalo médio real (ATR) ou nos valores mais altos/mais baixos das velas anteriores, dependendo da tendência do preço.

Agora vamos escrever a estratégia em Python e fazer um backtest usando alguns meses de dados históricos para avaliar os resultados. O arquivo Jupyter Notebook contém o código, que começa carregando 59 dias de dados usando o módulo yfinance em um período de 15 minutos. Calculamos a média móvel exponencial (EMA), ATR e inclinação da média móvel.

Em seguida, identificamos as barras de Hoffman com base na inclinação da média móvel e no formato das velas. Visualizamos os sinais em um gráfico e, em seguida, definimos uma nova função chamada "hofmann_break_signal" que recebe dois parâmetros: o índice da vela atual e o número de velas anteriores a serem consideradas ao procurar o padrão de vela de Hoffman.

Dentro da função, iteramos cada vela e verificamos se as condições para uma barra de Hoffman e rompimento foram atendidas. Nesse caso, retornamos um sinal de compra para uma tendência de alta ou um sinal de venda para uma tendência de baixa.

Aplicamos essa função a cada linha do quadro de dados e armazenamos os resultados em uma série. Finalmente, visualizamos os sinais e verificamos se as velas de Hoffman foram detectadas corretamente.

Depois de verificar a detecção da vela, procedemos ao backtest da estratégia. Definimos o stop-loss com base no preço mínimo entre as velas anteriores e obtemos lucro usando uma proporção relativa ao stop-loss. Neste exemplo, usamos uma abordagem baseada em ATR com uma taxa de stop loss de 1,5.

Testamos a estratégia ao longo dos três meses de dados e calculamos o retorno, a porcentagem de negociações vencedoras e a curva de patrimônio. Nesse teste inicial, o retorno é positivo em 51%, mas a curva de patrimônio não apresenta um aumento estável.

Também exploramos um método diferente de definir os níveis de stop-loss e take-profit, considerando a máxima mais alta ou a mínima mais baixa das velas anteriores. No entanto, neste caso, o retorno é negativo em -4,8%, indicando que esta estratégia de gestão de dinheiro não teve um bom desempenho.

Observe que esta estratégia não foi otimizada neste vídeo. Foi desenvolvido rapidamente para demonstrar a implementação do Python. Se você achar essa estratégia interessante, sinta-se à vontade para copiar o código e personalizá-lo ainda mais adicionando indicadores técnicos adicionais.

Obrigado por assistir a este vídeo. Fique ligado no próximo, negocie com segurança e até a próxima!

How to Code Retracement Bar Trading Strategy In Python
How to Code Retracement Bar Trading Strategy In Python
  • 2022.05.05
  • www.youtube.com
This video is a continuation of the previous one on the Hoffman Inventory Retracement Bar Automated In Python. This algorithmic trading strategy enabled Hoff...
 

Código de barra de retração em Python para negociação algorítmica


Código de barra de retração em Python para negociação algorítmica

Olá, neste vídeo vamos apresentar a Huffman's Inventory Retracement Bar e demonstrar como automatizar sua detecção em Python. Se estiver interessado no código, você pode baixar o arquivo Jupyter Notebook no link fornecido na descrição.

A primeira regra dessa estratégia é detectar a tendência do preço verificando se a inclinação da média móvel (MA) de 20 dias forma um ângulo de 45 graus com a linha horizontal. Observe que a MA de 20 dias é usada como exemplo e você pode experimentar diferentes períodos para a média móvel. Se você estiver seguindo uma tendência de baixa, a inclinação negativa também deve formar um ângulo de pelo menos 45 graus com a linha horizontal. No entanto, é importante mencionar que confiar apenas nesse ângulo de 45 graus como sinal é matematicamente sem sentido, pois é impossível definir com precisão esse ângulo em um gráfico de negociação. A negociação algorítmica fornece uma solução para esse problema, que exploraremos mais adiante no vídeo.

A segunda regra desta estratégia envolve a identificação de velas onde a cauda é de pelo menos 45% do comprimento total da vela. Por exemplo, em uma tendência de alta, procuramos velas com cauda superior maior que 45% do movimento total da vela. Da mesma forma, em uma tendência de baixa, procuramos velas com cauda inferior maior que 45% do volume da vela. Esse padrão de vela significa momentos em que os vendedores ou compradores tentam resistir ou reverter a tendência. Ao entender a dinâmica do mercado por meio de padrões de velas, podemos definir nossa estratégia personalizada.

No exemplo, identificamos essas velas específicas e esperamos que o mercado ultrapasse os valores altos. Quando uma vela fecha acima da máxima de uma vela de Huffman, isso indica que os vendedores não resistiram à tendência de compra e os compradores ainda estão em vantagem. Isso sugere que a tendência de alta provavelmente continuará e podemos entrar em uma posição comprada com os compradores. Analisando os resultados dessas suposições, observamos que, na maioria dos casos, o preço segue nossas expectativas.

No entanto, para determinar o resultado de longo prazo desse indicador, precisamos realizar um backtest usando nosso código Python. Neste vídeo, nos concentramos em explicar como detectar as velas de Huffman e gerar um sinal quando elas ocorrem. Em um vídeo separado, utilizaremos este indicador em uma estratégia de negociação completa e realizaremos um backtest adequado.

Para começar, baixamos os dados usando o módulo yfinance. O exemplo baixa dados de Euro/USD para um período de 59 dias com um período de 15 minutos. Se precisar de mais dados, você pode baixá-los em lotes e concatenar os quadros de dados. Depois de baixar os dados, calculamos a média móvel exponencial (EMA) com um comprimento de 20 e calculamos a inclinação da média móvel. Os valores de inclinação são armazenados em uma nova coluna chamada slope_ema no quadro de dados.

Em seguida, calculamos o sinal iterando sobre cada linha. Se a inclinação da vela atual for negativa e ultrapassar o limite da inclinação, indicando uma tendência de baixa, verificamos se a cauda inferior da vela dividida pelo intervalo alto-baixo é maior que o limite percentual. Isso significa uma vela de Huffman em uma tendência de baixa e o sinal total é definido como 1. Da mesma forma, se a inclinação for positiva e exceder o limite da inclinação, indicando uma tendência de alta, e a cauda superior da vela dividida pela faixa alta-baixa é maior que o limite percentual, temos uma vela de Huffman em tendência de alta e o sinal total é definido como 2.

Uma vez que calculamos o sinal e armazenamos os resultados em uma lista chamada sinal, nós o adicionamos como uma nova coluna chamada tot_signal ao quadro de dados. Podemos então visualizar os sinais em um gráfico usando Plotly.

Aqui está uma explicação passo a passo da estratégia Huffman's Inventory Retracement Bar sem o código:

  1. Faça o download dos dados de preços: Obtenha os dados históricos de preços para o instrumento financeiro desejado, como uma ação ou par de moedas. Você pode usar bibliotecas como yfinance em Python para recuperar os dados.

  2. Calcule a Média Móvel Exponencial (EMA): Calcule a MME dos preços de fechamento usando um período de tempo específico. O EMA é um indicador comumente usado que ajuda a identificar tendências e possíveis reversões nos dados de preços.

  3. Calcule a inclinação: calcule a inclinação da linha EMA em cada ponto de dados. A inclinação indica a direção e a força da tendência. Você pode usar técnicas matemáticas como gradiente ou regressão para calcular a inclinação.

  4. Definir parâmetros: Defina os parâmetros para detecção de sinal. Na estratégia Inventory Retracement Bar de Huffman, você normalmente define um limite de inclinação e um limite de porcentagem de cauda. O limite de inclinação determina o valor mínimo de inclinação para um sinal potencial, enquanto o limite de porcentagem da cauda define a porcentagem mínima do alcance da vela que a cauda superior ou inferior deve ser.

  5. Identifique os sinais: repita os dados e compare as inclinações atuais e anteriores. Se ambas as inclinações estiverem abaixo do limite de inclinação negativa, verifique se a cauda inferior da vela atual é maior que o limite de porcentagem da cauda. Se for, marque-o como um sinal de alta. Da mesma forma, se ambas as inclinações estiverem acima do limite de inclinação positiva, verifique se a cauda superior da vela atual é maior que o limite de porcentagem da cauda. Se for, marque-o como um sinal de baixa.

  6. Visualize sinais: crie um gráfico ou gráfico dos dados de preços. Trace os sinais no gráfico para visualizar as velas de Huffman. Você pode usar bibliotecas de plotagem como Plotly ou Matplotlib para criar o gráfico e marcar os pontos de sinal.

Lembre-se de que a estratégia não se limita a essas etapas e você pode personalizá-la e refiná-la com base em seus requisitos e preferências de negociação. Além disso, a implementação de técnicas de gerenciamento de risco, como a definição de ordens de stop loss ou dimensionamento de posição, é essencial para uma negociação bem-sucedida.

Retracement Bar Coded In Python For Algorithmic Trading
Retracement Bar Coded In Python For Algorithmic Trading
  • 2022.04.28
  • www.youtube.com
This video details the IRB or the inventory retracement bar as described and used by Hoffman and the algorithm that detects this bar in an automated method i...
 

Como automatizar padrões de negociação em Python | Padrão de Cabeça e Ombros



Como automatizar padrões de negociação em Python | Padrão de Cabeça e Ombros

Para automatizar a detecção de padrões de cabeça e ombros em Python, podemos seguir as etapas do algoritmo descritas no texto. Aqui está uma explicação detalhada de cada etapa:

  1. Detectar Pontos Pivô:

    • Esta etapa envolve a identificação de valores altos e baixos nos dados de preço que são maiores ou menores do que as velas vizinhas.
    • Dois tipos de pontos de pivô são detectados: pontos de pivô fortes e pontos de pivô fracos.
    • Pontos de pivô fortes são comparados a uma ampla gama de velas vizinhas, enquanto pontos de pivô fracos são comparados a um número menor de vizinhos.
  2. Visualize Pontos Pivot:

    • Os pontos de pivô fortes detectados e os pontos de pivô fracos são plotados em um gráfico de velas.
    • Pontos de pivô fortes são representados por pontos roxos acima das velas, enquanto pontos de pivô fracos são representados por pontos vermelhos abaixo das velas.
  3. Detectar padrão de cabeça e ombros:

    • Para detectar o padrão de cabeça e ombros, iteramos os IDs das velas no intervalo especificado.
    • Para cada ID de vela, verificamos se é um ponto de pivô (nem um pivô forte nem um pivô fraco) e prosseguimos.
    • Se um ponto de pivô forte for encontrado, registramos as coordenadas dos máximos e mínimos dentro de uma janela de velas em ambos os lados do pivô.
    • Acompanhamos as contagens de mínimos e máximos antes e depois da vela do pivô central.
    • Se as contagens de mínimos e máximos forem menores que um em ambos os lados, a formação do padrão não é possível e passamos para a próxima vela.
    • Se as contagens de mínimos e máximos satisfizerem a condição, ajustamos uma linha de regressão linear aos mínimos e calculamos sua inclinação e interceptação.
    • Encontramos o índice da cabeça dentro dos máximos usando a função argmax.
    • Por fim, verificamos se as condições para o padrão de cabeça e ombros são atendidas:
      • A diferença entre o máximo do índice da cabeça e o máximo antes da cabeça deve ser maior que um limite.
      • A diferença entre o máximo do índice da cabeça e o máximo após a cabeça também deve ser maior que o limiar.
      • A inclinação absoluta dos mínimos deve ser menor ou igual a um limite.
    • Se todas as condições forem satisfeitas, detectamos um padrão de cabeça e ombros.
Mencionar técnicas de gerenciamento de risco, como definir ordens de stop-loss ou dimensionar posições, é essencial para uma negociação bem-sucedida.
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
How to Automate Trading Patterns In Python | Head And Shoulders Pattern
  • 2022.04.21
  • www.youtube.com
This video details the head and shoulders candles or candlesticks pattern, and an algorithm is automated in Python language to detect this specific form of c...
 

Detecção de padrão de preço de triângulo em Python | Indicador de negociação algorítmica



Detecção de padrão de preço de triângulo em Python | Indicador de negociação algorítmica

Neste vídeo, exploraremos a detecção automatizada de padrões de triângulo usando algoritmos específicos. Apresentaremos um método simples para detectar diferentes formas de triângulos de movimento de preços e escrever um código Python para testá-lo em dados forex. Ao final, plotaremos os padrões descobertos para visualizar os resultados. Se você estiver interessado na parte de codificação, pode baixar o arquivo Jupyter Notebook contendo o código Python no link fornecido na descrição do vídeo.

Os padrões triangulares são de particular interesse para os traders quando são usados em estratégias de negociação. Por exemplo, alguns traders negociam a quebra de triângulos. Nos exemplos mostrados, o preço segue uma tendência futura na direção do rompimento. Em um exemplo, o preço saiu das bordas do triângulo, seguindo uma tendência de baixa. Em outro exemplo, o preço saiu da borda do triângulo, seguindo uma tendência de alta. Em ambos os casos, houve uma continuação da tendência de fuga.

As etapas do método são as seguintes:

  1. Calcular pontos de pivô: os pontos de pivô são valores de preço maiores que seus vizinhos. Para mínimos de pivô, o mínimo de uma vela deve ser menor do que os mínimos de um número especificado de velas antes e depois dele. Para máximos de pivô, o máximo de uma vela deve ser maior que os máximos do número especificado de velas antes e depois dele.

  2. Ajuste máximos e mínimos em inclinações lineares: Para máximos, compare os valores altos e procure uma vela central com uma alta maior que o número especificado de velas antes e depois dela. Para mínimos, compare os valores mínimos e procure uma vela central com uma mínima inferior ao número especificado de velas antes e depois dela.

  3. Detectar formas triangulares: dependendo da forma triangular desejada, identifique padrões com base nas inclinações de máximos e mínimos. Por exemplo, um triângulo convergente pode ser detectado quando a inclinação máxima é negativa e a inclinação mínima é positiva. Um triângulo descendente pode ser detectado quando a inclinação máxima é negativa e a inclinação mínima é próxima de zero ou de uma linha horizontal.

Agora, vamos escrever o código em Python para implementar esse método e ver como ele funciona. O arquivo Jupyter Notebook contém o código para importar os dados, limpá-los, computar pontos de pivô, visualizar as velas de pivô e detectar padrões de triângulo. Usamos bibliotecas como Pandas, NumPy e Plotly para lidar com as tarefas de manipulação e visualização de dados.

Depois de importar as bibliotecas necessárias e os dados, definimos uma função chamada "pivot_id" para identificar pontos de pivô com base no número especificado de vizinhos. Esta função adiciona uma nova coluna chamada "pivot" ao quadro de dados, indicando se uma vela é um pivô baixo (1) ou um pivô alto (2).

Em seguida, definimos uma função chamada "points_position" para plotar as velas e adicionar pontos acima e abaixo delas com base em seu status de pivô. Esta função usa a coluna "point_position" para determinar as coordenadas y dos pontos.

Usando a biblioteca Plotly, plotamos as velas e os pontos de pivô para visualizar os resultados. Isso nos permite verificar se os pontos pivôs estão identificados corretamente.

Em seguida, implementamos o código para detectar padrões de triângulo. Selecionamos uma vela específica e examinamos um número especificado de velas antes dela para verificar se um padrão de triângulo está presente nessa área. Nós iteramos sobre as velas e armazenamos as coordenadas dos máximos e mínimos em matrizes NumPy separadas. Em seguida, ajustamos esses pontos em inclinações lineares usando regressão linear e calculamos as inclinações para máximos e mínimos.

Traçamos as velas, pontos de pivô e as inclinações de máximos e mínimos para visualizar o padrão de triângulo. Ao verificar as condições definidas para a forma do triângulo, como os fatores de correlação (r_min e r_max), podemos determinar se um padrão de triângulo está presente. Se as condições forem atendidas, marcamos o padrão de triângulo no gráfico.

Por fim, iteramos todas as velas no conjunto de dados e repetimos o processo de detecção de padrões de triângulo. Cada vez que um padrão é encontrado, armazenamos as coordenadas do triângulo em listas separadas para visualização posterior.

No final do código, usamos Plotly para plotar as velas, pontos de pivô e os padrões de triângulo detectados. Isso fornece uma representação visual dos triângulos identificados nos dados de preços.

Ao executar o código e examinar o gráfico, podemos ver os padrões de triângulo detectados e analisar suas formas. Esta informação pode ser útil para os comerciantes que desejam incorporar padrões de triângulo em suas estratégias de negociação.

Lembre-se de que o código fornecido no arquivo Jupyter Notebook é apenas uma possível implementação de detecção de padrões de triângulo. Existem várias maneiras de abordar esse problema e você pode explorar diferentes algoritmos ou modificar o código existente para atender aos seus requisitos específicos.

Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
Triangle Price Pattern Detection In Python | Algorithmic Trading Indicator
  • 2022.04.14
  • www.youtube.com
This video details the algorithm for triangle price pattern detection in python, this technical indicator can be programmed in python to detect all shapes of...
 

Python AlgoTrading Backtest: usando RSI e ADX com média móvel para sinais de compra/venda



Python AlgoTrading Backtest: usando RSI e ADX com média móvel para sinais de compra/venda

Olá pessoal! Neste vídeo, faremos um teste detalhado de uma estratégia de escultura baseada no Índice Direcional Médio (ADX) e no Indicador de Força Relativa (RSI), juntamente com outros indicadores de confirmação. Essa estratégia é anunciada como uma abordagem lucrativa para escalpelamento. Estaremos nos concentrando nos pontos roxos localizados logo abaixo das setas vermelhas no gráfico de preços, que são gerados automaticamente pelo algoritmo que descreveremos.

Neste exemplo específico, os pontos roxos representam sinais de venda, e vale a pena notar que esses sinais são seguidos por uma queda no preço. Isso sugere que essa estratégia é promissora, pois esses sinais resultaram em negociações vencedoras. Para se aprofundar no aspecto da codificação, você pode baixar o código Python, um arquivo do Jupyter Notebook, no link fornecido na descrição.

Nosso objetivo é desenvolver uma estratégia de escultura automatizada em Python que nos permita configurar negociações, deixar o código em execução e potencialmente lucrar enquanto dormimos. No entanto, é importante reconhecer que alcançar o sucesso pode não ser tão simples quanto parece inicialmente.

Iniciaremos os testes no período de cinco minutos, conforme recomendado para esta estratégia específica. Para determinar a tendência do preço, utilizaremos a Média Móvel Exponencial 50 (EMA). Se o preço estiver negociando acima dessa curva, isso indica uma tendência de alta e focaremos apenas na compra de posições. Por outro lado, se o preço estiver sendo negociado abaixo da MME 50, isso indica uma tendência de baixa e consideraremos exclusivamente a venda de posições.

Além disso, vamos incorporar o RSI com um período de 3 e níveis de gatilho definidos em 20 e 80. Quando o RSI cai abaixo de 20, sugere que o mercado está sobrevendido, acionando um sinal de compra. Por outro lado, quando o RSI excede 80, indica que o mercado está sobrecomprado, resultando em um sinal de venda.

Nossa estratégia também incorpora o Average Directional Index (ADX) com um período de cinco. Se o ADX ultrapassar 30, indica uma tendência forte, servindo como um índice de confirmação tanto para tendências de alta quanto para tendências de baixa. Em ambos os casos, estamos procurando níveis acima de 30.

Quando todas essas condições são atendidas, a primeira parte do nosso sinal é gerada. Para validar ainda mais esse sinal, empregaremos uma abordagem de padrão de vela, procurando especificamente por uma vela envolvente alinhada com a tendência. Se a tendência for ascendente, buscaremos uma vela envolvente de alta; se a tendência for descendente, buscaremos uma vela envolvente de baixa.

Felizmente, todos esses indicadores podem ser automatizados em Python e testados em dados históricos. O exemplo que usaremos foi selecionado aleatoriamente do conjunto de dados. As observações iniciais indicam sinais positivos, pois os sinais de venda tendem a ser seguidos por uma queda no preço, enquanto os sinais de compra são frequentemente sucedidos por um aumento no preço.

Para testar essa estratégia, empregaremos o Python para conduzir o backtesting e permitir que os resultados determinem sua viabilidade. Importaremos os dados históricos para o par de moedas EUR/USD de 2019 a 2022, especificamente usando castiçais de cinco minutos. Também limparemos os dados removendo períodos sem atividade comercial, como fins de semana e feriados.

Usando o pacote Pandas TA (Análise Técnica), adicionaremos quatro colunas adicionais ao nosso quadro de dados: 50 EMA, RSI com um período de 3, ADX com um período de 5 e Average True Range (ATR). Este último será utilizado para calcular a distância de stop-loss. O sinal de tendência da EMA indicará se as velas estão sendo negociadas abaixo ou acima da curva 50 EMA, determinando se estamos em tendência de baixa ou de alta, respectivamente.

Se estivermos em tendência de baixa, verificaremos se o RSI está abaixo de 20, indicando uma condição de sobrevenda. Se as condições de tendência de baixa e de sobrevenda forem atendidas, geraremos um sinal de venda.

Da mesma forma, se estivermos em tendência de alta, verificaremos se o RSI está acima de 80, indicando uma condição de sobrecompra. Se as condições de tendência de alta e de sobrecompra forem atendidas, geraremos um sinal de compra.

Para validar ainda mais esses sinais, procuraremos padrões de velas envolventes alinhados com a tendência. Para um sinal de venda, procuraremos uma vela envolvente de baixa, onde o corpo da vela atual engole completamente o corpo da vela anterior em uma direção descendente. Para um sinal de compra, procuraremos uma vela engolfante de alta, onde o corpo da vela atual engole completamente o corpo da vela anterior em uma direção ascendente.

Depois que os sinais forem gerados, calcularemos a distância de stop-loss usando o Average True Range (ATR). O ATR fornece uma estimativa da faixa de preço médio em um período especificado, o que pode nos ajudar a determinar um nível razoável de stop loss.

Na fase de backtesting, vamos iterar os dados históricos e aplicar essas regras para gerar e avaliar os sinais de negociação. Para cada sinal, simularemos uma negociação, assumindo que entramos na posição no preço de abertura da próxima vela após a geração do sinal. Também definiremos um nível fixo de take-profit com base em uma determinada relação recompensa-risco.

Durante a simulação, acompanharemos o lucro ou prejuízo de cada negociação e calcularemos as principais métricas de desempenho, como lucro total, perda total, taxa de ganho e retorno médio por negociação. Isso nos ajudará a avaliar a eficácia da estratégia e determinar sua lucratividade.

É importante observar que os resultados de backtesting em dados históricos não garantem o desempenho futuro. As condições de mercado podem mudar e as estratégias que funcionaram bem no passado podem não funcionar tão bem no futuro. Portanto, é crucial avaliar e adaptar continuamente as estratégias de negociação com base nas condições de mercado em tempo real.

Em conclusão, delineamos uma estratégia de escultura com base no Índice Direcional Médio (ADX), Indicador de Força Relativa (RSI) e padrões de velas envolventes. Discutimos o processo de automatização dessa estratégia usando Python e realizando backtesting em dados históricos. Os resultados do backtesting fornecerão informações sobre o desempenho da estratégia e ajudarão a avaliar sua viabilidade como uma abordagem lucrativa para escalpelamento.

Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
Python AlgoTrading Backtest: Using RSI and ADX with Moving Average for Buy/Sell Signals
  • 2022.04.07
  • www.youtube.com
This is a backtested strategy using the ADX and the RSI, the algotrading code is built in python and the backtest is conducted using backtesting.py package. ...
 

Como usar o indicador de volume para análise de estratégia de negociação em Python


Como usar o indicador de volume para análise de estratégia de negociação em Python

Hoje, estamos embarcando em uma jornada emocionante enquanto testamos uma estratégia de negociação de volume. Essa estratégia específica opera no período diário e é conhecida por sua segurança, pois envolve risco mínimo em teoria. Eu o chamei apropriadamente de "Estratégia de Negociação de Volume" devido à sua dependência de volume e outros indicadores técnicos.

Nosso objetivo é desenvolver um código que possa testar automaticamente essa estratégia usando dados históricos de até 18 anos. Ao fazer isso, podemos obter uma compreensão abrangente do desempenho da estratégia. Para os interessados no aspecto de codificação, você pode encontrar o arquivo Jupyter Notebook Python na descrição do vídeo. Existe um link disponível para você baixar o arquivo completo que usaremos para este teste.

Para começar, utilizaremos a média móvel exponencial de 200 dias (EMA) como nosso primeiro indicador. Se o preço estiver sendo negociado abaixo dessa curva, isso significa uma tendência de baixa, enquanto negociar acima de 200 EMA indica uma tendência de alta. Nossa primeira regra é simples: quando identificamos uma tendência de baixa, vamos considerar apenas as posições de venda e, no caso de uma tendência de alta, vamos focar apenas nas posições de compra.

Agora, vamos nos aprofundar nas especificidades de nossa estratégia. Estaremos procurando por quatro velas consecutivas que se movem contra a tendência predominante, ou seja, refazendo o preço mais próximo da média móvel. É importante observar que o número de velas pode ser ajustado de acordo com a preferência do usuário. Em nosso Jupyter Notebook, oferecemos flexibilidade para modificar esse parâmetro a qualquer momento. Por enquanto, ficaremos com um mínimo de quatro velas.

Em seguida, examinamos a próxima vela, que deve se alinhar com a direção da tendência. Por exemplo, se estivermos em uma tendência de baixa, procuramos uma vela de baixa. No final do dia de negociação, uma vez fechada a vela, verificamos o seu volume. Se o volume exceder o da vela anterior, serve como um sinal de venda em uma tendência de baixa. Por outro lado, em uma tendência de alta, procuramos pelo menos quatro candles de baixa consecutivos seguidos por um candle de alta com volume maior que o candle anterior. Isso significa uma posição de compra.

Agora vem a parte complicada: determinar os níveis de stop loss e take profit. Neste vídeo, exploramos duas abordagens diferentes e avaliamos seus resultados. O primeiro método envolve o uso de uma distância de stop-loss relacionada ao Average True Range (ATR), como duas ou três vezes o ATR de nossas posições de venda ou compra. O segundo método considera a maior alta entre as velas anteriores como nosso stop loss para uma tendência de baixa e posição de venda. O número de velas a considerar para definir o stop loss é uma variável em nosso programa Python, permitindo-nos experimentar e testar diferentes cenários. Normalmente, começo com quatro velas, semelhante ao número usado para verificar nossos sinais de negociação. Para uma tendência de alta e posição de compra, procuramos a mínima mais baixa entre as velas anteriores.

Agora, vamos examinar o código e ver como tudo funciona junto. Em nosso arquivo Jupyter Notebook, começamos importando as bibliotecas necessárias, incluindo Pandas, que usaremos para ler o arquivo de dados CSV contendo as taxas de câmbio EUR/USD diárias de 2003 a 2022. Além disso, carregamos dados para outros ativos como as ações da Amazon, eBay e Volkswagen, pois pretendemos testar essa estratégia também no mercado de ações. Como estamos trabalhando com dados diários, o conjunto de dados inicial consiste em 6.858 linhas, que serão ainda mais reduzidas durante o processo de limpeza de dados. Também garantimos que os títulos das colunas estejam alinhados com nossos requisitos, renomeando-os como "Tempo", "Abrir", "Alto", "Baixo", "Fechar" e "Volume" para consistência em diferentes arquivos de dados.

Depois de plotar os sinais no gráfico, passamos a definir nossos níveis de stop loss e take profit. Neste exemplo, dois métodos são testados. O primeiro método envolve o uso do Average True Range (ATR) para determinar a distância do stop loss. O stop loss é definido em um determinado múltiplo do ATR a partir do ponto de entrada. O segundo método considera a máxima mais alta para posições de venda ou a mínima mais baixa para posições de compra entre um número especificado de velas anteriores para determinar o nível de stop loss.

Uma vez definidos os níveis de stop loss e take profit, calculamos o lucro e a perda (P&L) para cada negociação. Verificamos se o sinal total é um sinal de compra ou venda e calculamos o P&L de acordo. Se for um sinal de compra, calculamos o P&L como a diferença entre o preço de fechamento da próxima vela e o preço de entrada. Se for um sinal de venda, calculamos o P&L como a diferença entre o preço de entrada e o preço de fechamento da próxima vela.

O P&L cumulativo é então calculado somando-se os P&Ls comerciais individuais. Também calculamos o número total de negociações e a taxa de ganhos (porcentagem de negociações vencedoras) com base nos P&Ls positivos.

Por fim, imprimimos os resultados, incluindo o P&L total, o número de negociações e a taxa de ganhos.

O código fornecido no Jupyter Notebook permite mais personalização e teste da estratégia. Você pode modificar parâmetros como o número de back candles a serem considerados para determinação de tendência, o número de candles anteriores para geração de sinal de preço, o múltiplo de ATR para cálculo de stop loss e o número de candles anteriores a serem considerados para determinação do nível de stop loss.

O código implementa uma estratégia de negociação de volume com base em indicadores técnicos, como a Média Móvel Exponencial de 200 dias (EMA), volume e movimentos de preço. Ele testa a estratégia durante um período específico de dados históricos e calcula a lucratividade e as métricas de desempenho.

How To Use The Volume Indicator For Trading Strategy Analysis In Python
How To Use The Volume Indicator For Trading Strategy Analysis In Python
  • 2022.03.24
  • www.youtube.com
Welcome to my video on how to use the volume indicator for trading strategy analysis in Python. In this video, I will be sharing a daily timeframe volume tra...
 

Estratégia de Scalping RSI Automatizada Testada em Python



Estratégia de Scalping RSI Automatizada Testada em Python

Hoje, vamos testar uma estratégia de escalpelamento baseada no RSI (Índice de Força Relativa). A estratégia incorpora dois indicadores: a Média Móvel Exponencial (EMA) e o RSI. Faremos backtesting usando código Python, que você pode baixar no link fornecido na descrição do vídeo.

Para o backtest, usaremos três versões diferentes da estratégia com base em diferentes prazos: uma para velas de um minuto, outra para velas de 15 minutos e uma terceira para velas de uma hora. O foco deste vídeo será o período de 15 minutos, mas abordaremos todas as três versões.

A estratégia segue regras específicas. Primeiro, analisamos o preço atual em relação ao 200 EMA. Se o preço estiver sendo negociado acima da MME 200, consideramos uma tendência de alta. Por outro lado, se o preço estiver sendo negociado abaixo da MME 200, consideramos uma tendência de baixa. Em uma tendência de alta, procuramos apenas posições de compra, enquanto em uma tendência de baixa, procuramos apenas posições de venda.

Em seguida, examinamos os valores do RSI de duas velas consecutivas. Inicialmente, usamos um RSI de duas velas para o período de um minuto. No entanto, como o backtesting ao longo de vários anos com velas de um minuto geraria uma grande quantidade de dados, começaremos com o período de 15 minutos. Nesse caso, podemos ajustar o comprimento do RSI para três ou quatro velas, dependendo do time frame. Para o período de um minuto, usaremos um RSI de duas velas e testaremos níveis abaixo de 10 e acima de 90.

Em uma tendência de alta, esperamos que o RSI caia abaixo de 10 antes de executar uma posição de compra. Para posições de venda, esperamos que o RSI suba acima de 90. Esses níveis de RSI atuam como pontos de entrada para nossas negociações. O vídeo fornece exemplos visuais de como a estratégia identifica as posições de entrada com base nos critérios de preço e RSI.

O próximo passo é determinar os valores de stop-loss e take-profit para as negociações. Vários métodos podem ser usados, como stop-loss de distância fixa, distância de stop relacionada ao ATR ou valores de trailing stop. Da mesma forma, o take-profit pode ser definido em uma distância fixa ou relacionado à distância de stop-loss com uma certa taxa de take-profit/stop-loss.

Para avaliar a eficácia da estratégia, escrevemos código Python para conduzir o backtesting de um a três anos de dados. Além disso, introduzimos uma etapa para verificar a robustez da estratégia, testando-a em novos dados que foram mantidos separados para evitar viés.

O vídeo passa a analisar o código em um Jupyter Notebook. Ele começa carregando os dados, limpando-os removendo entradas de volume zero (indicando fins de semana ou feriados) e calculando os valores de 200 EMA e RSI. O Average True Range (ATR) também é calculado para a determinação da distância potencial de perda de parada.

Uma vez calculados os sinais necessários, o vídeo demonstra a visualização desses sinais em um gráfico. As velas de preço, a curva 200 EMA e as posições de entrada (compra e venda) são plotadas para analisar visualmente o comportamento dos indicadores.

Depois de analisar os sinais, o vídeo explica a importância de testar a estratégia por um longo período para avaliar sua lucratividade. Inicialmente, a estratégia foi testada em períodos mais curtos, mas os resultados variaram. Portanto, o backtesting por um período mais longo é crucial para avaliar a eficácia geral da estratégia.

O vídeo enfatiza a necessidade de backtesting e verificação do desempenho da estratégia durante um período significativo. Ao examinar os resultados finais do backtest, podemos determinar se a estratégia é lucrativa e robusta.

Automated RSI Scalping Strategy Tested In Python
Automated RSI Scalping Strategy Tested In Python
  • 2022.03.17
  • www.youtube.com
An Automated RSI Scalping Strategy is presented and backtested using python algorithmic trading over 3 years of data showing positive returns. The Test deta...
Razão: