gpt4 book ai didi

python - 如何在 Python 中回测策略

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:47 24 4
gpt4 key购买 nike

我需要能够通过指示每笔交易的盈利或亏损来确定特定“交易”(由“信号”表示)是盈利还是亏损。

我需要 Python 检查高低列表(列表: signal 或入口点或日期 + 1)中的下一个位置( close >、 highs lows 将具有相同数量的值),表示在输入之后的某个时间点,值增加等于或大于 2.5%信号。

但是,我还希望 Python 确定该值在升值 2.5% 或更多之前是否下降了 3% 或更多。

这必须对 signal 中的每个条目发生.

本质上,我需要在 102.5% 的价位卖出,在 97% 的价位止损。

不幸的是,到目前为止我开发的代码似乎无法正常工作。

我错过了什么?

signals = [1,5,7]
close = [5,10,10,10.5,11,12,11.9,14,14,15,16]
highs = [7,10.2,10.1,11,12,12.1,12.2,14.5,18,19,20]
lows = [4,9.9,9.8,10,10,11.8,11.8,12,13.8,13.85,14]

for i in signals:
entry = close[i]
print i
for high in highs[i+1:]:
profit = ( ( high - entry ) / entry ) * 100
for low in lows[i+1:]:
loss = ( ( low - entry ) / entry ) * 100
if abs( loss ) < 3:
if profit >= 2.5:
print 'Win'
else:
print 'Loss'

最佳答案

您的利润仅针对highs[-1]计算,而loss仅针对lows[-1]<计算。当您在每个循环中替换 profitloss 时,其他所有内容都将被丢弃。

您想找到条件为真的值。使用 zip将低点和高点放在一起:

for i in signals:
entry = float(close[i])
for high, low in zip(high[i + 1:], low[i + 1:]):
profit = ((high - entry) / entry) * 100
loss = ((low - entry) / entry) * 100
if loss > -3:
if profit >= 2.5:
print "Win"
else:
print "Loss"

关于python - 如何在 Python 中回测策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com