import pandas as pd import numpy as np def run(): """ 简单均线策略示例: - 买入条件:收盘价 > 5 日均线 - 卖出条件:收盘价 < 5 日均线 """ # 模拟历史行情数据 dates = pd.date_range(start='2026-01-01', periods=20) prices = pd.Series(np.random.uniform(100, 200, size=20), index=dates) # 计算 5 日均线 ma5 = prices.rolling(window=5).mean() # 策略信号:1 买入,-1 卖出 signal = (prices > ma5).astype(int) - (prices < ma5).astype(int) # 简单净值计算 capital = 10000 position = 0 nav = [] for i in range(len(prices)): if signal[i] == 1: # 买入 position = capital / prices[i] elif signal[i] == -1: # 卖出 capital = position * prices[i] position = 0 nav.append(capital + position * prices[i]) result = pd.DataFrame({ 'date': dates, 'price': prices, 'signal': signal, 'nav': nav }) return result