Эта стратегия - это стратегия, основанная на принципе ценового канала. Она рассчитывает самые высокие и самые низкие цены за определенный исторический период для формирования ценового канала и использует границы канала в качестве сигналов покупки и продажи для отслеживания ценовых тенденций.
Основная идея стратегии ценового канала заключается в следующем: когда цена акции находится в восходящем тренде, она пройдет через исторический максимум; когда она находится в нисходящем тренде, она пройдет через исторический минимум. Поэтому ценовой канал может быть построен на основе самых высоких и самых низких цен за определенный исторический период (например, 21 день). Верхние и нижние рельсы канала служат сигналами покупки и продажи соответственно.
В частности, эта стратегия использует функции самые высокие и самые низкие цены, чтобы рассчитать самые высокие и самые низкие цены за последние 21 день для формирования ценового канала. Если цена закрытия дня выше 21-дневного максимума (т.е. прорыв через верхнюю рельсу канала), генерируется сигнал покупки. Если цена закрытия ниже 21-дневного минимума (т.е. прорыв через нижнюю рельсу), генерируется сигнал продажи.
Кроме того, стратегия также проверяет на наличие пробелов для оценки потенциальных обратных тенденций. Если есть пробел вниз, ценовой канал будет настроен на красный цвет для хеджирования рисков. Если есть пробел вверх, он будет настроен на зеленый.
Основными преимуществами стратегии ценового канала являются:
Эта стратегия также сопряжена с некоторыми рисками:
Для преодоления этих рисков можно рассмотреть следующие оптимизации:
К основным направлениям оптимизации этой стратегии относятся:
Стратегия ценового канала создает простой канал с использованием исторических пиков и дна и использует границы канала в качестве торговых сигналов. Это типичная стратегия следования трендам, которую легко понять и реализовать и которая может эффективно отслеживать ценовые тенденции, причем ценовой канал служит механизмом остановки потери. Однако есть и риски с этой стратегией. Основные аспекты оптимизации включают настройку параметров, объединение других индикаторов, реализацию остановки потери / получения прибыли, динамическую параметризацию и т. Д. В целом стратегия ценового канала обеспечивает простую и практичную структуру для количественной торговли, но требует дальнейших улучшений и оптимизаций для достижения лучших результатов в живой торговле.
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // // 作品: [LunaOwl] 樂活投資:價格通道 // 英文: [LunaOwl] LOHAS Investor - PriceChannel // /////////////////////////////// // ~~!!*(๑╹◡╹๑) ** // // 製作: @LunaOwl 彭彭 // // 一版: 2019年12月07日 // // 二版: 2019年12月09日 // /////////////////////////////// // // 介紹: //--價格通道是一個古老的投資策略,對於「肯做功課選股」的上班族投資人非常方便。 //--由於大多數股市散戶沒有時間操作,即時有時間操作也只是加快輸錢的速度,所以, //--上班族投資法,或「樂活投資」的條件有幾點: //--********** //--1) 設定溫和的投資報酬率期望 //--2) 使用適合的選股方式建立投資組合,減少單一股票的失誤率 //--3) 使用簡單的進出場策略,規律的執行它 //--4) 財富依靠時間積累,每天學習 //--********** // //==定義回測條件==// strategy("[LunaOwl] 價格通道", initial_capital = 10000, commission_value = 0.07, default_qty_type = strategy.percent_of_equity, default_qty_value = 50, overlay = true, calc_on_order_fills = true ) //==設定價格通道==// Channel_Price = input(close, title = "通道價格") Channel_Length = input(21, title = "通道回溯長度") Channel_High = highest(high, Channel_Length) Channel_Low = lowest(low, Channel_Length) gapUp = (low > high[1]) gapDown = (high < low[1]) BackgroundColour = (gapUp == true) ? color.green : (gapDown == true) ? color.red : na bgcolor(BackgroundColour, transp=60) BorderlineA = plot(Channel_High, title = "通道上線", color = color.red, style = plot.style_line) BorderlineB = plot(Channel_Low, title = "通道下線", color = color.blue, style = plot.style_line) fill(BorderlineA, BorderlineB, title = "通道底色", color = color.gray, transp = 85) Long_entry = close >= Channel_High Long_close_all = close <= Channel_Low if (not na(close[Channel_Length])) strategy.entry("買入", strategy.long, comment = "高於近期", stop = Channel_High) strategy.entry("賣出", strategy.short, comment = "低於近期", stop = Channel_Low)