Я изучаю немного PineScript
в свое свободное время, и мне очень трудно работать с ним. Я в основном пытаюсь воссоздать сложный индикатор, который я написал в C#
, и я борюсь с простыми вещами.
Опуская сложные вещи, скажем, я хочу рисовать стрелки, когда MACD ведет себя так, как показано на следующем рисунке:
Это моя текущая попытка, в основном предполагается проверить, находимся ли мы на пике, найти гистограмму высоко, найти столбцы ниже нуля, затемвыше нуля столбцов и проверьте, содержат ли они более высокое значение гистограммы, чем текущее значение:
[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)
Показывает сигнал, даже если для сигнала не предшествует то, что я описал.
Основная проблема в том, что я, возможно, мог бы исправить это сам, но я не знаю, как правильно отладить на этом языке, и я пытаюсь сделать это, зарисовывая все, кроме заговора для отладкиВещи - это гадость, к сожалению, в своем невежестве я не могу найти лучшего решения. Я мог бы легко узнать, что происходит, если бы знал, как остановиться на точке останова в PineScript
.