A estratégia Fisher Turnaround EMA Multi-Take Profit e Multi-Stop combina o indicador EMA e um sinal de Fisher Turn personalizado para implementar negociações de rastreamento de tendências. Ele gera sinais de compra quando o EMA de curto período cruza acima do EMA de longo período e o sinal de Fisher Turn é maior que 0. A estratégia define dois níveis de take profit e um stop loss dinâmico para bloquear lucros e controlar riscos. O primeiro take profit é 2xATR, o segundo 3xATR e o stop loss é 1xATR. Após o primeiro take profit ser ativado, o stop loss passará para o preço de entrada. Esta estratégia é adequada para a troca da GDAX para encontrar oportunidades potenciais de negociação de tendências.
A estratégia baseia-se principalmente em dois indicadores técnicos:
Os sinais de compra são gerados quando a EMA de curto período cruza acima da EMA de longo período. Além disso, a linha de sinal Fisher Turn também deve ser maior que 0, indicando a tendência de alta atual.
As regras de take profit e stop loss são as seguintes:
A estratégia pode ser otimizada ajustando parâmetros como períodos EMA, períodos de sinal Fisher Turn e períodos ATR.
A combinação de indicadores de acompanhamento de tendências e de indicadores de gestão de riscos proporciona as seguintes vantagens:
Esta estratégia apresenta também alguns riscos:
Estes riscos podem ser reduzidos através da otimização dos parâmetros, da combinação de outros indicadores, da intervenção manual, etc.
A estratégia pode ser otimizada nos seguintes aspectos:
Através do teste de diferentes configurações de parâmetros e combinações de indicadores, o desempenho da estratégia pode ser continuamente melhorado.
A Fisher Turnaround EMA Multi-Take Profit e Multi-Stop Strategy integra os pontos fortes do rastreamento de tendências e gestão de riscos. Com grande potencial para verificação e otimização a longo prazo, é uma estratégia promissora.
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-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/ // © Eliebf13 //@version=4 strategy("GDAX EMA & Blackflag FTS Strategy with Multiple Take Profits and Dynamic Stop Loss", overlay=true) // Input parameters for Blackflag FTS fts_length = input(14, title="Blackflag FTS Length") atr_length = input(14, title="ATR Length") // GDAX EMA calculation short = ema(close, 12) long = ema(close, 26) // Calculate Blackflag FTS signal line manually up = 0.0 down = 0.0 for i = 0 to fts_length - 1 up := up + (high[i] - low[i]) down := down + (high[i] - low[i]) fts_value = down == 0 ? 100 : 100 - (100 / (1 + (up / down))) // Buy condition: GDAX EMA crossover and Blackflag FTS signal above zero buy_condition = crossover(short, long) and fts_value > 0 // ATR calculation atr_value = atr(atr_length) // Calculate Stop Loss and Take Profit levels stop_loss_level = close - atr_value take_profit_level1 = close + 2 * atr_value take_profit_level2 = close + 3 * atr_value // Sell condition: GDAX EMA crossunder or Blackflag FTS signal below zero sell_condition = crossunder(short, long) or fts_value < 0 // Strategy orders with Multiple Take Profits and Dynamic Stop Loss strategy.entry("Buy", strategy.long, when = buy_condition) // Calculate position size for 50% closure at each take profit level position_size = strategy.position_size target_position_size1 = position_size * 0.5 target_position_size2 = position_size * 1 strategy.exit("Take Profit 1", from_entry="Buy", loss=close, profit=take_profit_level1, qty=target_position_size1) strategy.exit("Take Profit 2/Move Stop Loss", from_entry="Buy", loss=close, profit=take_profit_level2, qty=target_position_size2) // Plot GDAX EMA lines plot(short, color=#6f92ce, linewidth=2, title="Ema 12") plot(long, color=#e08937, linewidth=2, title="Ema 26") // Plot Blackflag FTS signal plot(fts_value, color=color.blue, title="Blackflag FTS Signal") // Plot buy and sell signals on the chart plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal") plotshape(series=sell_condition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")