Эта стратегия основана на принципе ценового канала. Она формирует ценовые каналы, рассчитывая максимальные и минимальные цены за определенный исторический период, и использует границы каналов в качестве сигналов покупки и продажи для отслеживания ценовых тенденций.
Основная идея стратегии ценового канала заключается в том, что цены на акции превышают исторические максимумы при восходящем тренде, а превышают исторические минимумы при нисходящем тренде. Таким образом, ценовые каналы могут быть построены на основе максимальных и минимальных цен в течение определенного исторического периода (например, 21 день), по каналам и по каналам в качестве сигналов для покупки и продажи.
В частности, эта стратегия образует ценовой канал, рассчитывая максимальные и минимальные цены за последние 21 день с помощью функций “highest () ” и “lowest () ” . Если цена закрытия в тот день выше, чем последняя 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)