注意:我尝试了许多不同的策略,其中大多数表现非常糟糕或不一致。废弃的策略位于archived/文件夹中以供参考(我有时会将其中的片段剪切并粘贴到新策略中)。. v; T& R0 ^$ T+ Y; z% [' w
我目前专注于围绕以下几种方法之一的策略:
) S5 V* g; }! c* j& @8 i7 ]5 g; X5 B9 v
- 创建预期行为的模型并将其与实际行为进行比较。如果模型预测价格较高(高于一定幅度),则买入;如果模型预测价格较低,则卖出。有一些变体使用离散小波变换 (DWT)、快速傅立叶变换 (FFT) 和卡尔曼滤波器。DWT 变体似乎表现最好(并且速度最快)。
7 C& z6 }/ N8 _ P: I X - 使用主成分分析 (PCA) 来减少数据框列的维度,然后使用它来训练分类器,然后使用分类器来预测买卖。PCA 分析非常酷,因为您只需添加指标,然后让 PCA 缩减找出其中哪些指标实际上很重要。请注意,这与freqAI5 c V: Y. B z3 b9 j: i
的方法非常相似,但我在知道这一点之前就开始了它,所以继续下去(因为我发现它很有趣)。 所有 PCA 逻辑都包含在名为 PCA 的基类中。有几种变体(以 PCA_ 为前缀)尝试不同的方法来识别用于训练分类器的买入/卖出信号。
: Y3 X- h8 U1 ~% J- M2 e1 ^- I - 使用神经网络创建返回买入/卖出预测的三元分类器。0 F w! _& n1 i
逻辑与PCA类非常相似,基类是NNTC(神经网络三元分类器)。内部结构稍微复杂一些,因为神经网络代码使用“张量”而不是数据帧。这些必须经过长时间的培训,否则就没有足够的购买/销售。模型保存在 models/ 目录中,如果存在则将使用。
+ f- @" @8 v, C- a - 神经网络预测模型 (NNPredict_*.py)
5 K! J4 ?; Y+ A7 K. `# s与 NNBC 类似,但预测实际价格,而不是买入/卖出建议。与 NNBC 相同的问题
& z' e& Z1 X$ Z8 o, X2 }! { - 异常检测 (Anomaly.py)
- X k: I* {; B, S, X: W% b+ V使用神经网络的主要问题是相对于样本数量(通常约为 1%)而言,没有太多的买入/卖出建议。这种方法通过对历史数据进行训练来使用各种异常检测算法,这将主要对正常情况(不买入或卖出)进行建模。然后我们根据实际数据运行它,任何被识别为“异常”的东西都应该是买入或卖出。
( x+ D3 U4 j6 \我还将其与各种压缩技术(例如 PCA)相结合,以使异常检测算法更加高效。) k9 c/ Y- }' N ]+ l x3 R* `4 p
对于使用神经网络的方法(通常在名称中带有“NN”),我已开始保存并重新加载模型,这些模型位于交换文件夹的models/子目录中。这些是通过 长时间运行回测而创建的,然后在任何其他模式(hyperopt、plot、dryrun 等)中加载和重用- N) _0 \+ T0 V& {6 A5 G
所有这些策略都使用 Solipsis 策略(由 werkrew 编写)中的自定义卖出/止损方法。这在性能上产生了巨大的差异,但缺点是每种策略都需要大量的超级选择才能获得不错的性能。另外,我怀疑自定义止损代码过度拟合,因为它对性能有如此巨大的影响,并且因为它在空运行中似乎不以相同的方式工作。
2 ?! F, @$ F+ z$ L5 T我目前正在尝试找到一种更简单的自定义止损方法,可以更好地转移到实际环境中(查看 Anomaly.py)
. z% |; u! G* Y& J, M免责声明$ ]/ I ]7 T. {( k" I
( H6 s0 ?, ?7 D s# j4 R, @) _- @
这些策略仅用于教育目的% W; p# q' ]0 M6 N, S2 b/ c
不要拿您害怕损失的钱去冒险。使用该软件的风险由您自行承担。作者和所有附属机构对您的交易结果不承担任何责任。: l/ f4 }) U. P- S
始终首先使用回溯测试来测试策略,然后在试运行模式下运行交易机器人(实时数据但模拟交易)。下面提供了有关如何执行此操作的一些说明。 永远
9 U( }- m( A: Y. ]2 U' ?- u4 F+ r6 K不要在没有经过试运行的情况下进行实时交易 - 策略在回溯测试中取得出色的结果,但在实时情况下表现却非常糟糕,这种情况并不罕见。造成这种情况的主要原因是回测模拟无法重现真实环境的行为。例如,实际交易需要相对较长的时间,并且价格在此期间可能会大幅波动。此外,交易量、点差、波动性等市场状况无法从交易所提供的历史数据中重现3 N5 o5 T1 a0 x$ [- [& h/ |1 v
在了解资金如何运作以及您应该预期的利润/损失之前,请勿投入资金。另外,不要在巨大增长时期(例如 2020 年)对策略进行回测,因为此时任何策略都会表现良好 |