この pinescript 関数を python に変換しようとしていますが、何が間違っているのかわかりません。また、Numpy も Pandas も使用できないため、制限があります。
f_pmarp ( _price, _pmarLen, _pmarpLen, _type ) =>
_pmar = math.abs ( _price / f_ma_val ( _price, _type, _pmarLen ))
_pmarpSum = 0
_len = bar_index < _pmarpLen ? bar_index : _pmarpLen
for i = 1 to _len by 1
_pmarpSum += ( _pmar[i] > _pmar ? 0 : 1 )
_pmarpSum
_return = bar_index >= _pmarLen ? _pmarpSum / _len * 100 : na
これまでに行ったことは次のとおりですが、pinescript関数と同じ結果が得られないようです。何か案が?
def pmarp(prices, vol, malen, pmarplen, type):
#Price Moving Average Ratio Percentile
j = pmarplen + malen
result = []
while j < len(prices):
p = prices[-j:]
if type == 'TEMA':
ma = tema(p, malen)
elif type == 'VWMA':
ma = vwma(p, vol, malen)
elif type == 'EMA':
ma = ema(p, malen)
else:
return 0
_pmar = []
for num1, num2 in zip(p[-len(ma):],ma):
_pmar.append(math.fabs(num1 / num2))
_pmarpSum = 0
i = 1
while i < pmarplen:
if _pmar[-1] >= _pmar[i]:
_pmarpSum += 1
i += 1
result.append(_pmarpSum / pmarplen * 100)
j += 1
return result