3

I would like to convert input.resolution into an integer represented as hours

The function parameter resolution captured from the input() function

Below is the custom function

f_getLookbackNumber(resolution) => 
    resolutionHours = iff(resolution == "6H", 360, iff(resolution == "1D", 360*2, iff(resolution == "1W", 360*2*7, iff(resolution == "1M", 360*2*30, resolution))))
    
    resolutionHours

The below error occurs when compiling



line 12: Cannot call 'iff' with arguments (input bool, literal integer, input string); available overloads: iff(bool, bool, bool) => bool; iff(bool, integer, integer) => integer; iff(bool, float, float) => float; iff(bool, color, color) => color; iff(bool, series[float], series[float]) => series[float]; iff(bool, series[integer], series[integer]) => series[integer]; iff(bool, series[color], series[color]) => series[color]; iff(bool, string, string) => string; iff(input bool, input bool, input bool) => input bool; iff(input bool, input integer, input integer) => input integer; iff(input bool, input float, input float) => input float; iff(input bool, input string, input string) => input string; iff(input bool, input color, input color) => input color; iff(const bool, const bool, const bool) => const bool; iff(const bool, const integer, const integer) => const integer; iff(const bool, const float, const float) => const float; iff(const bool, const string, const string) => const string; iff(const bool, const color, const color) => const color; iff(series[bool], bool, bool) => series[bool]; iff(series[bool], integer, integer) => series[integer]; iff(series[bool], float, float) => series[float]; iff(series[bool], color, color) => series[color]; iff(series[bool], series[integer], series[integer]) => series[integer]; iff(series[bool], series[color], series[color]) => series[color]; iff(series[bool], series[bool], series[bool]) => series[bool]; iff(series[bool], series[float], series[float]) => series[float]; iff(series[bool], series[string], series[string]) => series[string]; iff(series[bool], series[line], series[line]) => series[line]; iff(series[bool], series[label], series[label]) => series[label]; iff(series[bool], array[<array_type>], array[<array_type>]) => array[<array_type>];

When I try to replace the last iff, iff(resolution == "1M", 360*2*30, resolution) with iff(resolution == "1M", 360*2*30, 0) the code compiles

That seems to suggest data type of resolution is not assignable to resolutionHours

Is there a way to type cast string to integer?

neo-technoker
  • 369
  • 2
  • 8
  • 26

1 Answers1

0

The last iff should return 360230 (if resolution is "1M") or 0 else.
You don't need to cast a string to an integer.

G.Lebret
  • 2,826
  • 2
  • 16
  • 27