Я написал входную переменную, чтобы определить, какой тип скользящей средней я хотел бы использовать в своей стратегии. У меня в скрипте много другого кода, поэтому я попытался выбрать только то, что имеет отношение к делу. Входная переменная:
MA1Type = input(title="MA1 Type", defval="SMA", options=["RMA", "SMA", "EMA", "WMA", "HMA", "DEMA", "TEMA", "VWMA"])
И функция, для которой я пытаюсь использовать вход, это функция "sma" здесь:
MovAv1 = sma(close, MA1Period)
Это моя рабочая функция MA ниже
ma(MAType, MASource, MAPeriod) =>
if MAType == "SMA"
sma(MASource, MAPeriod)
else
if MAType == "EMA"
ema(MASource, MAPeriod)
else
if MAType == "WMA"
wma(MASource, MAPeriod)
else
if MAType == "RMA"
rma(MASource, MAPeriod)
else
if MAType == "HMA"
wma(2*wma(MASource, MAPeriod/2)-wma(MASource, MAPeriod), round(sqrt(MAPeriod)))
else
if MAType == "DEMA"
e = ema(MASource, MAPeriod)
2 * e - ema(e, MAPeriod)
else
if MAType == "TEMA"
e = ema(MASource, MAPeriod)
3 * (e - ema(e, MAPeriod)) + ema(ema(e, MAPeriod), MAPeriod)
else
if MAType == "VWMA"
vwma(MASource, MAPeriod)
Сообщение об ошибке, которое я получаю, когда пытаюсь использовать свою функцию ma вместо одной из встроенных функций; здесь:
невозможно вызвать 'anonym_function_0' с аргументами (серия [float], входное целое число);