我在业余时间学习一些PineScript
,发现与之共事非常难。我基本上是想重新创建我在C#
中写的一个复杂的指标,而我却在为简单的事情而苦苦挣扎。
省略复杂的内容,可以说我想在MACD行为如下图时绘制箭头:
这是我当前的尝试,基本上应该检查我们是否处于峰值,找到直方图高,找到零列以下,然后零列上方,并检查它们是否包含比当前高的直方图值: / p>
[macdLine, signalLine, hist] = macd(close, 12, 26, 9)
float ind = na
if hist[2] > 0 and hist[1] < hist[2] and hist < hist[1] and hist[3] < hist[2]
bool maxHistFound = false
bool lowerFound = false
bool upperFound = false
bool candidateFound = false
float maxHist = hist[2]
for i = 1 to 1000
if not maxHistFound
if hist[i] < 0
maxHistFound := true
else
if hist[i] > maxHist
maxHist := hist[i]
if not lowerFound
if hist[i] < 0
lowerFound := true
if not upperFound
if hist[i] > 0
upperFound := true
if maxHistFound and lowerFound and upperFound
if hist[i] > 0 and hist[i + 1] <= hist[i] and hist[i - 1] <= hist[i]
if hist[i] > maxHist // and macdLine[i] > 0 and signalLine[i] > 0 and hist[i] > 0.10
candidateFound := true
maxHist := hist[i]
if hist[i] < 0
if candidateFound
ind := -1
break
alertcondition(ind == -1, title='Short', message='Short')
plotarrow(ind, colorup=#008000, colordown=#FF3030, transp=0, minheight=50, maxheight=50)
即使信号不符合我的描述,它也会显示信号。
主要问题是我自己可以修复它,但是我不知道如何正确地用这种语言调试,我试图通过绘制所有内容来进行调试,但是绘制调试内容是riddiculus,不幸的是我可以找不到更好的解决方案。如果我知道如何在PineScript
中的断点处停止,我可能会很容易发现发生了什么。
答案 0 :(得分:0)
我遇到了类似的问题,我发现这个脚本已经写在 TradingView 上。
检查一下。工作得很好。 https://www.tradingview.com/script/nTOjDIxS-Cyatophilum-MACD-Hist-ALERT-SETUP/