Estratégia de rompimento de preço de negociação quantitativa


Data de criação: 2023-12-22 12:42:15 última modificação: 2023-12-22 12:42:15
cópia: 0 Cliques: 599
1
focar em
1621
Seguidores

Estratégia de rompimento de preço de negociação quantitativa

Visão geral

A estratégia é uma estratégia de negociação de quantificação de curto prazo baseada em médias móveis simples (SMA), médias móveis indexadas (EMA), canais de Keltner, indicadores MACD e indicadores aleatórios (Stochastic). Combina os sinais de câmbio de canais de Keltner, indicadores MACD e indicadores estocásticos para permitir a entrada e saída automática de negociações, dependendo de como o preço ultrapassa os SMA e EMA.

Princípio da estratégia

A estratégia utiliza o SMA de 25 ciclos e o EMA de 200 ciclos para construir um indicador de média móvel dupla. Um sinal de compra é gerado quando o preço atravessa a média móvel dupla de baixo para cima; um sinal de venda é gerado quando o preço atravessa a média móvel dupla de cima para baixo.

Ao mesmo tempo, a estratégia utiliza 10 ciclos para construir o canal Keltner, com os trajectos ascendentes e descendentes do canal de ruptura dos preços também como sinais auxiliares. O indicador MACD gera um sinal de compra e venda através da linha rápida, da linha lenta e do gráfico do pilar MACD. O indicador estocástico também constitui um sinal de mercado aberto através da linha% K e da linha% D.

Especificamente, quando o preço de fechamento é superior ao SMA e EMA e está dentro do canal de Keltner, o gráfico da coluna MACD é negativo, o Stochastic% K é inferior a 50, gerando um sinal de compra, fazendo mais; quando o preço de fechamento é inferior ao SMA e EMA e está dentro do canal de Keltner, o gráfico da coluna MACD é positivo, o Stochastic% K é superior a 50, gerando um sinal de venda, fazendo vazio.

Vantagens estratégicas

  1. A utilização de médias móveis duplas em combinação com indicadores de canal permite filtrar de forma eficaz as falsas rupturas no mercado.
  2. A integração de vários indicadores técnicos de sinalização permite aumentar a confiabilidade do sinal.
  3. A regra do sinal de múltiplos espaços é clara e a execução programada é eficiente.
  4. Estratégias de quantificação para operações frequentes em linhas curtas.

Riscos e otimização estratégica

  1. Como estratégia de negociação em curto prazo, existe o risco de uma certa frequência de negociação.
  2. Não há um mecanismo de stop loss e há um risco maior de perdas.
  3. Pode ser considerado a inclusão de indicadores de volatilidade para otimizar as condições de abertura e parada de posições.
  4. É possível testar as vantagens e desvantagens de diferentes parâmetros de ciclo, procurando a melhor combinação de parâmetros.

Resumir

A estratégia integra quatro indicadores técnicos comuns: média móvel, indicador de canal, indicador MACD e indicador estocástico. A estratégia típica de negociação quantitativa de linha curta é a de julgar a hipocrisia por meio da ruptura ou não do preço. Em comparação com um único indicador, o uso integrado de julgamentos de vários indicadores aumenta a precisão do sinal e vale a pena testar e otimizar ainda mais.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5
strategy(title="Scalping Trading System Crypto and Stocks", overlay=true)
src = input(low, title="Source")

//sma and ema
len = input.int(25, minval=1, title="Length SMA" , group="Moving Averages")
len2 = input.int(200, minval=1, title="Length EMA", group="Moving Averages")

out = ta.sma(src, len)
out2 = ta.ema(src, len2)


//keltner
lengthk = input.int(10, minval=1, title="Length Keltner Channel",group="Keltner")
mult = input(2.0, "Multiplier",group="Keltner")
BandsStyle = input.string("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style",group="Keltner")
atrlength = input(14, "ATR Length",group="Keltner")

ma = ta.sma(src, lengthk)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, lengthk)
upper = ma + rangema * mult
lower = ma - rangema * mult

//stoch
periodK = input.int(10, title="%K Length", minval=1,group="Stochastic")
smoothK = input.int(1, title="%K Smoothing", minval=1,group="Stochastic")
periodD = input.int(1, title="%D Smoothing", minval=1,group="Stochastic")
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)

//macd 1
fast_length = input(title="Fast Length MACD", defval=4,group="MACD Fast")
slow_length = input(title="Slow Length MACD", defval=34,group="MACD Fast")
signal_length = input.int(title="Signal Smoothing MACD",  minval = 1, maxval = 50, defval = 5,group="MACD Fast")
sma_source = input.string(title="Oscillator MA Type MACD",  defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
sma_signal = input.string(title="Signal Line MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")

fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal




long= close > out and close < upper and close > lower and hist < 0 and k < 50 and close > out2 

short= close < out and close < upper and close > lower and hist > 0 and k > 50 and close < out2 

strategy.entry("long",strategy.long,when= long)

strategy.entry("short",strategy.short,when=short)