Esta estratégia é uma estratégia típica de tendência seguinte. Ela usa vários conjuntos de médias móveis com períodos diferentes para determinar a tendência do mercado.
A estratégia utiliza 4 grupos de médias móveis: linhas de 9 dias, 21 dias, 50 dias e 200 dias.
Quando a média móvel de curto prazo cruza a média móvel de longo prazo para cima, determina-se que o mercado entra em uma tendência de alta.
A estratégia utiliza o MA de 9 dias como referência para observar o alinhamento dos outros MA, julgando assim a direcção geral da tendência.
Condições de entrada prolongada: fechar > MA de 9 dias e MA de 9 dias > MA de 21 dias e MA de 21 dias > MA de 50 dias e MA de 50 dias > MA de 200 dias.
Condições de entrada de curta duração: MA próxima < 9 dias e MA de 9 dias < 21 dias e MA de 21 dias < 50 dias e MA de 50 dias < 200 dias.
Aqui, a relação entre o preço de fechamento e o MA de 9 dias determina a tendência de curto prazo, enquanto que entre o MA de 9 e 21 dias julga a tendência de curto prazo, a tendência de médio prazo de 21 dias e 50 dias, a tendência de longo prazo de 50 dias e 200 dias.
Condições de saída: fechamento do preço abaixo da MA de 21 dias, nivelamento de todas as posições longas; cruzamento acima da MA de 21 dias, nivelamento de todas as posições curtas.
A adoção de vários MAs para determinar a tendência pode filtrar os ruídos do mercado de movimentos não convencionais e capturar tendências de médio a longo prazo.
As condições de entrada mais rigorosas exigem que os juízos sejam válidos em diferentes prazos, evitando-se ficarem presos por correcções a curto prazo.
O stop loss oportuno ajuda a controlar eficazmente os riscos.
Em mercados de longo prazo, podem ocorrer sinais falsos excessivos e aumentar os riscos de negociação.
Durante tendências violentas, cruzes de MA acontecem com frequência. Outros fatores são necessários para determinar a tendência real, por exemplo, combinando indicadores como RSI e MACD para confirmação, no caso de movimentos fortes serem perdidos.
Optimização de parâmetros. Teste diferentes combinações de parâmetros para descobrir o ideal. Como ajustar os períodos de MA, adicionar ou modificar critérios de stop loss, etc.
Melhorar o filtro de qualidade, por exemplo, verificar se o volume aumenta na entrada para evitar um momento insuficiente ou examinar a volatilidade para evitar oscilações.
Introduzir a confirmação de indicadores mais técnicos para evitar sinais errados em meio a movimentos ferozes do mercado.
No geral, esta é uma estratégia típica e prática de tendência. Adota vários MA para determinar tendências, tem regras de entrada rígidas para bloquear tendências de médio a longo prazo. Junto com o stop loss oportuno, ajuda a controlar riscos. Melhorias adicionais na estabilidade e lucratividade podem ser alcançadas por meio de maneiras como otimização de parâmetros e adição de indicadores de confirmação.
/*backtest start: 2023-01-29 00:00:00 end: 2024-02-04 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/ // © shayak1 //@version=5 strategy('Super SR', overlay=true) r = input.int(14,"rsi-length",1,100) rsi = ta.rsi(close,r) len1 = 9 len2 = 21 len3 = 50 len4 = 200 ema1 = ta.ema(close, len1) ema2 = ta.ema(close, len2) ema3 = ta.ema(close, len3) ema4 = ta.ema(close, len4) plot(ema1,color= color.green) plot(ema2,color= color.yellow) plot(ema3,color= color.orange) plot(ema4,color= color.red) // *** entries Long1 = close > ema1 Long2 = ema1 > ema2 Long3 = ema2 > ema3 Long4 = ema3 > ema4 buy_condition = Long1 and Long2 and Long3 and Long4 and strategy.position_size == 0 if (buy_condition and strategy.position_size <= 1) strategy.entry("B", strategy.long) Short1 = close < ema1 Short2 = ema1< ema2 Short3 = ema2< ema3 Short4 = ema3< ema4 sell_condition = Short1 and Short2 and Short3 and Short4 and strategy.position_size == 0 //if (sell_condition) // strategy.entry("S", strategy.short) // trailing SL //Long_sl = min(strategy.position_avg_price * 0.95, strategy.pos //EXIT CONDITIONS exit_long = ta.crossunder(close, ema2) exit_short = ta.crossover(close, ema2) if(exit_long) strategy.close("B", "LE", qty_percent=100) if(exit_short) strategy.close("S", "SE", qty_percent=100) //============================================================================== //INSERT SECTION //This section is where users will be required to insert the indicators they //would like to use for their NNFX Strategy. //============================================================================== //INSERT - CONFIRMATION INDICATOR 1 //============================================================================== //============================================================================== //INSERT - CONFIRMATION INDICATOR 2 //============================================================================== //============================================================================== //INSERT - VOLUME INDICATOR //============================================================================== //============================================================================== //INSERT - BASELINE INDICATOR //============================================================================== //============================================================================== //INSERT - EXIT INDICATOR //============================================================================== //============================================================================== //INSERT - CONTINUATION TRADES INDICATOR //============================================================================== //============================================================================== //COMPLETED SECTION //This section has been optimised to work with the above indicators the user //has inserted above. The user does not require to change any code below and //is completed and optimised for the full NNFX strategy. Users may wish to //customise this section of code if they wish to alter the NNFX strategy. //============================================================================== //COMPLETE - BACKTEST DATE RANGE //============================================================================== // start_day = input.int(1,"start day",1,31) // start_month = input.int(1,"start month",1,12) // start_year = input.int(1,"start year",2010,2023) //============================================================================== //COMPLETE - CURRENCY CONVERSION //============================================================================== //============================================================================== //COMPLETE - ATR MONEY MANAGEMENT //============================================================================== //============================================================================== //COMPLETE - USER INPUT CONDITIONS - C1 //============================================================================== //============================================================================== //COMPLETE - USER INPUT CONDITIONS - C2 //============================================================================== //============================================================================== //COMPLETE - USER INPUT CONDITIONS - Vol //============================================================================== //============================================================================== //COMPLETE - USER INPUT CONDITIONS - Bl //============================================================================== //============================================================================== //COMPLETE - USER INPUT CONDITIONS - Exit //============================================================================== //============================================================================== //COMPLETE - CONTINUATION TRADES //============================================================================== //============================================================================== //COMPLETE - ONE CANDLE RULE //============================================================================== //============================================================================== //COMPLETE - BRIDGE TOO FAR //============================================================================== //============================================================================== //COMPLETE - BASELINE AND ATR RULE //============================================================================== //============================================================================== //COMPLETE - ENTRY CONDITIONS //============================================================================== //============================================================================== //COMPLETE - ENTRY ORDERS //============================================================================== //============================================================================== //COMPLETE - TAKE PROFIT AND STOP LOSS CONDITIONS //============================================================================== //============================================================================== //COMPLETE - EXIT ORDERS //============================================================================== //============================================================================== //COMPLETE - CLOSE ORDERS //============================================================================== //==============================================================================