站长收藏详情

tradingview 中关于几个简单boll信号代码备份;

时间:2023-05-05   来源:525游


说明这是一款针对合约优化的趋势策略,当ma100均线上穿ma200均线时代表止跌,至少不会空中接飞刀,然后开启布林带上传买进策略,保证拿到性价比的底仓。

缺点是均线的上穿于下穿总是延迟,会出现地板空,或者暴跌多的最后一单止损,最优的解决方法时人工判断阶段性的底部开启只做多顶部只多空的开启,

这款策略能够在下降趋势中进行高点最空,在上涨趋势中低点追多,并且增加了rsi的超卖超卖筛选功能,前提时人工能判断出现在行情的阶段,适时的开启关闭任何一个方向。除非大范围内的盘整震荡。


注意;策略不是人工会不停的加仓,有爆仓风险,必须设置极端情况的止损,最好是分账户测试进行操作。最适合单边上涨或者单边下跌行情。




1. 布林带策略,

功能说明 ,价格上穿布林带下轨并收盘在布林带之内发出买进警报,价格下穿布林带上轨并收盘在布林带之内发出卖出警报。


//@version=5
strategy("Bollbuy&sell", overlay=true)
// 定义布林带参数
bb_len = input.int(title="Bollinger Bands Length", defval=20)
bb_mult = input.float(title="Bollinger Bands Multiplier", defval=2)
// 计算布林带
basis = ta.sma(close, bb_len)
dev = bb_mult * ta.stdev(close, bb_len)
upper = basis + dev
lower = basis - dev
// 绘制布林带
plot(basis, color=color.blue, linewidth=1)
plot(upper, color=color.red, linewidth=1)
plot(lower, color=color.green, linewidth=1)
// 定义买入信号
buy_signal = ta.cross(close, lower) and close > lower and close < basis
// 定义卖出信号
sell_signal = ta.cross(upper, close) and close < upper and close > basis
// 执行买入操作
if (buy_signal)
    strategy.entry("Buy", strategy.long)
// 执行卖出操作
if (sell_signal)
    strategy.close("Buy")
// 绘制买入和卖出记录 图标显示所有上穿布林带,下穿布林带符合要求的信号
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="Buy")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="Sell")




2.布林带&均线

要求,当ma100上穿ma200时显示    ,价格上穿并收盘布林带之内的买进信号,

           当ma100下穿ma200时显示 , 价格下穿并收盘在布林带之内的卖出信号


//@version=5
strategy("Boll&ma200", overlay=true)
// 定义布林带参数
bb_len = input.int(title="Bollinger Bands Length", defval=20)
bb_mult = input.float(title="Bollinger Bands Multiplier", defval=2)
// 计算布林带
basis = ta.sma(close, bb_len)
dev = bb_mult * ta.stdev(close, bb_len)
upper = basis + dev
lower = basis - dev
// 计算ma100和ma200
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
// 绘制布林带和移动平均线
plot(basis, color=color.blue, linewidth=1)
plot(upper, color=color.red, linewidth=1)
plot(lower, color=color.green, linewidth=1)
plot(ma100, color=color.yellow, linewidth=1)
plot(ma200, color=color.orange, linewidth=1)
// 定义买入信号
buy_signal = ta.cross(close, lower) and close > lower and close < basis and ma100 > ma200
// 定义卖出信号
sell_signal = ta.cross(upper, close) and close < upper and close > basis and ma100 < ma200
// 执行买入操作
if (buy_signal)
    strategy.entry("Buy", strategy.long)
// 执行卖出操作
if (sell_signal)
    strategy.close("Buy")
// 绘制买入和卖出记录
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="Buy")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="Sell")




3.布林带&均线&rsi策略

要求,当ma100上穿ma200时显示    ,价格上穿并收盘布林带之内的买进信号,  买进信号发生时rsi指数小于30 形成超卖,不符合的过滤掉

           当ma100下穿ma200时显示 , 价格下穿并收盘在布林带之内的卖出信号 ,卖进信号发生时rsi指数大于70形成超买,不符合的过滤掉。

