遗传算法(GA) 和遗传编程(GP) 是有趣的研究领域。
我想了解您使用 GA/GP 解决的具体问题,以及如果您没有自己开发,您使用了哪些库/框架。
问题:
我正在寻找第一手经验,所以除非你有,否则请不要回答。
不是 家庭作业。
作为一名专业程序员(1995 年),我的第一份工作是为 S&P500 期货编写一个基于遗传算法的自动交易系统。该应用程序是用 Visual Basic 3 [!] 编写的,我不知道当时我是怎么做的,因为 VB3 甚至没有类。
该应用程序从一组随机生成的固定长度字符串(“基因”部分)开始,每个字符串对应于标准普尔 500 期货每分钟价格数据中的特定形状以及特定订单(买入或卖出)以及止损和止盈金额。每个字符串(或“基因”)都通过运行 3 年的历史数据来评估其利润表现;每当指定的“形状”与历史数据匹配时,我都会假设相应的买入或卖出订单并评估交易结果。我添加了一个警告,即每个基因都以固定金额开始,因此可能会破产并完全从基因库中删除。
在对种群进行每次评估后,幸存者被随机杂交(仅混合来自两个父母的位),一个基因被选为父母的可能性与其产生的利润成正比。我还添加了点突变的可能性来增加一些趣味性。在这样的几百代之后,我最终得到了一组基因,这些基因可以将 5000 美元变成平均约 10000 美元,而没有死亡/破碎的机会(当然,根据历史数据)。
不幸的是,我从来没有机会现场使用这个系统,因为我的老板在不到 3 个月的时间里以传统方式交易损失了近 100,000 美元,他失去了继续这个项目的意愿。回想起来,我认为该系统会获得巨额利润——不是因为我一定做对了任何事情,而是因为我产生的基因群体恰好偏向于买单(而不是卖单)大约 5: 1个比率。正如我们以 20/20 的后见之明所知道的那样,市场在 1995 年之后略有上涨。