
波动突破交易策略是一个基于单个价格行动的策略。它通过分析价格和成交量的变化来触发买入和卖出信号。这个策略还可以与警报结合使用,在其他交易所或系统中触发订单。
该策略通过分析K线的收盘价、开盘价、最高价和最低价来判断价格走势和力度。
具体来说,它会分析最近3根K线的收盘价是否连续高于或低于开盘价。如果是,则表明价格在连续向上或向下突破,产生趋势性行情。
此外,该策略还会统计一定周期内的最大成交量。如果当前K线的成交量超过最近周期内的最大值,则说明成交量放大,反映出巨大的交易力量进入市场。
在价格产生三根连续突破K线和成交量放大的同时,该策略便会产生买入或卖出信号。
这是一个利用价格行动和交易量信号的简单有效策略。其主要优势有:
该策略也存在一些潜在风险:
为控制这些风险,可以考虑加入移动止损,优化参数组合,或与其他指标或策略组合使用。
这是一个基础策略,还有很大的优化空间,主要方向有:
本策略整体来说是一个非常实用的基于价格行动理念的策略。它具有 participating、容易理解、实施成本低等优点。同时也存在一定的盲目性,需要进一步优化与组合来实现更好的策略增强。总的来说这是一个非常有价值的策略思路,值得深入研究与应用。
/*backtest
start: 2022-12-04 00:00:00
end: 2023-03-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("SPAS", overlay=true, pyramiding=5, calc_on_order_fills=true)
int signal_hh = 0
int signal_ll = 0
if close[1] >= open[1] and close[2] >= open[2] and close[3] >= open[3]
signal_hh := 1
if close[1] <= open[1] and close[2] <= open[2] and close[3] <= open[3]
signal_ll := 1
plotchar(signal_hh, char='H', size=size.tiny, location=location.abovebar)
plotchar(signal_ll, char='L', size=size.tiny, location=location.abovebar)
int signal_vol = 0
float max_volume = 0.0
int vol_length = input(title="Volume length", type=input.integer, defval=3)
for i = vol_length to 1
if volume[i] > max_volume
max_volume := volume[i]
if volume[0] > max_volume
signal_vol := 1
plotchar(signal_vol, char='V', size=size.tiny, location=location.bottom)
int signal_buy = 0
int signal_sell = 0
if signal_hh and signal_vol
signal_buy := 1
label.new(bar_index, high, "B", color=color.green)
strategy.entry("buy", strategy.long, 5)//, when=strategy.position_size <= 0)
if signal_ll and signal_vol
signal_sell := 1
label.new(bar_index, low, "S", color=color.red)
strategy.entry("sell", strategy.short, 5)//, when=strategy.position_size > 0)
//plotchar(signal_buy, char='B', color=color.green, size=size.tiny, location=location.abovebar)
plotarrow(signal_buy, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)
//plotchar(signal_sell, char='S', color=color.red, size=size.tiny, location=location.abovebar)
plotarrow(signal_sell * -1, colorup=color.green, colordown=color.orange, transp=0, maxheight=20)