Эта стратегия рассчитывает движущиеся средние линии канала и устанавливает длинные или короткие позиции, когда цена проходит через линии канала, чтобы следовать тренду цены акции.
Стратегия сначала рассчитывает 20-дневный средний максимум как верхний рельс канала, 20-дневный средний минимум как нижний рельс канала и рассчитывает среднюю линию канала. Средняя линия канала представляет собой недавнюю среднюю ценовую тенденцию. Когда цена проходит через среднюю линию канала вверх, устанавливается длинная позиция. Когда цена проходит через среднюю линию канала вниз, устанавливается короткая позиция. Следуйте за ценовой тенденцией, пока цена не упадет обратно на противоположную сторону диапазона канала, закрывайте позицию.
В целом, эта стратегия относительно проста и проста. Она оценивает тенденции цен на акции через базовые ценовые каналы и относится к следующему типу тренда. Преимущества заключаются в простой работе, полном использовании инвестиционных возможностей, предоставляемых ценовыми тенденциями, и избежании блокировки фондов. Недостатками являются то, что неправильное настройка параметров может повлиять на производительность, и существуют определенные риски тестов на отказ. Благодаря разумной оптимизации можно улучшить стабильность стратегии и повысить реальную производительность торговли.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2) //stock strategy strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2019, "Backtest Start Year") testEndMonth = input(3) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = 20 dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=close > dcAverage) strategy.close("simpleBuy",when=close < dcLower) strategy.entry("simpleSell", strategy.short,when=close < dcAverage) strategy.close("simpleSell",when=close > dcAverage)