0

この 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
4

0 に答える 0