
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.
O indicador central da estratégia é a média móvel simples de 200 dias. A estratégia é dividida em dois modelos:
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.
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.
A estratégia tem as seguintes vantagens:
Uma lógica de transação simples e clara, fácil de entender e de implementar.
Fornece duas opções de modalidades, que podem ser escolhidas de acordo com diferentes cenários de mercado.
Características de risco-receita que podem ser ajustadas à estratégia por meio de stop loss e stop loss personalizados.
O uso de indicadores técnicos conhecidos como a média móvel de 200 dias para determinar a direção da tendência.
A geração automática de sinais de negociação, sem intervenção humana, reduz o risco de operação.
A estratégia também apresenta os seguintes riscos:
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.
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.
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.
Os custos de transação não são considerados.
A estratégia pode ser otimizada em várias direções:
Adicione outros sinais de verificação de indicadores técnicos para evitar sinais de erro. Por exemplo, o indicador MACD.
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.
Adicionar filtros de tendência, apenas quando a tendência é clara. Por exemplo, introduzir o indicador ADX.
Mudar a forma de entrar no campo, considerar a relação de entidades da linha K ou aderir ao mecanismo de confirmação.
Considerar o impacto do volume de transações. Verificar a confiabilidade do sinal quando ocorrem grandes quantidades.
Teste diferentes parâmetros de média móvel para encontrar o melhor parâmetro.
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.
/*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)