Estratégia de negociação quantitativa de inversão bidirecional

Autora:ChaoZhang, Data: 2024-02-22 13:46:51
Tags:

img

Esta estratégia emprega um mecanismo de rastreamento bidirecional, combinado com sinais de reversão de preços e indicadores de volume, para realizar a negociação quantitativa automatizada. Sua maior vantagem reside no controle de risco confiável, rastreando o stop loss para bloquear os lucros e evitar a expansão de perdas. Enquanto isso, os sinais de negociação de reversão aumentam a taxa de vitória da estratégia.

Princípios de estratégia

Esta estratégia consiste em duas sub-estratégias. A primeira sub-estratégia usa indicadores estocásticos para determinar sinais de reversão de preços. A lógica específica é:

Se o preço de fechamento subir por dois dias consecutivos, e a linha Slow K de 9 dias for inferior a 50, vá longo; Se o preço de fechamento cair por dois dias consecutivos, e a linha Fast K de 9 dias for superior a 50, vá curto.

A segunda subestratégia combina indicadores de volume de negociação para julgar a força do momento. Especificamente, o volume de negociação atual é comparado com o volume médio de negociação de 40 dias. Se o volume de negociação atual for maior que a média, ele é considerado volume agressivo para cima, que pertence ao sinal de reversão para ir curto. Se o volume de negociação atual for menor que a média, ele é considerado volume para baixo, que pertence ao sinal de reversão para ir longo.

O sinal de negociação final é a interseção dos sinais das duas sub-estratégias. Ou seja, uma posição só será aberta quando ambas as sub-estratégias emitirem sinais simultaneamente.

Vantagens da estratégia

  1. Melhoria da qualidade do sinal através da confirmação dupla utilizando indicadores duplos
  2. Certas vantagens de calendário com modelo de negociação de reversão
  3. Julgar os movimentos futuros dos preços combinados com a análise de volume
  4. Mecanismo de stop loss fiável para controlar eficazmente perdas individuais

Riscos da Estratégia

  1. Incapacidade dos sinais de inversão de filtrar completamente o ruído do mercado
  2. Volume de negociação anormal levando a um julgamento inválido do momento de volume
  3. Configuração inadequada do stop loss, causando stop loss prematuro ou stop loss de grandes dimensões
  4. Falta de um mecanismo de controlo do aproveitamento, potencialmente reduzindo a vida útil da estratégia

A estratégia pode ser ainda melhorada nos seguintes aspectos:

  1. Adicionar regras de avaliação de tendências para evitar a negociação contra tendências
  2. Otimizar a lógica de stop loss para realizar o rastreamento de stop loss e stop loss escalonado
  3. Adicionar limite máximo de retirada à estratégia de fechamento para evitar perdas enormes
  4. Combinar algoritmos de aprendizagem de máquina para construir modelos dinâmicos de controle de stop loss e posição

Em resumo, esta estratégia baseia-se principalmente no rastreamento bidirecional e na reversão de preços, além da análise do momento do volume para melhorar a qualidade do sinal por confirmação dupla. Na aplicação real, ainda é necessário mais testes e otimização, especialmente para se proteger contra os riscos de stop loss e gestão de capital, para evitar drawdowns excessivos que levem a eliminações. Mas, em geral, esta estratégia utiliza uma variedade de técnicas quantitativas de negociação com lógica clara e vale a pena uma pesquisa aprofundada.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/11/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Volume and SMA
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

    
VSAVol(Length) =>
    pos = 0.0
    xSMA_vol = sma(volume, Length)
    pos := iff(volume > xSMA_vol, -1,
    	     iff(volume < xSMA_vol, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Volume SMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_MAVol = input(40, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posVSAVol = VSAVol(Length_MAVol)
pos = iff(posReversal123 == 1 and posVSAVol == 1 , 1,
	   iff(posReversal123 == -1 and posVSAVol == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mais.