
Эта стратегия - это торговая стратегия, основанная на движущихся средних, которые следуют тенденции. Она использует движущиеся средние цены с наивысшей и самой низкой ценой, установленные с помощью различных параметров, чтобы судить о тенденции рынка и генерировать соответствующие торговые сигналы в точке перехода тенденции.
Эта стратегия использует простые скользящие средние цены с различными параметрами для определения рыночных тенденций. В частности, она создает две группы скользящих средних:
h1 и l1 составляют систему подвижных средних с восходящим отслеживанием. h1 является простой подвижной средней с самой высокой ценой, показывающей тенденцию рынка вверх; l1 - это низкая траектория, составленная из h1 минус значение ATR.
h2 и l2 составляют движущуюся среднюю систему для слежения вниз. h2 - это простая движущаяся средняя по наименьшей цене, которая представляет собой нижнюю полосу рыночной тенденции; l2 - это верхняя полоса, составленная из h2 и ATR.
Использование системы двойных треков позволяет более точно определить переломные моменты тренда, отфильтровывая часть шумовых сделок. В то же время, значения ATR используются для установления уровня остановки и остановки, чтобы контролировать риск-прибыль на каждый пункт.
Эта стратегия имеет следующие преимущества:
Однако эта стратегия также несет в себе некоторые риски:
Ответ:
Эта стратегия может быть оптимизирована в следующих аспектах:
Стратегия в целом является простой и практичной стратегией отслеживания тенденций, основная идея заключается в том, чтобы идентифицировать обратный тренд и ограничить одиночные потери с помощью двухполосного фильтра и динамического остановки ATR. Она имеет определенную реальную ценность, но также имеет большое пространство для оптимизации.
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")
lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")
atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier
h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a
h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a
buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)
buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)
y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)
fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)