V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thinkingmind
V2EX  ›  推广

你拥有会“看盘”的小盘股的“脑子”么?

  •  
  •   thinkingmind · 2016-12-20 16:50:42 +08:00 · 1616 次点击
    这是一个创建于 2877 天前的主题,其中的信息可能已经有所发展或是发生改变。

    点此查看你想要的干活来源

    基本情况如图。具体地:

    1. 发现有一个不等号反了。。。。
    2. 发现看盘代码段没有放在循环里面,现在修正了。。
    3. 加了一个 punishment 参量 Markdown

    怎么办好激动啊 23333333

    本来想说“这次代码就不放啦”这样的,但想了想觉得之前一直是给大家看的现在藏起来也不太好。。。跪求不要用来刷 Rq 的竞赛,然后帖子也好策略也好如需商用可以找我联系。。。我这么好说话

    另外就是继续求明年暑假的 intern 或者 research position 。。绝望地悲伤地(๑°ㅁ°๑)

    更新 6 :

    终于搞定了!啊!让我激动一下。。是的就在几天前我发现更新 6 之前的所有策略都犯了同一个问题,那就是我在做的事情变成了每天用静态数据(模型的训练数据中的最后一个字段)来预测交易日的收盘价。这!怎!么!可!能!会!有!用!嘛!

    但是事实是这个奇奇怪怪的静态预测(好吧也不是很“静态”,毕竟每三个月建一次模。。辛苦回测服雾气了)年化出奇的高,回撤出奇的低, sharpe 出奇的大。。。所以我觉得它一定有它的道理在里面的!是的一定是这样的!(•’╻’• ۶)۶

    。。。但考虑到那估计得另开一个帖子了,本着实事求是的原则我还是(几乎)整体检查并改写了原代码,这次是确确实实按我原来的意旨来的!但亲生的儿子年化比垃圾桶捡来的低了一大截。。。回撤倒还不错。。。 sharpe 就呵呵了

    总之,代码已更新,这次是严格照原定思路交易的,回测结果是

    回测区间 回测年化收益 基准年化收益 Sharpe 最大回撤 初始资金 2013 年 1 月 1 日 - 2016 年 12 月 1 日 61.364% 9.082% 2.5166 -16.74% 100,000

    更新 5 :

    在好心人的帮助下意识到存在幸存者 bias 的问题,修正了。嘿!改正错误之后年化就低了一点点回撤没怎么变,还好还好。。。。。。。然后不知道怎么回事自己就发现了另一个严重的 bug 。。。。这很严重我要忏悔。。不是未来数据所以这么高的夏普倒没有什么问题。。。。。。说不好改正之后策略的效果会更好。。。反正现在越看越奇怪。。。(; ·_·)ノ 天哪我对不起大家我这就去把他给 de 了。。。。。修正版会尽快取代现在的代码版本,到时候也会在评论的最新楼里贴截图

    更新 4 :

    见评论区。。加了一个小 trick

    更新 3 :

    把一些数据放在最前面是不是比较好:(初始资金: 1,000,000 )

    以上是一些比较正经的回测,下面是我脑抽点开的不正经的回测:

    去年下半年的股灾好可怕!把股灾拿走吧。。。

    好多票都说“超过当前 25%”什么的。。是钱太多了吗。。。也对,明明拿十万炒股比较符合我的气直吧(微笑)

    然后我又试了一下拿一万块钱炒股的感觉。。。。。。。。。。

    更新 2 :

    对 ST 进行了筛选,并且发现了一些小 bug 。修正后收益缩水了一点点,但策略的表现更稳定了。然而欣泰电气。。。。 hhhhh 我真的拿他没办法最大回撤就是他了

    更新 1 :

    下面说明一下策略的思路。

    核心算法用四个字概括的确就是“神经网络”,但其实初衷,或者说启发性的思想归根到底还是我发的第一篇策略,即小盘股。小盘股可以“炒”(炒概念,比如壳价值这种概念),但另一个角度也可以“做”。“炒”这个动作,其时代特色、进出时点太玄学(至少在我这种菜看来。。),很有可能过了几年策略就会完全反向。但“做”不一样。相对于大盘股、中盘股,小盘股容易做得多,原因其实很简单:盘子小了,庄容易控。而庄本质上是人,而且是数量较少的人,所以操作也好、偏好也好,规律性就比较强了。这是我的一个假设,所有接下去的策略都建立在这个假设之上。

    概括地说,是三个小点:

    1. 庄家处于较好的控盘状态,几乎不受干扰;
    2. 庄家的轮换几乎不会发生,即控盘者是一致的;
    3. 控盘者的操盘习惯很固定。 接下来的事情就很简单了,每三个月选取 context.num 只盘子最小的股(这边最好加一个 tickers 的 validity 的筛选,我懒得加了。。),然后读取她们过去 25 周的 [收盘,高位,低位,交易量] 的数据,放在一个 list of DataFrame 里面(这边数据最好 normalize 一下,但也被我懒掉了。。。。。)。接下来用这个 list 的每一项训练一个 model ,总共得到 context.num 个 model 。建模就到这里结束了。不要问我为什么是 25 。

    然后就是每天一次的交易。每天开盘后 1 分钟读分钟收盘价,用前一天的 [收盘,高位,低位,交易量] 预测当天收盘价,用两者比值决定现在要不要买。一直这样交易三个月,然后换票重新建模。这里有一个我之前遗漏了的问题(详情可以对比不会看盘但是有脑子的小盘股),即假设中的第一点。这个第一点其实我最开始的时候并没有考虑周全,因为我下意识觉得盘子小了庄自然一直处于良好的控盘状态,除非盘子变大。这里其实有一个 bug ,就是股灾。股灾之下恐慌情绪高涨,不仅小盘股中几乎可以忽略的游散会恐慌,庄也会恐慌(毕竟庄不可能只有这一个仓位)。面对千股跌停这种开挂一样的存在所有人都吓尿了,操作的规律性荡然无存,用历史数据训练的模型自然不再适用。所以这里 trade 函数里,我加上了一段监测大盘走势的代码。

    所以就刚得过股灾了 hhhhhhh 。

    最后补充一句:

    做神经网络建议用 keras 库不要像我用 pybrain ,后者已经停更好多年了。我只是懒。。因为 pybrain 的 api 简单。。。。੯ੁૂ‧̀͡u

    好吧再补充几句。。。。

    除了筛选 ST 退市股票的那个程序段欢迎大家随意使用外,整个策略的其他部分请勿私自擅作商用(或者 Rq 比赛用 T. T 泪崩,,我刚刚才意识到自己公开了什么)。。。还有就是,本人正在无比真诚地找暑期实习或者暑期科研 2333333

    Allen Frostline

    不定期说不好会更新 点此查看你想要的干活来源

    1 条回复    2016-12-20 19:19:49 +08:00
    guanaco
        1
    guanaco  
       2016-12-20 19:19:49 +08:00 via iPhone
    只能适合主力拉升,坚决不出货的。想想怎么挖韭菜根吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1237 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:09 · PVG 07:09 · LAX 15:09 · JFK 18:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.