Name
超短期动量突破交易策略SSL-Channel-Breakout-Strategy-with-Trailing-Stop-Loss
Author
ChaoZhang
Strategy Description
[trans]
本策略基于SSL通道指标,结合突破信号进行超短期动量交易。当价格突破SSL上轨时,做多;当价格突破SSL下轨时,做空。同时设置移动止损和跟踪止损来控制风险。
-
计算长度为N的高价SMA和低价SMA作为SSL通道的上轨和下轨
-
当收盘价大于上轨时,设置买入信号;当收盘价小于下轨时,设置卖出信号
-
入场后设置固定止损位于SSL通道另一端,以控制风险
-
入场后设置跟踪止损,根据价格波动来锁定利润
-
当价格突破跟踪止损或固定止损位后,平仓离场
-
基于通道指标判断长短方向,避免假突破
-
结合两种止损方式,既可锁定利润,也可控制风险
-
交易频率高,适合超短线操作
-
参数设置灵活,可调整至自己的交易风格
-
自动识别多空,不需要判断方向
-
短线操作易受突发事件影响,需警惕高波动
-
固定止损在突破SSL后触发,可能会止损过大
-
跟踪止损设置不当可能过早离场
-
通道突破容易形成虚假信号,需组合其他指标过滤
-
仅适合有经验的短线交易者,不适合长线投资者
解决方法:
-
合理设置固定止损比例,控制单次止损
-
跟踪止损设置合理幅度,避免过早离场
-
结合量能指标等过滤器,识别真正趋势突破
-
做好资金管理,分批建仓,控制风险敞口
-
优化SMA周期参数,调整到最佳长度
-
尝试其他通道指标,如BB,KD等
-
增加量能指标判断突破可信度
-
考虑换手率,避免低换手率假突破
-
测试不同持仓时间,找到最佳出场时机
-
测试固定止损和移动止损设置
-
调整仓位管理策略,优化资金使用效率
本策略整合SSL通道指标判断趋势方向,以突破为信号入场,并使用双止损管理风险。优点是反应敏捷,易于掌握趋势,适合高频交易。需要注意防范假突破,完善止损机制,并控制好仓位。有潜力成为超短线交易的有效策略,值得进一步测试优化。
||
This strategy uses the SSL channel indicator to identify trend direction and trade breakouts with momentum. It goes long when price breaks above the SSL upper band and goes short when price breaks below the SSL lower band. Moving stop loss and trailing stop loss are used to control risks.
-
Calculate upper and lower bands of SSL channel using SMA of high and low prices with N periods.
-
Generate long signal when close is above upper band, and short signal when close is below lower band.
-
Set fixed stop loss at the opposite band after entry, to limit losses.
-
Set trailing stop loss that follows price movement, to lock in profits.
-
Exit when price hits either fixed stop loss or trailing stop loss.
-
Use channel indicator to determine trend direction, avoid false breakouts.
-
Dual stop loss combines profit taking and risk control.
-
High trading frequency fits ultra short-term trading.
-
Flexible parameters adaptable to personal trading style.
-
Auto detect long/short, no directional judgement needed.
-
Short-term trading prone to news shocks and high volatility.
-
Fixed stop loss may trigger oversized loss after breakout.
-
Improper trailing stop loss may lead to premature exit.
-
Channel breakouts susceptible to false signals.
-
Only suitable for experienced short-term traders.
Solutions:
-
Set reasonable fixed stop loss to limit loss per trade.
-
Optimize trailing stop loss levels to avoid early exit.
-
Add volume filter to confirm true breakout.
-
Manage position sizing, scale in to control risk exposure.
-
Optimize SMA periods to find best length.
-
Try other channel indicators like BB, KD etc.
-
Add volume indicator to confirm breakout credibility.
-
Consider turnover rate to avoid low volume false breakout.
-
Test different holding periods to find optimal exit timing.
-
Test fixed and trailing stop loss parameters.
-
Adjust position sizing strategy to maximize capital efficiency.
This strategy combines SSL channel directional bias and breakout signals, with dual stop loss management. It reacts fast to capture trends, suitable for high frequency trading. Beware of false breakouts, refine stop loss mechanisms, and control position sizing. With further optimization, it has the potential to be an effective ultrashort-term trading strategy.
[/trans]
Strategy Arguments
Argument | Default | Description |
---|---|---|
v_input_1 | 10 | Period |
v_input_2 | 10 | Length |
v_input_3 | 10 | Trailing Stop Size (in Points) |
Source (PineScript)
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SSL Channel Cross with Trailing Stop and Stop Loss", overlay=true)
period = input(title="Period", defval=10)
len = input(title="Length", defval=10)
smaHigh = sma(high, len)
smaLow = sma(low, len)
Hlv = 0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh
plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)
longCondition = crossover(sslUp, sslDown)
shortCondition = crossunder(sslUp, sslDown)
// Define el tamaño del trailing stop en puntos (ajusta según tu preferencia)
trailingStopSize = input(title="Trailing Stop Size (in Points)", defval=10)
var float trailingStopPrice = na
var float stopLossPrice = na
if (longCondition)
// Si se cumple la condición de compra, configura la posición larga, el trailing stop y el stop loss
strategy.entry("Long", strategy.long)
trailingStopPrice := low - trailingStopSize
stopLossPrice := sslDown
if (shortCondition)
// Si se cumple la condición de venta corta, configura la posición corta, el trailing stop y el stop loss
strategy.entry("Short", strategy.short)
trailingStopPrice := high + trailingStopSize
stopLossPrice := sslUp
// Calcula el trailing stop
if (strategy.position_size > 0)
trailingStopPrice := max(trailingStopPrice, stopLossPrice)
if (close < trailingStopPrice)
strategy.close("ExitLong", comment="Trailing Stop Long")
if (strategy.position_size < 0)
trailingStopPrice := min(trailingStopPrice, stopLossPrice)
if (close > trailingStopPrice)
strategy.close("ExitShort", comment="Trailing Stop Short")
Detail
https://www.fmz.com/strategy/430171
Last Modified
2023-10-25 17:40:37