Tendência da posição do ciclo na sequência da estratégia

Autora:ChaoZhang, Data: 2023-11-17 17:05:11
Tags:

img

Resumo

A estratégia de seguimento de tendência de posição do ciclo é uma estratégia quantitativa de negociação que determina a direção da tendência com base na média móvel simples (SMA) de 200 dias.

Como funciona a estratégia

O indicador central desta estratégia é a SMA de 200 dias.

  1. Seguir o modo de tendência ascendente: fazer transações longas quando o fechamento estiver acima da SMA de 200 dias; fechar a posição quando o stop loss ou o take profit for acionado.

  2. Seguir o modo de tendência de queda: fazer transações longas quando o fechamento estiver abaixo da SMA de 200 dias; fechar posição quando for acionado o stop loss ou o take profit.

A condição longa é definida emlongConditionA condição de fechamento é definida emcloseConditionvariável baseada em stop loss, take profit e SMA.

Especificamente,strategy.entryÉ utilizada para abrir posições longas quando a condição long é cumprida.strategy.exitÉ utilizado para fechar posições quando a condição de fechamento é acionada.

Vantagens da Estratégia

As vantagens desta estratégia incluem:

  1. Lógica simples e clara que é fácil de entender.

  2. Fornece dois modos opcionais para se adequarem aos diferentes ambientes de mercado.

  3. O stop loss e o take profit personalizáveis permitem ajustar o perfil risco-recompensa.

  4. Utiliza o conhecido indicador SMA de 200 dias para determinar a direcção da tendência.

  5. Gera sinais de negociação automatizados sem intervenção manual.

Riscos da Estratégia

Os riscos desta estratégia incluem:

  1. Adicionar outros indicadores como MACD, KDJ para confirmação pode ajudar.

  2. Os parâmetros precisam de testes e otimização adequados.

  3. Considerar o uso de corpo de vela ou adicionar confirmação de sinal.

  4. Não contabiliza os custos de negociação.

Maneiras de melhorar a estratégia

Algumas formas de melhorar a estratégia:

  1. Adicionar outros indicadores para confirmar sinais e evitar falsos sinais, por exemplo, MACD.

  2. Otimizar parâmetros de stop loss e take profit para encontrar combinação ideal através de backtesting.

  3. Adicionar um filtro de tendências para negociar apenas tendências bem definidas, por exemplo, ADX.

  4. Melhorar o método de entrada considerando o corpo da vela ou adicionando confirmação.

  5. Considere o volume de negociação para validar a confiabilidade do sinal.

  6. Teste diferentes períodos de SMA para encontrar o parâmetro ideal.

Conclusão

Em conclusão, a estratégia tem uma lógica clara e compreensível com valor prático. Mas a dependência de um único indicador tem limitações. Mais condições devem ser adicionadas para confirmação. Os parâmetros também precisam de testes e otimização para um melhor desempenho ao vivo. Além disso, os custos de negociação como deslizamento e comissões exigem consideração na negociação ao vivo.


/*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)


Mais.