文章 "在Python中使用Numba对交易策略进行快速测试" - 页 6

 
bestvishes #:
你好,格言,我认为你是论坛上最聪明的人,我希望能在第二篇文章中看到详细的描述。 谢谢。

谢谢您的夸奖,我会努力为您写一些有趣的东西。

 
def get_prices() -> pd.DataFrame
尝试
# 加载逗号分隔的 CSV 文件
p = pd.read_csv(f"files/{hyper_params['symbol']}.csv")

# 检查必填列
required_columns = ['time', 'close'] # 检查必填
for col in required_columns
if col not in p.columns
raise KeyError(f"文件中缺少'{col}'。")

# 将 "时间 "列转换为日期格式
p ['time'] = pd.to_datetime(p['time'], errors='coerce')

# 设置时间索引
p. set_index('time', inplace=True)

# 只保留 "关闭 "列,删除数据不正确的行
pFixed = p[[[close]].dropna()

返回 pFixed
except Exception as e
print(f"处理数据时出错: {e}")
return pd.DataFrame() # 如果出现错误,返回空 DataFrame
附加的文件:
export_mt5.py  2 kb
 

我有一些时间,几乎在一个瓶子里完成了模型训练和超参数优化。

这样就可以同时训练许多模型,然后对它们进行优化,例如,选择具有最佳优化参数的最佳模型:

models = []
for i in range(20):
    print(f'Iteration: {i}')
    models.append(learnANDoptimize())

models.sort(key=lambda x: x[0][0]['score'])


index = -1
test_model(models[index][0][0]['dataframe'],
            [models[index][-1]],
            hyper_params['stop_loss'],
            hyper_params['take_profit'],
            hyper_params['forward'],
            hyper_params['backward'],
            hyper_params['markup'],
            True)

并输出结果。

然后,模型就能以最优超参数输出到终端。或者使用终端优化器本身。

我稍后会开始写这篇文章,我还没忘。