如何在多项式中表示股票价值



我正在做一个遗传算法项目,我们需要构建一个根据股票历史选择股票的软件。我们需要在基因编程上做这件事,这意味着我们需要一个适应度函数和一个染色体。是的,我通过股票的巨大历史和它的实际价值之间的正差异来思考适合度函数。(因此,如果匹配,则为0)。有人知道如何表达染色体吗?

这个问题似乎没有定义好。如果你知道股票的实际价值,你提到的适应度函数会让你选择价格徘徊在实际价值附近的股票。其他可能性:

第一种情况:你试图根据历史表现选择一组最有前景的股票,即最大化预期回报和/或最小化方差/风险。如果可以选择的股票数量不多,最简单的选择是有一个二进制字符串:0表示没有选择,1表示有选择。该位置对应于股票的指数。如果你有大量可能的股票可供选择,你可以将股票的标签/指数编码为你的染色体。如果你对要选择的股票数量没有最大上限,这可能意味着一条可变长度的染色体,而且编码起来会更困难。

适合度函数(要最大化)将是所选股票的(预期收益-标准差)之和。预期回报可以用两种方式来表示:预期未来价格-当前价格,或者当前价格-基础价值(如果你知道基础价值的话)。预期的未来价格可以根据历史数据进行估计(例如,拟合您选择的简单曲线,或应用ARIMA并扩展到下一个时间点)。标准偏差可以直接从历史数据中估算出来。

如果你的染色体是二进制的(值为0/1),一旦你有了预期的回报和标准偏差,一个简单的点积就可以完成所需的计算。我想选择的股票数量可能也有上限,在这种情况下,你会遇到一个约束优化问题。您可以将约束表示为适应度中的惩罚。

这个问题本质上是一个二进制整数线性程序(BILP),您可以将GA与其他BILP求解器进行比较。使用一个不错的混合整数线性规划求解器(例如symphony、gurobi、ibm-cplex等),通常可以比使用GA更快地解决大型问题。

第二种情况:你试图找到以当前价格购买多少股票,以最大限度地提高预期回报。这里的染色体是非负整数,除非你想表示短路。适合度仍与第(1)项相同,即选定股票的价格之和,随时间平均,减去选定股票的历史价格随时间的标准差。这个问题变成了一个整数线性规划问题。其他内容与第(1)项相同。同样,如果你可以选择的股票数量很大,你会发现MILP求解器会比GA更好地为你服务。

此外,GP(遗传程序设计)与GA有很大的不同。如果你试图发展一种选股策略,或者一种预测未来股价的表达式,你实际上是一个GP。对于选股问题,一个ga wld就足够了。

最新更新