Создание общего рейтинга или числа на основе количества критериев встречи?Большее количество критериев создает зеленый градиент - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь сгенерировать оценку числа по моему сценарию Pine, который просматривает установленное количество критериев и генерирует оценку, основанную на базовой линии и находящуюся выше и ниже ее.Затем переводим это число или рейтинг, чтобы выбрать зеленый или красный цвет градиента на полосе.

Я посмотрел на различные критерии каскадирования, и отдельные критерии, которые были выполнены, выдают цвет.

Мне бы хотелось, чтобыСкрипт для определения рейтинга акций на основе установленных мной критериев, а затем вывод градиента от красного к зеленому в зависимости от того, насколько высоко это число.Удачная покупка покажет ярко-зеленый, нейтральный - желтый, а продажа / избегание - красный.

Вот аналогичный код, использующий эту концепцию.

`//@version=3
 study(title="Collar Color Indicator", shorttitle="COLLAR")

//RSI
src = close, len = input(14, minval=1, title="Length")
up = sma(max(change(src), 0), len)
down = sma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// MACD
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACDLine = ema(close, fastLength) - ema(close, slowlength)
MACDSignal = ema(MACDLine, MACDLength)
MACD = MACDLine - MACDSignal

// COLLAR SIGNAL DETERMINATION AND PLOT
ema5=ema(close,5)
ema20=ema(close,20)

score = 0
score1 = 0
score2 = 0
score3 = 0
score0 = 0

if ema5 > ema20  
score := score +1 
if MACD >0
score := score +1 
if rsi >50
score := score +1 

plot(iff(score==3,1,0), color=green, linewidth=2, style=columns)
plot(iff(score==2,1,0), color=yellow, linewidth=2, style=columns)
plot(iff(score==1,1,0), color=orange, linewidth=2, style=columns)
plot(iff(score==0,1,0), color=red, linewidth=2, style=columns)`

1 Ответ

0 голосов
/ 07 февраля 2019

Я не уверен, правильно ли я вас понял, но вот фрагмент, который рисует свечи, основанные на цветах, выбранных на основании нескольких условий:

//@version=3
study("My Script")

BRIGHT_GREEN = #7CFC00  // hex color. For more gradient could be used more colors

getColor(num_criteria) =>
  num_criteria >= 4 ? BRIGHT_GREEN :
  num_criteria >= 3 ? green :
  num_criteria > 1 ? yellow :
  red


num_true_criteria = 0

if open > open[1]
    num_true_criteria := num_true_criteria + 1

if high > sma(low, 4)
    num_true_criteria := num_true_criteria + 1

if high[1] - low[1] > 100
    num_true_criteria := num_true_criteria + 1

if n % 2 == 0
    num_true_criteria := num_true_criteria + 1


plotcandle(open, high, low, close, color=getColor(num_true_criteria))

Надеюсь, это будет полезно для вас.

...