A estratégia de negociação de tartaruga de Richard é uma estratégia de negociação baseada nas técnicas de negociação de tartaruga de Richard Dennis.
A lógica central da estratégia de negociação de tartaruga de Richard
Após a entrada de posições, a estratégia usa o Average True Range (ATR) para calcular o preço de stop loss. Ele também rastreia os preços altos e baixos de 10 dias para stop loss de deslizamento. Quando a stop loss longa ou a stop loss de deslizamento é acionada, ele fechará a posição longa. Quando a stop loss curta ou a stop loss de deslizamento é acionada, ele fechará a posição curta.
A estratégia comercial de tartarugas de Richard
Há também alguns riscos com a estratégia de negociação de tartarugas de Richard:
Para mitigar esses riscos, podemos otimizar as condições de entrada com mais indicadores para prever tendências; ajustar algoritmos de stop loss para reduzir a frequência de stop loss.
A estratégia de comércio de tartarugas de Richard
A estratégia de negociação de tartaruga de Richard
/*backtest start: 2023-02-05 00:00:00 end: 2024-02-05 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/ // © melodyera0822 //@version=4 strategy("Richard Strategy", overlay=true) // User input variable_for_stoploss = input(4,title="stop loss var") lenght = input(20,title="lenght") // high_low _20_day_highest = highest(nz(close[1]), lenght) _20_day_lowest = lowest(nz(close[1]), lenght) _10_day_low = lowest(nz(close[1]), lenght/2) _10_day_high = highest(nz(close[1]), lenght/2) //indicators atr20 = atr(20) ema_atr20 = ema(atr20,20) //vars var traded = "false" var buy_sell = "none" var buyExit = false var sellExit = false var stoploss = 0 buyCon = close > _20_day_highest and traded == "false" plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green ) if (buyCon) strategy.entry("long", strategy.long, when = buyCon) traded := "true" buy_sell := "buy" stoploss := round(close - variable_for_stoploss * ema_atr20) sellCon = close < _20_day_lowest and traded == "false" plotshape(sellCon,style = shape.triangledown, color = color.red ) if (sellCon) strategy.entry("short", strategy.short) traded := "true" buy_sell := "sell" stoploss := round(close - variable_for_stoploss * ema_atr20) if traded == "true" if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low)) strategy.close("long") buyExit := true traded := "false" if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high)) strategy.close("short") sellExit := true traded := "false" plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow ) buyExit := false plotshape(sellExit,style = shape.triangledown, color = color.yellow ) sellExit := false