Esta estrategia es una estrategia de seguimiento de tendencias basada en el principio del canal de precios. Calcula los precios más altos y más bajos durante un cierto período histórico para formar un canal de precios, y utiliza los límites del canal como señales de compra y venta para rastrear las tendencias de precios.
La idea central de la estrategia de canal de precios es: cuando el precio de la acción está en una tendencia al alza, romperá el máximo histórico; cuando está en una tendencia a la baja, romperá el mínimo histórico. Por lo tanto, se puede construir un canal de precios basado en los precios más altos y más bajos durante un cierto período histórico (como 21 días).
Específicamente, esta estrategia utiliza las funciones más altas y más bajas para calcular los precios más altos y más bajos durante los últimos 21 días para formar un canal de precios. Si el precio de cierre del día es mayor que el máximo de 21 días (es decir, rompiendo el rieles superior del canal), se genera una señal de compra. Si el precio de cierre es menor que el mínimo de 21 días (es decir, rompiendo el rieles inferior), se genera una señal de venta.
Además, la estrategia también comprueba si hay brechas para juzgar posibles inversiones de tendencia. Si hay una brecha hacia abajo, el canal de precios se establecerá en rojo para cubrir los riesgos. Si hay una brecha hacia arriba, se establecerá en verde.
Las principales ventajas de la estrategia de canal de precios son:
También hay algunos riesgos con esta estrategia:
Para superar estos riesgos, podrían considerarse las siguientes optimizaciones:
Las principales direcciones para optimizar esta estrategia incluyen:
La estrategia de canal de precios construye un canal simple utilizando picos y mínimos históricos y utiliza los límites del canal como señales de negociación. Es una estrategia típica de seguimiento de tendencias que es fácil de entender e implementar y puede rastrear efectivamente las tendencias de precios, con el canal de precios sirviendo como un mecanismo de stop loss. Sin embargo, también hay riesgos con esta estrategia. Las dimensiones principales de optimización incluyen ajuste de parámetros, combinación de otros indicadores, implementación de stop loss / toma de ganancias, parametrización dinámica, etc. En general, la estrategia de canal de precios proporciona un marco simple y práctico de seguimiento de tendencias para el comercio cuantitativo, pero necesita mejoras y optimizaciones adicionales para lograr un mejor rendimiento en el comercio en vivo.
/*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)