Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中将OHLC值转换为Renko图表?_Python_Pandas_Time Series_Algorithmic Trading - Fatal编程技术网

如何在Python中将OHLC值转换为Renko图表?

如何在Python中将OHLC值转换为Renko图表?,python,pandas,time-series,algorithmic-trading,Python,Pandas,Time Series,Algorithmic Trading,在过去的几个小时里,我一直在尝试匹配Tradingview上的Renko图表,但似乎仍然无法找出我做错了什么 到目前为止,我的算法给出了正确的值,除非趋势逆转 import math import pandas as pd def bricks_series(df: pd.DataFrame, step=50): prices = df['close'] first_brick = math.floor(prices.iloc[0] / step) * step br

在过去的几个小时里,我一直在尝试匹配Tradingview上的Renko图表,但似乎仍然无法找出我做错了什么

到目前为止,我的算法给出了正确的值,除非趋势逆转

import math
import pandas as pd


def bricks_series(df: pd.DataFrame, step=50):
    prices = df['close']
    first_brick = math.floor(prices.iloc[0] / step) * step
    bricks = [first_brick]
    for price in prices:
        if price > (bricks[-1] + step):
            step_mult = math.floor((price - bricks[-1]) / step)
            next_bricks = [bricks[-1] + (mult * step) for mult in range(1, step_mult + 1)]
            bricks += next_bricks
        elif price < bricks[-1] - step:
            step_mult = math.ceil((bricks[-1] - price) / step)
            next_bricks = [bricks[-1] - (mult * step) for mult in range(1, step_mult + 1)]
            bricks += next_bricks
        else:
            continue
    return bricks


if __name__ == "__main__":
    df = pd.read_csv("binance_daily.csv")
    renko_bricks = bricks_series(df)
导入数学
作为pd进口熊猫
def系列(df:pd.DataFrame,步长=50):
价格=df[‘关闭’]
first_brick=math.floor(prices.iloc[0]/步)*步
砖=[第一块砖]
价格中的价格:
如果价格>(砖块[-1]+步骤):
步骤=数学地板((价格-砖块[-1])/步骤)
next_bricks=[bricks[-1]+(mult*step)用于范围内的mult(1,step_mult+1)]
砖+=下一块砖
elif价格<砖块[-1]-步骤:
步骤=数学单元((砖块[-1]-价格)/步骤)
next_bricks=[bricks[-1]-(mult*step)用于范围内的mult(1,step_mult+1)]
砖+=下一块砖
其他:
持续
返砖
如果名称=“\uuuuu main\uuuuuuuu”:
df=pd.read\u csv(“binance\u daily.csv”)
renko_砖=砖_系列(df)
这是我的ohlc数据。

这是我试图复制的图表。

您可以将其作为示例:


我测试过了,效果很好。与tradingview不完全相同,因此您可能需要对其进行一些调整。

您可以将其作为示例:

我测试过了,效果很好。与tradingview不完全相同,因此您可能需要对其进行一些调整