//@version=5
strategy("Boll&ma200&RSI", overlay=true)
// 定义布林带参数
bb_len = input.int(title="Bollinger Bands Length", defval=20)
bb_mult = input.float(title="Bollinger Bands Multiplier", defval=2)
// 计算布林带
basis = ta.sma(close, bb_len)
dev = bb_mult * ta.stdev(close, bb_len)
upper = basis + dev
lower = basis - dev
// 计算ma100和ma200
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
// 计算RSI指标
rsi_length = input.int(title="RSI Length", defval=14)
rsi_oversold = input.float(title="RSI Oversold Level", defval=30)
rsi_overbought = input.float(title="RSI Overbought Level", defval=70)
rsi = ta.rsi(close, rsi_length)
// 绘制布林带和移动平均线
plot(basis, color=color.blue, linewidth=1)
plot(upper, color=color.red, linewidth=1)
plot(lower, color=color.green, linewidth=1)
plot(ma100, color=color.yellow, linewidth=1)
plot(ma200, color=color.orange, linewidth=1)
// 定义买入信号
buy_signal = ta.cross(close, lower) and close > lower and close < basis and ma100 > ma200 and rsi < rsi_oversold
// 定义卖出信号
sell_signal = ta.cross(upper, close) and close < upper and close > basis and ma100 < ma200 and rsi > rsi_overbought
// 执行买入操作
if (buy_signal)
    strategy.entry("Buy", strategy.long)
// 执行卖出操作
if (sell_signal)
    strategy.close("Buy")
// 绘制买入和卖出记录
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="Buy")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="Sell")



4,拆解策略成指标,并发出警报。


卖出指标


//@version=5
indicator("Boll&ma200&RSI Sell Signal", overlay=true)
// 定义布林带参数
bb_len = input.int(title="Bollinger Bands Length", defval=100)
bb_mult = input.float(title="Bollinger Bands Multiplier", defval=2)
// 计算布林带
basis = ta.sma(close, bb_len)
dev = bb_mult * ta.stdev(close, bb_len)
upper = basis + dev
lower = basis - dev
// 计算ma100和ma200,下穿卖出
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
// 计算RSI指标,筛选默认>70
rsi_length = input.int(title="RSI Length", defval=14)
rsi_overbought = input.float(title="RSI Overbought Level", defval=70)
rsi = ta.rsi(close, rsi_length)
// 定义卖出信号
sell_signal = ta.cross(upper, close) and close < upper and close > basis and ma100 < ma200 and rsi > rsi_overbought
// 绘制卖出信号
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="Sell")
// 添加警报
alertcondition(sell_signal, title="Boll&ma200&RSI Sell Signal", message="A Sell Signal has been detected!")





买进指标

//@version=5
indicator("Boll&ma200&RSI Buy Signal", overlay=true)
// 定义布林带参数
bb_len = input.int(title="Bollinger Bands Length", defval=100)
bb_mult = input.float(title="Bollinger Bands Multiplier", defval=2)
// 计算布林带
basis = ta.sma(close, bb_len)
dev = bb_mult * ta.stdev(close, bb_len)
upper = basis + dev
lower = basis - dev
// 计算ma100和ma200,上穿买进
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
// 计算RSI指标,筛选默认<30
rsi_length = input.int(title="RSI Length", defval=14)
rsi_oversold = input.float(title="RSI Oversold Level", defval=30)
rsi = ta.rsi(close, rsi_length)
// 定义买入信号
buy_signal = ta.cross(close, lower) and close > lower and close < basis and ma100 > ma200 and rsi < rsi_oversold
// 绘制买入信号
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="Buy")
// 添加警报
alertcondition(buy_signal, title="Boll&ma200&RSI buy Signal", message="A Buy Signal has been detected!")






 

相关阅读

精彩推荐