ice_tea 发表于 2017-6-24 12:12 AM
当年我做connect 4,就用个recursive的function call。
赢了老师的connect 4, 就算A
>>>"...赢了老师的connect 4, 就算A. 盈透老大的算法,俺都看不懂啊"
>>>"九天 connect 4是什么,一头雾水 发表于 2017-6-24 01:51 AM"
我的股票交易模型是由四子棋算法演变过来的。
屏風式四子棋(Connect4)的标准棋盘是一个6行7列共42个位置的竖直摆放着的盒子。
对弈双方轮流从上方7列开口处选择一列,放下自己以颜色区分的棋子。
横、竖、斜任何一个方向,当同样颜色的棋子连接成四个时,赢。
游戏规则见:https://en.wikipedia.org/wiki/Connect_Four
计算机能够和人下棋的关键就是算法。
解决四子棋,可以被看作是在决策树中找到最佳路径,其中每个节点都是一个Position。
下棋双方的每一步棋都是想把自己的利益最大化,相反,对手的下一手棋的目的是使你的利益最小化,这就是MinMax算法的来源。
MinMax是一个递归迭代算法。不知道 ice_tea 赢了老师的connect 4是不是 这个MinMax算法?
假如决策树能够递归到底,走到最后一手棋,那么问题就得到的完全解决。问题是小小的 6x7的一个 矩阵,却有 四万亿种走法, 不知道 ice_tea是如何解决的。
我“发明”了个连通函数法: 对任何一个状态上的一个顶部位置空位,这个位置向各个方向伸展,数一数已经有几个能连接通,和几个潜在的连通位,根据连通位的长短和多少评分,加和,选择得分最高的。
评分规则大概是三连通串比二连通串得分高,二连通串比孤子得分高,没有可能发展成四连通的任何串不得分。把这个评分规则量化,变成一个多项式函数,系数待定。
然后,从网上或书上查到一些案例,让机器学习,确定系数的数值。如果这个函数能让10个案例通过,在实际随机测试中,正确率可达到80%。
自动交易模型也是一样的道理,首先制定 一套 评分规则,这些规则相互关联,形成多维(Lyapunov)函数 ,具备自治动力系统稳定性,然后,利用历史交易数据,训练交易系统,使利益最大化,确立关联强度等系数。如果收益稳定满意,就可以用于实盘交易。 |