Estratégias de negociação automatizadas longas e curtas com base em pivôs diários


Data de criação: 2024-01-23 14:24:22 última modificação: 2024-01-23 14:24:22
cópia: 3 Cliques: 709
1
focar em
1617
Seguidores

Estratégias de negociação automatizadas longas e curtas com base em pivôs diários

Visão geral

A estratégia baseia-se em traçar duas linhas, a mais alta e a mais baixa, da linha diurna, como base para o julgamento de espaço. Quando o preço atravessa a linha mais alta, faça mais; quando o preço atravessa a linha mais baixa, faça mais espaço.

Princípio da estratégia

A estratégia utiliza principalmente o ponto central do eixo solar para determinar a pluralidade. O chamado eixo central do eixo, é o preço mais alto e o preço mais baixo de ontem.

A principal lógica da estratégia é a seguinte:

  1. Linha máxima: traça a linha horizontal máxima de preços de ontem, sendo um sinal múltiplo se o preço de fechamento hoje quebrar essa linha
  2. Linha de preço mínimo: traça a linha horizontal de preço mínimo de ontem, se o preço de fechamento hoje quebrar essa linha, será um sinal de cabeça-vazia
  3. Entrada múltipla: abrir uma posição quando o preço de fechamento cruza a linha de preço mais alta
  4. Entrada em branco: abrir uma posição quando o preço de fechamento atravessa a linha de baixa
  5. Stop loss: Stop loss com várias cabeças perto da linha de preço mais baixa e Stop loss com cabeças vazias perto da linha de preço mais alta

Assim, é possível capturar a tendência através da ruptura entre os preços mais altos e mais baixos, permitindo a troca automática de espaço.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. A estratégia é clara, fácil de entender e de implementar
  2. Com base em transações de linha diária, com um longo período de tempo, não é facilmente perturbado pelo ruído de linhas curtas
  3. Mudança automática para o mercado de ativos, evitando o máximo de mercados fora de tendência
  4. Ponto de paragem definido para o controlo de riscos

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. O ciclo de negociação do dia é longo e não pode parar o prejuízo a tempo.
  2. Falsa invasão pode causar prejuízos desnecessários
  3. O excesso de tempo de detenção pode levar a um aumento dos prejuízos

Para responder a esses riscos, podemos fazer otimizar as seguintes coisas:

  1. Confirmação de outros indicadores de maior frequência, juntamente com a ruptura da linha solar
  2. Otimizar os parâmetros de detecção de brecha e filtrar algumas brechas falsas
  3. Parar em tempo hábil com paradas móveis ou trailers

Direção de otimização

A estratégia ainda tem espaço para ser melhorada:

  1. A estabilidade da estratégia pode ser verificada em mais variedades e dados mais longos
  2. Explorar o uso de outros indicadores de ruptura, como corredores, brackets, etc.
  3. A combinação de indicadores de volume de transação pode evitar uma enorme ruptura.
  4. Mais condições de filtragem podem ser adicionadas para reduzir a probabilidade de falsos avanços
  5. Pode-se experimentar métodos de aprendizagem de máquina para otimizar os parâmetros

Resumir

Em geral, a estratégia é baseada em um simples eixo de linha do sol, que permite a troca automática de múltiplos espaços. A lógica da estratégia é clara e fácil de entender, e a otimização pode melhorar ainda mais a estabilidade. Os investidores podem escolher os parâmetros adequados para a negociação em disco físico, de acordo com suas próprias preferências de risco.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's DEX Strategy", shorttitle = "DEX str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
showlines = input(true, title = "Show lines")
showbg = input(false, title = "Show background")
showday = input(false, title = "Show new day")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//New day trand
bar = close > open ? 1 : close < open ? -1 : 0
newday = request.security(syminfo.tickerid, 'D', time)

//Lines
uplevel = request.security(syminfo.tickerid, 'D', high)
dnlevel = request.security(syminfo.tickerid, 'D', low)
upcolor = uplevel == uplevel[1] and showlines ? lime : na
dncolor = dnlevel == dnlevel[1] and showlines? red : na
plot(uplevel, offset = 1, linewidth = 2, color = upcolor)
plot(dnlevel, offset = 1, linewidth = 2, color = dncolor)

//Background
size = strategy.position_size
col = time == newday + 86400000 and showday ? blue : showbg and size > 0 ? lime : showbg and size < 0 ? red : na
bgcolor(col)

//Orders
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
truetime = true
if uplevel > 0 and dnlevel > 0
    strategy.entry("Long", strategy.long, needlong ? lot : 0, stop = uplevel, when = truetime)
    strategy.entry("Close", strategy.short, needshort ? lot : 0, stop = dnlevel, when = truetime)