Эта стратегия использует линию конверсии, базовую линию и границы облака от индикатора Ichimoku Kinko Hyo для определения направления тренда и осуществления торгов по отслеживанию тренда. Она длинна, когда цена превышает верхнюю часть облака, и коротка, когда цена превышает нижнюю часть облака. Прибыль получается при достижении заданного коэффициента прибыли. Потери сокращаются при достижении заданного коэффициента потери.
Стратегия в основном использует следующие индикаторы Ichimoku:
Он длинный, когда цена переходит выше облака, и короткий, когда цена переходит ниже облака. Причины входа и выхода запускаются, когда цена переходит верхнюю и нижнюю части облака соответственно. Выходы запускаются, когда достигается соотношение прибыли или убытка.
Эта стратегия использует облако Ichimoku для выявления тенденций и реализации простого отслеживания трендов. Несмотря на некоторое отставание и ложные сигналы, оптимизация параметров, остановок и использования других индикаторов может улучшить ее. Легко понять и реализовать, это хорошо для начинающих учиться и ссылаться при разработке других стратегий. Постоянное тестирование и оптимизация улучшат параметры и правила для лучшей производительности в режиме реального времени.
/*backtest start: 2023-10-04 00:00:00 end: 2023-10-08 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Estratégia com Ichimoku" , pyramiding=0, calc_on_every_tick = true, initial_capital = 20000, commission_type = strategy.commission.cash_per_order, commission_value = 10.00) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////Ichimoku Clouds//////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////(VERSÃO 40.0)////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// periodoLinhaDeConversao = input(defval=9, title="Tenkan-sen (Linha de Conversão)", minval=1) periodoLinhaBase = input(defval=26, title="Kijun-sen (Linha Base)", minval=1) periodoNivelAdiantadoB = input(defval=52, title="Senkou Span B (Nível adiantado B)", minval=1) deslocamento = input(defval=26, title="Deslocamento", minval=1) linhaDeConversao = (highest(high,periodoLinhaDeConversao)+lowest(low,periodoLinhaDeConversao))/2 linhaBase = (highest(high,periodoLinhaBase)+lowest(low,periodoLinhaBase))/2 nivelAdiantadoA = (linhaDeConversao + linhaBase)/2 nivelAdiantadoB = (highest(high,periodoNivelAdiantadoB)+lowest(low,periodoNivelAdiantadoB))/2 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// strategy.initial_capital = 50000 //Hardcoded quantity - strategy.entry(qty=) capitalInicial = strategy.initial_capital lotes = (strategy.initial_capital - (strategy.initial_capital % (open*100)))/open //Percentage input goal - strategy.exit(profit=) percentGoal = input (defval = 5.0, title = "Goal (%)", type = float, minval=0.0, step=0.1) longGoal = (strategy.position_avg_price * (percentGoal/100)) * 100 shortGoal = (strategy.position_avg_price - (strategy.position_avg_price / (1+(percentGoal/100)))) * 100 //Percentage input stop - strategy.exit(loss=) percentStop = input (defval = 0.5, title = "Stop (%)", type = float, minval=0.0, step=0.1) longStop = (strategy.position_avg_price * (percentStop/100)) * 100 shortStop = (strategy.position_avg_price * (percentStop/100)) * 100 strategy.entry('entryLong', strategy.long, lotes, when = strategy.position_size == 0 and crossover(close,max(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento]))) strategy.entry('entryShort', strategy.short, lotes, when = strategy.position_size == 0 and crossunder(close,min(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento]))) strategy.exit('exitLong', 'entryLong', profit = longGoal, loss = longStop) strategy.exit('exitShort', 'entryShort', profit = shortGoal, loss = shortStop) plot(strategy.equity, title="Variação de capital", color=white) //plot(strategy.position_size, color=red)