Estratégia de negociação de ciclo baseada em tendências


Data de criação: 2023-11-17 17:05:11 última modificação: 2023-11-17 17:05:11
cópia: 0 Cliques: 551
1
focar em
1617
Seguidores

Estratégia de negociação de ciclo baseada em tendências

Visão geral

A estratégia de negociação circular baseada em tendências é uma estratégia de negociação quantitativa baseada em uma média móvel simples de 200 dias para determinar a direção da tendência. A estratégia oferece dois modos “seguindo a tendência ascendente” e “seguindo a tendência descendente” que podem ser selecionados de acordo com as preferências do comerciante. A estratégia permite ao comerciante personalizar o ponto de parada e o ponto de parada, oferecendo maior flexibilidade.

Princípio da estratégia

O indicador central da estratégia é a média móvel simples de 200 dias. A estratégia é dividida em dois modelos:

  1. Seguir um padrão de tendência ascendente: fazer mais quando o preço de fechamento está acima da média móvel de 200 dias; fazer zero quando o stop loss ou o stop loss são acionados.

  2. Seguir um padrão de tendência descendente: fazer mais quando o preço de fechamento está abaixo da média móvel de 200 dias; fazer zero quando o stop loss ou o stop loss são acionados.

Aprovado sob várias condiçõeslongConditionDefinição de variável, baseada na relação entre o preço de fechamento e a média móvel de 200 dias.closeConditionDefinição de variáveis baseada na relação entre stop loss, stop loss e média móvel.

Em particular, se forem cumpridas várias condições, a aprovaçãostrategy.entryA partir de agora, os investidores podem abrir mais posições; se as condições de liquidação estiverem satisfeitas, a transação será aprovada.strategy.exitA posição é clara.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. Uma lógica de transação simples e clara, fácil de entender e de implementar.

  2. Fornece duas opções de modalidades, que podem ser escolhidas de acordo com diferentes cenários de mercado.

  3. Características de risco-receita que podem ser ajustadas à estratégia por meio de stop loss e stop loss personalizados.

  4. O uso de indicadores técnicos conhecidos como a média móvel de 200 dias para determinar a direção da tendência.

  5. A geração automática de sinais de negociação, sem intervenção humana, reduz o risco de operação.

Risco estratégico

A estratégia também apresenta os seguintes riscos:

  1. A dependência excessiva de um único indicador técnico é propensa a produzir sinais errados. Pode-se considerar a inclusão de outros indicadores para verificação, como MACD, KDJ, etc.

  2. Stop loss e stop-loss são pequenos demais, susceptíveis de serem interrompidos por oscilações do mercado; grandes demais, podem perder o ponto de saída ideal. Os parâmetros devem ser apropriadamente testados e otimizados.

  3. O uso de um sinal de julgamento por preço de fechamento, existindo um desvio de otimização / desvio de otimização. Pode ser considerado para ser julgado por uma entidade de linha K ou confirmar a próxima linha K após a geração do sinal.

  4. Os custos de transação não são considerados.

Otimização de Estratégia

A estratégia pode ser otimizada em várias direções:

  1. Adicione outros sinais de verificação de indicadores técnicos para evitar sinais de erro. Por exemplo, o indicador MACD.

  2. Optimizar os parâmetros de parada de perda para encontrar a melhor combinação de parâmetros. Pode ser comparado por meio da ressonância de parâmetros de múltiplos grupos.

  3. Adicionar filtros de tendência, apenas quando a tendência é clara. Por exemplo, introduzir o indicador ADX.

  4. Mudar a forma de entrar no campo, considerar a relação de entidades da linha K ou aderir ao mecanismo de confirmação.

  5. Considerar o impacto do volume de transações. Verificar a confiabilidade do sinal quando ocorrem grandes quantidades.

  6. Teste diferentes parâmetros de média móvel para encontrar o melhor parâmetro.

Resumir

Em suma, a estratégia é clara e fácil de entender, com um certo valor prático. Mas, dependendo apenas de um único indicador, há uma certa área cega, é necessário adicionar mais critérios de julgamento para verificação e também é necessário otimizar os parâmetros de teste para obter melhores resultados no mercado real. Além disso, também é necessário prestar atenção ao impacto dos custos de transação, como slippage e taxas de processamento no mercado real.

Código-fonte da estratégia
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 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/
// © I11L

//@version=5
strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false)

// Input for selecting the mode
mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"])

// Input for customizing stop loss and take profit levels
stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01)
takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01)

// Calculate the 200-day Simple Moving Average (SMA)
sma = ta.sma(close, 200)

// Plot the SMA on the chart
plot(sma)

// Define the conditions for entering a long position based on the selected mode
longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma

// Define the conditions for closing a position based on the selected mode
closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05)

// Execute a long position if the longCondition is met
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

// Close the position if the closeCondition is met
if (closeCondition)
    strategy.exit("Exit", limit = close)