pine-script - 仅当两个连续的交叉点在同一方向时才触发信号
问题描述
我有一个简单的松树脚本来改变蜡烛穿过 kijun 线时的颜色。我想要实现的是,只有当两个交叉点在同一方向时才会触发。
尝试过,但无法想出一个好的解决方案。
study(title="KijCrossTest", shorttitle="KijCrossTest", overlay = false )
conversionPeriods = input(9, minval=1),
basePeriods = input(26, minval=1)
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2
Periods"),
displacement = input(26, minval=1)
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
midtk = (conversionLine+baseLine)/2
long = iff ( (close > baseLine) and (low<=baseLine) and (close>open)
,1, -1)
short = iff ( (close < baseLine)and (high>=baseLine) and (close<open)
,-1, 1)
barcolor(long == 1 ? lime: short == -1 ? red:close < open? black : white)
plot(long, title="long", style=line, linewidth=1, color=green )
plot(short, title="short", style=line, linewidth=1, color=red )
解决方案
//@version=3
study("My Script", overlay=true, max_bars_back=5000)
s1 = sma(close, 10)
s2 = sma(close, 200)
plot(s1, color=red)
plot(s2, color=green)
crossed = cross(s1, s2)
plot(crossed ? 100 : 0, color=green, style=histogram)
//NOTE: used crosseed[1], because barssince(crosseed) would return 0
since = barssince(crossed[1])
colorTheSame(s) =>
close > open == close[s] > open[s]
triggered = crossed and colorTheSame(since)
plot(triggered ? 100 : 0)
我想这接近你正在寻找的东西。我用 sma 代替你的系列作为例子
推荐阅读
- kubernetes - Nginx 入口将 X-Real-IP 的私有 IP 发送到服务
- python - python中异构可变长度元组的类型提示是什么?
- python - ValueError:字符串长度不等于格式和分辨率大小
- reactjs - 具有 2 种不同 UI 结构的 Next.js 多语言应用程序
- flutter - 如何在 Flutter 中制作这个我是 Flutter 的新手,所以如果有人知道
- firebase - 使用 gofiber firebase-auth 时获取“丢失或格式错误的令牌”
- c++ - C++,C++ 的 OpenCv 给出了错误,尽管它是正确构建的
- android - 如何检查与查尔斯的连接方法请求?
- ajax - JSF ajax - 重置延迟
- php - 如何检查是否启用了 JIT?