как отформатировать с плавающей запятой до 3 десятичных в pinescript - PullRequest
0 голосов
/ 26 февраля 2020

Я использую это alertcondition, чтобы запросить значение из графика, но возвращаемое значение имеет более 3 десятичных знаков.

Можно ли отформатировать его так, чтобы вывод отображал только точность с точностью до 3 десятичных знаков?

alertcondition(crossover(d2,d3), title="monitor", message='?{{ticker}}? Monitor If price above Current Price={{close}} PIVOT = {{plot("Pivot")}} SUPPORT = {{plot("S1")}} RESISTANCE = {{plot("R1")}}

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Вам нужно будет округлить ваше построенное значение:

//@version=4
study("")
f_round( _val, _decimals) => 
    // Rounds _val to _decimals places.
    _p = pow(10,_decimals)
    round(abs(_val)*_p)/_p*sign(_val)
plot(close, "CloseP")
plot(f_round(close, 3), "CloseR")
alertcondition(true, "A", 'Unrounded: {{plot("CloseP")}}, Rounded:{{plot("CloseR")}}')
0 голосов
/ 26 февраля 2020

Если вам нужно отформатировать строку, чтобы отобразить только три десятичных значения, тогда вам поможет параметр строки формата функции tostring().

Если вам нужно вывести значение с точностью до трех десятичных знаков значения, то вы можете просто установить параметр исследования precision на 3.

Ниже приведен пример использования этих параметров:

//@version=4
study("My Script", precision=3) // precision gives three decimal values in the plot-functions

// the format '#.###' gives three decimal values in a string
val = open / close
s = tostring(val, '#.###') 
label.new(bar_index, high, s)

// this plots only three decimal values, because of the study's param 'precision=3'
plot(val)
...