from binance.spot import Spot as Client1 # python3 -m pip install python-binance #pip install binance-connector import pandas as pd import numpy as np spot_client = Client1(key="", secret="") sembol = "BTCUSDT" period = "1d" candles = ( spot_client.klines(symbol=str(sembol), interval=str(period), limit = 1000)) df = pd.DataFrame(candles, columns=['open_time', 'open', 'high', 'low', 'close', 'volume', 'close_time', 'quote_asset_volume', 'number_of_trades', 'tbbav', 'tbqav', 'ignore'], dtype=float) def vidya (dataframe=df, length = 4, source="close"): alpha = 2 / (length + 1) df['ud1'] = np.where(df[source] > df[source].shift(1), (df[source] - df[source].shift()), 0) df['dd1'] = np.where(df[source] < df[source].shift(1), (df[source].shift() - df[source]), 0) df['UD'] = df['ud1'].rolling(9).sum() df['DD'] = df['dd1'].rolling(9).sum() df['CMO'] = ((df['UD'] - df['DD']) / (df['UD'] + df['DD'])).fillna(0).abs() df['Var'] = 0.0 for i in range(length, len(df)): df['Var'].iat[i] = (alpha * df['CMO'].iat[i] * df[source].iat[i]) + (1 - alpha * df['CMO'].iat[i]) * \ df['Var'].iat[ i - 1] print("vidya indicator\n", df['Var']) return df['Var'] vidya ()