python - 我的累积移动平均函数不会根据参数而改变
问题描述
我正在使用流线型,我想让用户在绘图图表上添加哪个累积移动平均线。我创建了该函数,它返回一个跟踪,但即使更改参数,跟踪也始终相同。这里的代码:
import streamlit as st
import pandas as pd
import plotly.graph_objects as go
def concatenate_2_lists_diff_sizes(list1, list2):
return [x + str(y) for x in list1 for y in list2]
indi_ma = ['SMA', 'EMA', 'CMA']
range_indi_ma = [20,30,40,50,100,150,200]
indicators_ma = concatenate_2_lists_diff_sizes(indi_ma, range_indi_ma)
others_indi =[ 'RSI with SMA','RSI with EMA', 'MACD', 'OBV']
final_lists_of_indicators = indicators_ma + others_indi
def cumulative_moving_average(df, range_indi):
df_close = df[['close']]
df_close[f'CMA{range_indi}'] = df.close.expanding(min_periods=range_indi).mean()
return df_close[f'CMA{range_indi}']
def display(value, timeframes, indicators):
st.write(f"""
# {value}
Price *chart*""")
df = pd.read_csv(f'data/{timeframes}/{value}-{timeframes}-data.csv')
trace_price = go.Candlestick(x = df['timestamp'],
open = df['open'],
high = df['high'],
low = df['low'],
close = df['close'])
fig = go.Figure(data = trace_price)
for indi in indicators:
if indi.startswith('CMA'):
cma_trace = go.Scatter( x=df.timestamp, y=cumulative_moving_average(df,int(indi[3:])) , line=dict(color='blue', width=1))
fig.add_trace(cma_trace)
price = st.plotly_chart(fig)
return price
display(value, timeframes, indicators)
我的累积移动平均函数有问题还是其他地方有问题?谢谢您的帮助 !