一、MFI指标简介
二 、MFI交易策略
交易信号
-
买入信号:当MFI从20以下上升穿过20,可能表示市场从超卖状态恢复,为买入机会。
-
卖出信号:当MFI从80以上下降穿过80,可能表示市场从超买状态回落,为卖出机会。
策略逻辑
-
选择适当的周期来计算MFI。
-
使用MFI的交叉和阈值作为交易信号。
-
设定止损和止盈规则,以管理风险。
三、MFI策略量化实战
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def calculate_mfi(df, window=14):
typical_price = (df['High'] + df['Low'] + df['Close']) / 3
df['Money_Flow'] = typical_price * df['Volume']
df['Positive_MF'] = np.where(typical_price >= typical_price.shift(1), df['Money_Flow'], 0)
df['Negative_MF'] = np.where(typical_price < typical_price.shift(1), -df['Money_Flow'], 0)
df['RMF'] = (df['Positive_MF'] - df['Negative_MF']) / (df['Positive_MF'] + df['Negative_MF'])
df['MFI'] = 100 * (1 - df['RMF']) / (1 + df['RMF'])
return df['MFI']
# 示例数据
df = pd.DataFrame({
'High': [...], # 填充股票的最高价数据
'Low': [...], # 填充股票的最低价数据
'Close': [...], # 填充股票的收盘价数据
'Volume': [...], # 填充股票的成交量数据
})
# 计算MFI指标
df['MFI'] = calculate_mfi(df)
# 生成交易信号
df['Signal'] = np.where(df['MFI'] > 80, -1, 0) # 卖出信号
df['Signal'] = np.where(df['MFI'] < 20, 1, df['Signal']) # 买入信号
# 绘制MFI指标和交易信号
plt.figure(figsize=(14, 7))
plt.plot(df['MFI'], label='MFI')
plt.plot(df['Signal'], label='Signals', color='red')
plt.axhline(y=80, color='grey', linestyle='--')
plt.axhline(y=20, color='grey', linestyle='--')
plt.title('MFI Indicator with Trading Signals')
plt.legend()
plt.show()
四、结论
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106029
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!