Python美股量化交易填坑记录——13a.Vegas隧道交易机器人

目录

1.背景和目标

2.算法介绍

3.机器人参数

4.实盘测试(进行中)

第1天实盘:10月6日,周三

第2天实盘:10月7日,周四

第3天实盘:10月8日,周五

第4天实盘:10月11日,周一

第5天实盘:10月12日,周二

第6天实盘:10月13日,周三

第7天实盘:10月14日,周四

第8天实盘:10月15日,周五

5.围观链接


该系列原发表于知乎(ChristopherShen - 知乎),但最近知乎删我文章,还不给理由,就转移来CSDN了。

1.背景和目标

上一次编写和使用小蓓机器人后,积累了一些对接实盘交易接口的经验,同时也坚定了我寻找完全自动化交易算法的决心。

跟一些朋友交流之后,得到了一些量化的思路,其中最易实现的应该是“隧道交易法”,只需2条ema即可,于是决定先编写隧道交易机器人。

2.算法介绍

据这位朋友介绍,隧道交易法出自于youtuber:金老师的看盘室

金老师讲解视频:

https://youtu.be/vu2ipEjClQc

金老师的讲解非常清晰!根据金老师的方法,我首先在TradingView上编写了pine脚本:

https://cn.tradingview.com/script/s6lXtVqy/

抽查了一些case,感觉效果很好,比如下图的SPY日线:8次预测(5次做多、3次做空),7次正确!(红线是止损线,绿线是按盈亏比1:1设置的止盈线)

算法原理如下:(摘自我的TradingView

这是一套完全根据均线进行交易的指标体系,属于右侧交易,思路如下:

1 基本趋势(大趋势)

短期均线高于长期均线时,是上涨趋势;反之,是下降趋势。

暂定短期均线为ema12,长期均线为ema169

2 第一种买入点(或做空点):趋势确立

从上涨趋势确立的那根bar开始,第一个出头的bar,是第一买入点。(出头,是指收盘价高于开盘价,且高于前一根bar的高点)

从下降趋势确立的那根bar开始,第一个落尾的bar,是第一做空点。(落尾,是指收盘价低于开盘价,且低于前一根bar的低点)

3 第二种买入点(或做空点):拉回时的买入点(或反弹时的做空点)

拉回时(回调时)的买入点,是指大趋势是上涨,但小趋势是下跌,当明确下跌结束时,可以买入。

这里需要定义2个概念:拉回(回调)下跌结束。拉回的定义是,大趋势是上涨时,bar跌破长期均线,此时短期均线仍高于长期均线;下跌结束的定义是,出头且ema12在上升。

同理可知什么是反弹时的做空点

大趋势是下跌,但小趋势是上涨,当明确上涨结束时,可以做空。

(4) 止损位和止盈位的设置

做多时:

止损位:买入点前一根bar的低点。

止盈位:止损位确定后,按盈亏比1:1确定止盈位。(默认值为1,用户可以修改)

做空时:

止损位:买入点前一根bar的高点。

止盈位:止损位确定后,按盈亏比1:1确定止盈位。(默认值为1,用户可以修改)

3.机器人参数

实盘做起来之后,发现还是有一些难点和细节需要敲定,同时也是日后迭代可以改进的地方:

  1. 止盈位如何确定?除了确定暂时先使用盈亏比1:1外,还加入了“移动止盈”功能,或叫追踪卖出,这一功能的本意是:为了防止卖飞,达到止盈位时不立即平仓,而是准备下一个止损单,止损价比最高价(建仓以来)低一点。我目前的参数是:离止盈位还差0.2%时开启移动止盈,移动比例(追踪比例是0.3%),即盈亏比最低值为0.5:1。这么设计也是经验之谈,看到了一些case,离止盈位就差一点,就趋势反转,止盈变止损。
  2. 等候天数如何确定?(是否允许过夜?)暂定为不过夜,经验之谈,对隔夜的跳空低开有阴影。
  3. 如何结束交易?若股价到达止损位或止盈位(移动止盈),则正常结束;但若一直未达到,则:收盘前10分钟市价清仓
  4. 资金(仓位)如何分配?暂定:交给机器人1w刀,每只股票可用1k刀,即最多同时入场10只股票。弊端:第11信号出现时不能入场;股价超过1000刀的股票不予考虑(如亚马逊和谷歌)。
  5. 是否包括盘前盘后交易?不包括,因为盘前盘后不能下市价单,市价单可以保证买入卖出一定成功。
  6. bar未走完时的信号采用吗?不采用。见到一些case是bar未走完就出信号了,等bar走完信号消失,这种信号不稳定。最简单的例子就是刚开盘5分钟时猛涨,以为这根bar是阳线,等30分钟走完,变成阴线了。弊端是可能会错失较好的入场位,比如信号出现的bar猛涨,之后的bar也猛涨。

4.实盘测试(进行中)

隧道交易法,我个人感觉有一个弊端,就是信号比较少,而且持股时间不能太短,为了解决这个问题,我实盘时使用了30分钟K线,而且选股范围扩大为每日成交额的top200。

经模拟盘测试,每日信号较多,所以我过滤掉了做空信号(也担心券商对某些股票不支持做空)。

第1天实盘:10月6日,周三

前半个交易日bug不断,错失了一些信号,后半日较为稳定。

本金1w刀,收益5.86刀。

 主要是UVXY和UPST亏的较多!

其中UPST就是连涨2根bar的情况,所以成本略高。

UVXY则是均线缠绕,导致TradingView和机器人的计算结果不一致,之后多积累一些case,看看此类情况该如何过滤掉。

第2天实盘:10月7日,周四

共交易43只股票(表太长,这里就不列出了),最终亏损37

因信号较多,所以机器人额度从1w增加到1.5w。

机器人自己记录的情况是亏损31刀,差异的原因是:机器人记录的是市价,而且一般延迟10秒左右,人工统计的是实际成交价(市价单),市价单在金额上不是那么优惠。

反思和改进:

bug1

未走完的bar产生的信号,如最后一根bar(15:30-16:00)产生的信号:5单里亏损4单。

而且这是之前就已经改进的点,现在又出现!明显有bug!

检查后,发现是上次修改(盘中无限循环跑→每根bar结束时跑)时没注意到的一个连锁反应。

更正后,还优化了显示问题(排序和序号)。

止损共22单,其中18单(亏损37刀)都存在bug1。

止盈共10单,其中2单存在bug1。

尾盘平仓共11单,其中5单存在bug1。

bug2

有计算误差的信号(K线有误),即python机器人计算结果与TradingView差异较大的信号。

比如:CLF,TradingView认为13:30开始的bar才是long1信号(起涨点做多),但机器人认为是前一根(13:00-13:30),即机器人认为前一根是阳线 且 出头。

阳线算错了还能理解,因为这根bar(13:00-13:30)是十字星,开盘价和收盘价都是20.82(TradingView);富途的结果更精准:开盘价=20.820、收盘价=20.818,是阴线;机器人的结果是:开盘价=20.81、收盘价=20.84,是阳线。

出头算错则误差太大!因为前一根bar(12:30-13:00)的高点是20.86(TradingView)、20.859(富途),机器人结果是20.78!难道是行情机器人(无限循环查询市价)有误?查看其记录的价格csv文件,发现这一段时间的最高点是20.855(12:40:49和12:40:55两次记录)。

本地逐行代码地跑了一遍,问题也不能复现,所以,要么是当时的市价csv有问题,要么是当时的python计算有问题。

这种最基础的计算出现如此大的误差,不能原谅!但现在找不到原因,也只好暂时作罢。如果之后发现此类问题负面影响太大,那可以考虑将行情源从TD查询换为TD订阅,或者换为富途(曾短暂使用,放弃原因是太贵而且有订阅数量限制)。

无bug1的止损单共4单,其中3单存在bug2。

此类case还有:

TWTR 10:30-11:00,收盘价=63.645,正确值=63.93(TradingView)。

无bug1和bug2的止损单,仅1单:MDY。

另有一处可以改进的地方:

既然是日内交易,那么以昨天的低点为止损线就不太合适了,尤其是跳空高开的时候,如GS:

类似的还有ENPH和MTCH。

所以,将第一根bar(9:30-10:00)产生的信号的止损线,改为这根bar的低点,而非前低。

第3天实盘:10月8日,周五

本日交易15笔(一次买入+一次卖出=一笔),共亏损16刀,本金1.5w。

前半个交易日因为K线数据有误而荒废,且原因未知(我真是太菜了),猜测可能是因为W底机器人本日上线,两个机器人有某种冲突吧。

后半个交易日恢复正常,所以交易笔数略少:

分类总结与反思:

止损5笔:(亏损22刀)

  1. XLU:起涨点后第15根bar才发出long1信号,改进措施:起涨点后5根bar外的long1信号舍弃,因为说明涨势不强!同理应用到回调点和回调结束点,即long2信号,以及short1和2信号。
  2. ATVI:long2信号晚了一根bar,原因是K线有误:12:00-12:30的收盘价应该是78.06,但机器人记录的是77.75,所以小于前高77.80,不认为是出头。如何改进?该股票本日之前的K线收盘价都误差较小,唯独从此bar开始误差变大,原因不明。改进措施:发现开盘价误差较小,所以:非隔日bar时,当发现此bar开盘价与上一个bar收盘价相差>=0.1%时,此bar开盘价赋值给上一个bar 的收盘价。弊端:只能用于修改历史数据,对还没走完的bar无用,好在隧道机器人不看没走完的bar的信号。
  3. LVS:无明显bug,算法认栽!
  4. TNA:K线有误。类似ATVI。
  5. PG:K线有误。类似ATVI。

止盈3笔:(盈利6刀)

  1. XLP:与算法预测一致,典型正例,算法牛逼!
  2. NKE:因K线有误(误差较小,可接受),所以抢先一根bar进场做多,未到1倍止盈位,但按计划移动止盈,还行。
  3. COST:典型负例,算法认栽!好在是到了移动止盈位以后才调头向下的,最后不赔不赚。

尾盘平仓7笔:(不赔不赚)

  1. FAST:差一点到移动止盈开始位,半个正例,算法认栽!一个意外发现:14:00-14:30又出了一个long2的信号,但因为已经不是成交额top200,所以没有记录和交易。
  2. EEM:起涨点后第7根出头,信号质量较差,之后过滤此类信号。
  3. VWO:类似EEM,劣质信号。
  4. GS:无明显bug,而且值得研究,如下图所示,似乎可以考虑过滤掉这样一类信号:起涨后没多久就回调,即增长期短于回调期,说明涨势不强。先留个心眼,以后多积累一些样本再决定。

  1. UPST:类似EEM,劣质信号。
  2. HD:类似EEM,劣质信号,且K线有误。
  3. LOW:类似EEM,劣质信号,且K线有误。

第4天实盘:10月11日,周一

共收到做多信号29个(目前只处理做多信号),因仓位有限(最多同时入场10只票),所以前前后后共入场22只票。最终亏损105,是实盘测试以来亏损最多的一天!

而且,券商也让我闹心:昨晚盘中机器人突然报告买入和卖出失败,于是我手动操作,发现确实无法交易!赶紧联系尊嘉证券的工作人员,对方解释说今日是美股“半日市”,美东时间13点以后属于盘后交易,不能再用市价单了,让我等待他们修复这个问题。14点左右时通知我再试,正常。

止损9单,亏损90刀!

  1. SPY:K线有轻微误差,但可以接受,主要问题是开盘后第一根bar跌破ema169后迅速反弹,符合机器人对“有回调,且回调已结束”的定义,然后首bar结束后,机器人进场。没想到第二根bar轻轻涨了一点之后,第三根bar开始下跌,之后迅速跌破止损位!算是典型负例,算法认栽!改进措施:一个思路是,产生信号之前,有太多的bar在ema12之下,可能说明这个信号质量不佳。之后注意收集case,验证这个思路的有效性。
  2. IWM:类似SPY,入场晚,离移动止盈开始位还差一点,掉头向下,跌破止损位!
  3. VOO:类似SPY,主要涨幅都在第一根bar上,第二根bar才进场就已经晚了。
  4. IVV:类似SPY。
  5. SPXL:类似SPY。
  6. TNA:类似SPY。
  7. UPRO:类似SPY。
  8. INTC:类似SPY,且形态更差,之前有多根bar在ema169之下。
  9. CVS:类似SPY,且形态更差,第二根bar就开始下跌了。

止盈1单,盈利38刀。

  1. SOFI:典型long1正例,高开高走,顺利达到移动止盈位,而且之后也基本企稳,不存在卖飞的情况,是机器人非常喜欢的形态!

尾盘平仓12单,亏损53刀。

  1. XLK:类似SPY,只不过没跌倒止损位,所以耗到了尾盘。
  2. CLF:类似XLK。
  3. LOW:类似XLK,且离移动止盈开始位很近了。
  4. DAL:类似XLK,且离移动止盈开始位很近了。
  5. AVGO:类似XLK。
  6. AAPL:类似XLK。
  7. UPST:类似XLK,其实已到移动止盈位,但因为超出不多,在K线误差的影响下未识别到。
  8. GE:类似XLK。
  9. ZS:类似XLK。
  10. RIOT:类似XLK,且离移动止盈开始位很近了。
  11. SQQQ:从K线形态来说应该是盈利的一单,但诡异的是:13:30出的信号,临近尾盘才入场,导致入场价过高。原因可能是没仓位了,导致SQQQ一直排队等待,一直等到尾盘平仓时才有空位可以入场,入场后然后又迅速被机器人清场……(好不容易遇到个典型正例,结果一直排队无法入场!)
  12. VALE:15:00走完的bar出了long2信号,时间太短,不好评价是正例还是负例。

小结:

今日大盘形态刚好是隧道机器人的克星!先出一根大阳棒,符合long2或long1信号定义,把机器人骗进来,然后关门打狗!几根阴线迅速打到止损位。

应对措施:

  1. 治本:改进算法,甄别信号质量。目前机器人对于大趋势的判断只有涨和跌两种,对于震荡市没有定义。涨势之中,近期多根bar在ema12之下,甚至在ema169之下,说明涨势动力不足,此时产生的信号,质量不佳。这个改起来伤筋动骨,先缓议。
  2. 治标:减少止盈比例,让部分信号有机会落袋为安;减少止损比例,让无法止盈的信号不至于亏太多。这个改起来容易,可以马上实施。所以,从下一交易日开始,止盈和止损比例缩短一半,盈亏比仍为1:1;而且移动止盈开始位=止盈位。

第5天实盘:10月12日,周二

发现做多信号28个,入场23个,共亏损8刀。

止损11单,亏损28刀!

  1. ABNB:第一根bar出long2信号(K线有一定误差,可以接受),主要问题是出场太快:10:12入场、10:16出场,原因是止损比例太低,稍一震荡,就被震出去了。如果仍然以前一根bar的低点作为止损位,则可以撑到移动止盈开始。可能昨天缩小止损比例的做法有些片面,如何区别处理这些不同的case确实头疼!如果昨天不改止损和止盈比例的话,今日ABNB是能到1倍止盈位的!一个折中的思路:止损比例仍为1倍,移动止盈开始比例改为0.5,乍看之下是盈亏比为1:2,但止盈是移动止盈,或许没那么糟。
  2. XLP:类似ABNB,也是个“快男”,10:12入场、10:13出场!原因相同:止损太窄。短暂能到1倍止盈位,所以0.5倍开始移动止盈不错。
  3. DAL:入场后隔了一根bar,出现大阴棒,到了止损位。如果回复1倍止损位,则不会那么快出场,但由于其后也没能到0.5倍止盈位,所以应该会等到尾盘清仓,最后一根bar打到1倍止损位。这种case不太好处理,除非止损位恢复1倍的同时,止盈位降到0.5倍以下。从根本原因来说,还是老问题:震荡市如何识别,这个caseEMA12EMA169缠绕有点严重,判断为上涨趋势或下跌趋势都不合适。量化方式,可以考虑:108-12日,大趋势(上涨/下跌)变换了4
  4. NEM:典型负例,一入场就开始跌,似乎是隧道机器人的克星。根本原因类似DAL:107-12日,大趋势(上涨/下跌)变换了5
  5. INFO:本来是典型正例,但入场太晚(可能是在排队等仓位吧,也可能是我中途将成交额从top200增加到top300导致的),导致涨破止盈位后才入场,最后止损离场!算不算震荡市呢?10月7-12日,大趋势(上涨/下跌)变换了3次!10月8-12日,大趋势(上涨/下跌)变换了2次!暂定一个震荡市定义:之前3个交易日,大趋势变换次数>=3。改进措施:入场的限制条件加一个:今日最高点未到止盈位
  6. IGV:从TradingView来看图形是典型正例,但机器人的做多信号晚了1根bar,推测是EMA计算的误差。这有赖于机器人计算精度的整体提高,很复杂,治标的方法可以考虑增加bar数来提高EMA精度,但计算耗时会增加。考虑到目前计算比较快,决定bar数从500根增加到1000
  7. INMD:典型负例,但有一个典型特征:今日跳空高开,然后13:30的bar时才EMA12>EMA169。改进措施:出现做多信号的bar的高点,必须>=当日高点
  8. IWM:典型负例,出long1信号的bar,刚好是起涨点bar的第4根,即打了上次调整阈值的擦边球。改进措施:找做多信号的范围,从起涨点、回调点后的5bar,缩短到4。不过,在检查了指标csv文件后,发现机器人是认为这根bar就是起涨点!老问题:EMA计算精度不够。应对措施:扩展到1000根bar后看看效果再说。
  9. SNAP:典型负例,且无明显特征,暂无应对措施。
  10. SE:典型负例,且无明显特征,暂无应对措施。
  11. IJR:典型负例,long2信号,特征是:近期在EMA169之下的bar有点多,最近10根bar里面有6根低点<EMA169。即,跌破EMA169后没有迅速涨起来,而是停留了一段时间,说明EMA169的支撑作用不强。所以,改进措施:long2信号增加一个过滤条件:最近10bar里面,跌破EMA169bar,必须<=5

止盈8单,盈利15刀。

这4单是支持恢复1倍止盈位的:

  1. XLY:K线有一定误差,可以接受。主要问题是移动止盈位太低、移动止盈比例太低,所以入场4分钟后就出场了,错过了1倍止盈位!而二者太低又是因为止损比例太低,1倍止损比例仅0.26%,0.5倍仅0.13%。改进措施:暂无,因为现阶段的目标是消灭止损单,以后再来考虑如何拉伸止盈单。
  2. SNOW:与XLY有点类似,仅持股11分钟,两个原因:一是移动止盈太敏感,出场太早,错失了后面的1倍止盈位!二是中途我把成交额top200增加到top300,所以晚了1根bar入场,导致成本偏高。改进措施:标出移动止盈的绝对金额变化,为之后的改进积累一个印象。
  3. ACN:EMA有一定误差,可以接受。持股仅11分钟,原因同样是移动止盈太敏感,出场太早,错失了后面的1倍止盈位(紧随其后的bar)!
  4. SHW:持股仅18分钟,原因同样是移动止盈太敏感,出场太早,错失了后面的1倍止盈位(紧随其后的bar)!

这4单是支持维持0.5倍止盈位的:

  1. UAL:典型正例,几乎完美,入场再快些,成本应该能更低。这个case没到1倍止盈位
  2. MDLZ:一个因祸得福的正例,成交额top200增加到top300后入场,入场晚了7根bar,这反而是好事,如果紧接着long1信号入场,则第二根bar就到止损位被洗出来了。如果恢复1倍止损位的话,不会被洗出来。这个case没到1倍止盈位
  3. IYR:EMA有一定误差,可以接受。当日最高点105.41几乎刚好是移动止盈开始位105.40,如果移动止盈位再高一些,此单将变成止损单。这个case体现了当前移动止盈开始位的正确性
  4. VNQ:EMA有一定误差,可以接受。这个case没到1倍止盈位。如果移动止盈位再高一些,此单将变成止损单。这个case体现了当前移动止盈开始位的正确性

止盈单小结:止盈位1倍vs.0.5倍,现阶段我还是维持0.5倍。

尾盘平仓4单,盈利5.5刀。

  1. GOLD:一根大阳棒把机器人骗进来以后就不涨了,开始下跌,好在没跌倒止损位。而且是成交额扩量以后才进来的票,所以入场时间晚,反而降低了成本,亏的不多。改进措施:2个典型特征:开盘第一根bar涨幅巨大,这个不好改进,因为不能确定后面还涨不涨,如果改成bar没走完时就入场,倒是可能蹭到一点肉,但也会打到止损位;特征2是距离拉回点隔了4根bar,之后这类信号会被过滤掉,因为拉回太慢说明支撑不强。
  2. FAST:成交额限制放开以后才来的,入场晚了,错过了止盈点。以后限制“今日最高点未到止盈位”,就不会再入场了。而且这个case支持维持0.5倍止盈位
  3. GLD:15:00的bar产生的信号,不好判断正负例。典型特征:最近10根bar里面,跌破EMA169的bar有4根!回调迟迟不结束,不是好信号。
  4. IAU:与GLD类似。

改进措施小结:

  1. bar数从500根增加到1000根。(已落实)
  2. 找做多信号的范围,从起涨点、回调点后的5根bar,缩短到4根。(已落实)
  3. 止损比例仍为1倍,移动止盈开始比例改为0.5倍。
  4. 标出移动止盈的绝对金额变化。
  5. 之前3个交易日,大趋势变换次数必须<=2次。
  6. 今日最高点未到止盈位。
  7. 出现做多信号的bar的高点,必须>=当日高点。
  8. long2信号增加一个过滤条件:最近10根bar里面,跌破EMA169的bar,必须<=3根。

第6天实盘:10月13日,周三

今日发现信号20个,入场14个,共盈利25刀。

先看排除掉的6个信号,排除是否正确?

排除类型1:未入场,今日高点已涨破止盈位,放弃入场。

  1. MSFT:开盘一根大阳棒,直接涨破止盈位296。改进措施:若要挽救的话,马后炮地说:按照狼群yoyo的建议,以出现信号的bar下降一半时为入场位,这样的话,等下午涨回来以后就能盈利了。算是被错杀的正例。但为什么它下午就肯定会涨回来呢?因为EMA12有一定的支撑作用。这个思路先存个档,等以后止损单被消灭了再来考虑。
  2. OKTA:有误差,可接受。马后炮地说:可以进场。下降一半入场,可行。但之后可能会被移动止盈震下来。类似MSFT,算是被错杀的正例
  3. WDAY:与MSFT类似的是一根大阳棒开局,涨破止盈位,而且之后连续下跌,不同的是:下午未能回到止盈位。庆幸机器人没有进场。

排除类型2:未入场,已涨破止盈位,放弃入场。

  1. GME:信号bar之后的bar猛涨,涨破止盈位,所以未入场。如果开着移动止盈入场,怕变成损失出来。马后炮:如果开着移动止盈入场,能赚到一点肉。算是被错杀的正例
  2. LIN:马后炮:进去就是山顶接盘。改进措施:若要挽救,就得信号bar未走完就马上入场。略激进,对现在的计算架构改动较大,下一阶段再考虑。

排除类型3:股价太贵。(超过1000刀的票)

  1. SHOP:马后炮:若入场,则高点离止盈位还差一点,尾盘平仓时略有盈利。放弃了也不可惜。

然后再来看入场的14个信号。

止损单:1单,亏损5刀。

看来现阶段消灭止损单的各种改进措施起了作用,不过也可能只是因为大盘昨日阳线。希望能稳定几天再说。

  1. ZM:典型负例,算法认栽!改进措施:从这个case的典型特征入手:之前长期处于下降趋势;今日开盘连续7根bar疯涨,才把EMA12拉到EMA169之上,进入上升趋势。马后炮:强弩之末。连涨Xbar以后不可入场?多积累一些case再说。

止盈单:6单,盈利25.5刀。

  1. CRWD:典型正例。马后炮:移动止盈太敏感,导致错失了之后的1倍止盈位。改进措施:计算30minATR,为移动止盈比例的设定提供参考若下降一半入场,不可行,没有入场机会。
  2. SLV:典型正例。马后炮:移动止盈太敏感,导致错失了之后的1倍止盈位。若下降一半入场,不可行,没有入场机会。
  3. TWLO:典型正例。马后炮:移动止盈太敏感,导致错失了之后的1倍止盈位。若下降一半入场,不可行,没有入场机会。
  4. TIP:K线和EMA计算有误差,导致与TradingView信号不同,好在最后成功止盈,就是利润太少。如果计算正确的话,能提前2根bar进场,即一开盘就进场,利润更多。马后炮:移动止盈太敏感,导致错失了之后的1倍止盈位。这个case的1倍止盈比例也才0.14%,再换成移动止盈比例,就更加敏感了。改进措施:对于止盈比例太低和太高的case,应有特殊处理,如把<0.1%的转成0.1%若下降一半入场,可行,跟现在的成本价差不多。
  5. VEEV:典型正例,而且支持现在的移动止盈比例设置。因为这个case没能到1倍止盈位,且得益于移动止盈设置,几乎是卖在了最高点。不过,如果改为1倍止盈的话,虽然不能止盈,但尾盘平仓的收益也跟现在差不多。若下降一半入场,可行,有1bar的机会。
  6. TGT:典型正例。马后炮:移动止盈太敏感,导致错失了之后的1倍止盈位。其实现在的出场位已经跟1倍止盈位很接近了。若下降一半入场,可行,有1bar的机会。

尾盘平仓:7单,盈利4刀。

  1. NIO:克星,开盘一根大阳棒把机器人骗进来,然后横盘,再然后下跌。改进措施:如果按yoyo的建议下降一半再入场则差不多平本出来;典型特征:之前跌破EMA169的bar很多,不过这是long2信号才看的指标,这次出的是long1,大趋势变换近期只有2次,刚好能通过之前加的各种过滤条件。真是克星。能这么克机器人的case应该不多,暂不改进,case多了再说。
  2. PDD:类似NIO,克星,信号bar之后全是下跌和横盘。典型特征:开盘第一根bar暴涨。改进措施:暂无,此类case多了再说。下降一半入场可以平本
  3. ZEN:10点半的bar出的信号,12点才入场,可能是因为成交额变动,这个case从非top300升入了top300。无意中实现了“下降一半入场”的效果!甚至下降多过一半,接近止损位时入场。虽未达到止盈位,但浮盈很多,抵消了前面两位克星带来的浮亏。如果紧接着信号bar入场,则可能会平本出。所以,该认真思考“下降一半入场”的问题了。
  4. UBER:因为计算误差,晚了一根bar入场。信号质量不好,提早一根bar入场,也达不到止盈位。另外,因信号bar之后的bar急速下跌,所以机器人入场的成本不高,也是无意中实现了“下降一半入场”的效果!甚至下降多过一半,所以亏的不多。
  5. UNH:因计算误差,TradingView显示的是long2信号,机器人显示的是long1。若是long2,则近期跌破EMA169的bar很多,会被过滤掉。若下降一半入场,则没有入场机会,不过也不可惜,最后差不多是平本出的,因为信号bar以后就是横盘。
  6. VGK:因EMA计算误差,导致晚了3根bar入场,即横盘期入场,最后差不多平本出来,略亏。若下降一半入场,则略有盈利。
  7. XLRE:又是EMA计算误差,这种震荡期信号没被排除掉,而且信号晚了一个bar,上涨期结束,进入横盘期。最后差不多平本出来,略亏。若下降一半入场,则略有盈利。

改进措施小结:

  1. 关于“下降一半入场”:尾盘平仓的7单都是质量一般的,都支持下降一半入场,或有小盈利,或减少亏损。但是,对于成功止盈的6单来说,一半反对、一半支持,且支持的那些收益增加也不明显。所以,此法暂不推行。
  2. 关于消灭止损单:连涨Xbar以后不可入场?多积累一些case再说。
  3. 关于找寻更多的正例:已经排除的那些case和方法,可以再商榷,如市价已涨破止盈位、今日高点已涨破止盈位、bar未走完时入场,另一着手点是:移动止盈怎样才能不那么敏感?

第7天实盘:10月14日,周四

今天收到信号59个,入场23个,盈利21刀。

关于延迟:

  1. Bar走完后,等1分钟,指标机器人启动。
  2. 指标机器人耗时4.6分钟。
  3. 警报机器人耗时6分钟。
  4. 上述3步合计约12分钟,所以交易机器人进场时已晚了12分钟。
  5. 当然,“浮盈减半就跑”在测试,占用了服务器的资源,导致计算变慢,也是原因之一。所以,决定停止此项测试,停止后,各项耗时为:1+3.4+5,约为10分钟。

因为这种延迟,导致开盘第一根bar就猛涨的4个信号作废了:未入场,今日高点已涨破止盈位,放弃入场,或者:未入场,已涨破止盈位,放弃入场。

止损单:2单,亏损19刀。

  1. FIVN:买在了最高点,然后就是下跌,三根阴线,损失惨重,克星。之后一直在止损线以下了。支持下降一半买入!典型特征:之前长期在下跌趋势中(0927-1013)。改进措施:多留心此类case,看是否应该集体排除。
  2. AVGO:也是买在了最高点,然后就是下跌、横盘,临近收盘时跌破止损线,克星。与FIVN不同的是,它没有长期在下跌趋势中,而是两种趋势交替出现,但又不是需要被过滤的那种频繁切换。典型特征:信号bar是今日连涨的第5bar,不止今日的话是连涨第6根bar,联想到昨日的ZM是连涨7根。改进措施:连涨Xbar以后不可入场?多积累一些case再说。支持下降一半买入

止盈单:10单,盈利47刀。平均每单4.66刀。

止盈单复盘,需回答3个问题:是否支持下降一半买入?是否支持1倍止盈位?是否有负例特征(连涨X根)?

  1. PM:计算误差,信号晚了一根bar。典型正例。不过也因为延迟而导致成本略高,已十分接近止盈位。不支持下降一半买入,因为那样就没有机会入场了支持1倍止盈,且实际卖出价已超过。(连涨第3根bar)
  2. XLI:典型正例不支持下降一半买入,因为那样就没有机会入场了!不支持1倍止盈。(连涨第3根bar)
  3. VTI:典型正例不支持下降一半买入,因为那样就没有机会入场了!不支持1倍止盈。(连涨第3根bar)
  4. XLU:典型正例支持下降一半买入!不支持1倍止盈。(连涨第4根bar)
  5. NEE:计算EMA误差,信号晚了一根bar。典型正例支持下降一半买入支持1倍止盈。(连涨第4根bar)
  6. RSP:计算EMA误差,信号晚了一根bar。典型正例不支持下降一半买入,因为那样就没有机会入场了!不支持1倍止盈。(连涨第3根bar)
  7. IBM:典型正例支持下降一半买入!不支持1倍止盈。(连涨第4根bar)
  8. IWD:典型正例不支持下降一半买入,因为那样就没有机会入场了!不支持1倍止盈。(连涨第4根bar)
  9. SPY:典型正例支持下降一半买入!不支持1倍止盈。(连涨第4根bar)
  10. AMC:典型正例支持下降一半买入!不支持1倍止盈。(连涨第4根bar)

尾盘平仓:11单,亏损6刀。

  1. X:克星。亏损较大。支持下降一半买入!典型特征:之前长期在下跌趋势(正例中也常见,暂不过滤)。
  2. DASH:平本出。应该降低止盈位,或下降一半而买不到。支持下降一半买入
  3. DIA:平本出。应该降低止盈位,或下降一半而买不到。支持下降一半买入
  4. VTV:计算误差,信号晚了一根bar。应该降低止盈位,或下降一半而浮盈。支持下降一半买入
  5. UDOW:略有盈利。应该降低止盈位,或下降一半而买不到。支持下降一半买入
  6. AIG:略有盈利。应该降低止盈位,或下降一半而浮盈增多。支持下降一半买入
  7. EL:小亏。计算误差,信号晚了一根bar。应该下降一半买入而降低亏损。支持下降一半买入!而且信号bar是连涨第5bar
  8. ASML:略有盈利。应该降低止盈位,或下降一半而浮盈增多。支持下降一半买入
  9. SMH:小亏。应该下降一半买入而平本出。支持下降一半买入
  10. SOXX:平本出。应该下降一半而浮盈。支持下降一半买入
  11. FIS:平本出。应该下降一半而浮盈。支持下降一半买入

未入场:(部分)

  1. MRK:典型正例。因延迟未入场,已涨破止盈位,放弃入场。
  2. NUE:未入场,已涨破止盈位,放弃入场。

小结:

  1. 为维持高胜率,牺牲了盈亏比(目前为0.5:1,忽略移动止盈的话),再加上信号有延迟,所以FIVN一个止损单就能吃掉17刀的利润!是否“消灭止损单”的目标有失偏颇?值得反思。
  2. 止盈单方便:一半支持下降一半买入,且这一半的每单收益均值是6.80,高于止盈单总均值!所以计划下周改为下降一半买入,但也要结合周五的实盘情况再看。支持1倍止盈的只有20%(2单),所以暂不采纳。
  3. 买入信号新增一个过滤条件:连续5根阳线(包括信号bar)的信号去掉。下周一统一改。

第8天实盘:10月15日,周五

今日发现16个信号,入场11个,盈利37刀。

止损单:没有!

  1. 实在是太幸福了!

止盈单:5单,盈利29刀。

止盈单复盘,需回答3个问题:是否支持下降一半买入?是否支持1倍止盈位?是否有负例特征(连涨X根)?

  1. QCOM:典型正例。而且几乎卖在了最高点。下降一半能买入,但若有误差,也可能买不到。目前成本较高、利润较薄,下降一些时买入是更好的。不支持1倍止盈位。连涨第2根。之前曾经长期处于下跌趋势。
  2. WMT:幸好及时止盈,否则变成止损单。不支持1倍止盈。下降一半时已过止盈点,后面是止损点,但已有“今日高点涨破止盈位则不入场”的规则,再加上此单其实是平本出,所以支持下降一半买入。连涨第2根。
  3. EWY:卖飞了。支持1倍止盈。止盈比例太低,使得进入移动止盈阶段过早,很快被洗下车,错失了1倍止盈。不支持下降一半买入,因为没有入场机会,下降一些也不支持改进措施对止盈比例太低(此单=0.12%)的case应有特殊处理。连涨第2根。
  4. RBLX:今日主要盈利来源。支持1倍止盈。大约到了1倍止盈位以后因为移动止盈而出场。因计算误差,提前1根bar入场,成本更低,感谢误差!不支持下降一半买入,因为没有入场机会,下降1/4也不支持。连涨第2根。改进措施到了1倍止盈位后立即平仓,即移动止盈只适合0.5-1.0倍止盈位之间
  5. HPQ:今日主要盈利来源。支持1倍止盈。大约到了1倍止盈位以后因为移动止盈而出场。支持下降一半买入,而且因为信号bar之后的bar是大跌,所以无意中实现了下降一半买入。连涨第4根。改进措施到了1倍止盈位后立即平仓,即移动止盈只适合0.5-1.0倍止盈位之间

尾盘平仓:5单,盈利8刀。

  1. CAT:典型正例。平仓时已进入移动止盈阶段,没有跌到移动止盈出场位,所以一直持仓中。不支持1倍止盈。支持下降1/4入场。连涨第2根。
  2. EWZ:小亏。典型特征:第一根bar涨太多(2.09%)。之后的涨幅很小,所以没到止盈位。但也没跌,所以等下降1/4也等不到。改进措施:降低止盈位,或bar未走完时入场,或用下降1/4不入场,或排除掉第一根bar涨太多的case。连涨第2根。
  3. FISV:首bar涨完以后横盘,尾盘几乎平本出。支持下降一半买入,这样的话止盈位也会相应下降,有机会变成止盈单。连涨第1根。
  4. LCID:小盈利。支持下降一半买入,而且因为信号bar之后的bar是大跌,所以无意中实现了下降一半买入。连涨第4根。
  5. JPM:因为误差,晚了一根bar入场,即便没有误差,信号bar也是连涨第6了。入场后横盘,最后平本出。支持下降一半买入,而且因为信号bar之后的bar是大跌,所以无意中实现了下降一半买入

未入场:

  1. AMZN:股价太贵而未入场。若入场,则支持1倍止盈位。而且,因为误差,可以早一根bar入场,成本更低。支持下降一半买入,若没有误差则不支持。连涨第3根。
  2. INTC:已涨破止盈位而未入场。因误差,可以早2根bar入场。支持1倍止盈位支持下降一半买入。连涨第2根。没入场的原因可能是:在排队等仓位,或多次计算结果不同(实际信号时间太晚)。
  3. ADI:信号bar之后便迅速涨破止盈位,所以未入场。若入场,则支持1倍止盈位支持下降一半买入。连涨第3根。属于被过滤规则“误杀的正例”。
  4. EWH:信号bar自己就已经涨破止盈位了。若要挽救,只能bar未走完时入场。若入场,则支持1倍止盈位支持下降一半买入。连涨第1根。
  5. TWTR:信号bar自己就已经涨破止盈位了。若要挽救,只能bar未走完时入场(若如此,则不存在下降一半买入的问题)。但信号bar之后迅速跌破止损位。所以买入和卖出都必须在信号bar内完成才能盈利。不支持1倍止盈位。(若如此,则不存在下降一半买入的问题)
  6. SBUX:典型负例,信号bar之后迅速跌破止损位。连涨第1根。

改进措施小结:

  1. 为了消灭止损单,设置了很多过滤条件(如今日涨破止盈位则不入场、bar未走完时不入场),这些条件也错杀了一些正例。若大盘下跌时,隧道机器人也能盈利,再考虑放开这些过滤条件。
  2. 昨日计划的买入信号新增一个过滤条件:连续5根阳线(包括信号bar)的信号去掉。今日未发现反例,通过。
  3. 从今日case看,下降一半买入,可能错失一些正例,所以改为下降四分之一买入
  4. 虽然连续3天获利,但必须清醒地认识到这三天也是大盘连涨的三天,而且机器人盈利率不如大盘涨幅,即直接买大盘收益更高。所以机器人的路还长,不能沾沾自喜。

后续实盘记录:Python美股量化交易填坑记录——13b.Vegas隧道交易机器人(实盘记录)_ChristopherShen的博客-CSDN博客

5.围观链接

机器人布置于国内知名的量化平台——FMZ网(发明者网),机器人状态已设置为公开可见(请先注册FMZ网,免费):FMZ - 发明者量化交易平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/71204.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

和众视野加入飞桨技术伙伴计划,共同推动纺织行业智能化转型

近日&#xff0c;北京和众视野科技有限公司正式加入飞桨技术伙伴计划&#xff0c;双方将共同努力开发AI视觉检测技术和机器人流程自动化相结合的系统解决方案。 北京和众视野科技有限公司 北京和众视野是一家实验室检测仪器及解决方案供应商&#xff0c;一直专注于视觉检测和检…

【MES】聚酯,纺丝,假捻的工艺路线

聚酯工艺路线(PET) PET(聚对苯二甲酸乙二醇酯)中文称聚酯,俗称涤纶树脂、聚酯切片。 聚酯的主工艺路线为聚酯到切片。 聚酯无子工艺路线。 聚酯使用的原料,就是上面提到的回收的PET瓶片,他们本身就是聚酯塑料瓶。 因此不需要经过酯化反应,只需要清洗,筛选,去杂,然后…

【2023/05/08】雅卡尔织布机

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第3天。 Share The world puts off its mask of vastness to its lover. It becomes small as one song,as one kiss of the eternal. 译文&#xff1a; 世界对着它的爱人&#xff0c;把它浩瀚的面具揭…

计算机毕业设计作品

计算机毕业设计作品统计 ①C语言项目源码大全&#xff08;60套&#xff09;②Android项目源码&#xff08;168套&#xff09;③计算机专业精选代码lun文&#xff08;26套&#xff09;④计算机专业-VB&#xff08;350套&#xff09;⑤计算机专业-PHP&#xff08;76套&#xff09…

【毕业季·进击的技术er】大学生计算机毕业设计应该这样写

活动地址&#xff1a;毕业季进击的技术erhttps://marketing.csdn.net/p/f4a818f6455f3a9a7a20c89f60ad35f7 目录 扉页 摘要 目录 一 绪论 二、相关技术环境介绍 三、系统需求分析 四、系统架构设计 五、系统实现 六、系统测试 致谢 参考文献 以一个过来学长的角度来看…

某高校毕业设计-数据分析课题技术实现篇

文章目录 某高校毕业设计-数据分析课题技术实现篇1.确定分析目标2.初步判断数据研判数据2.1能不能找到数据-->可以找到2.2分析指标2.2.1 指标1 各个老师的毕设通过率2.2.2 指标2 每年的毕设重修人数2.2.3 各个学院每年答辩通过率2.2.4 指标new2.2.15 指标new 2.3 基于需要分…

计算机专业毕业论文写作指导(案例超详解)

【辰兮要努力】&#xff1a;hello你好我是辰兮&#xff0c;很高兴你能来阅读&#xff0c;昵称是希望自己能不断精进&#xff0c;向着优秀程序员前行&#xff01; 博客来源于项目以及编程中遇到的问题总结&#xff0c;偶尔会有读书分享&#xff0c;我会陆续更新Java前端、后台、…

计算机专业毕业设计大纲,附源码+论文+答辩

毕设论文答辩通关法则&#xff0c;看这一篇&#xff0c;源码都在下面了&#xff01;写在前面&#xff0c;尽管论文方法和毕设源码都有&#xff0c;但还是要看课自己敲完完善好。做好充分准备面对答辩。 文章目录 一、毕设二、论文 2.1 论文标题2.2 确定论文大纲2.3 论文内容 2.…

【计算机毕业设计】38.网上轰趴预订系统

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘要 在网上轰趴发展的整个过程中&#xff0c;网上轰趴预定担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类网上轰趴程序也在不断改进。本课题所设计的网上轰趴预定系统&#xff0c;使用SSM框架…

计算机毕业论文选题推荐|软件工程|系列九

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)学生在校信息管…

40套计算机毕业设计项目合集【含源码+论文】

前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的java web缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两年不断有学弟学妹告诉学长自己做的java web管理系统达不到老师的要求。 为了大家能够顺利以及最少的精…

计算机毕业设计看这篇就够了(二)毕设流程

本篇将为大家介绍计算机专业毕业设计流程&#xff0c;提前了解毕设流程可以让同学们从宏观角度去看毕设要做些什么样的事情&#xff0c;大概知道每个阶段要去做哪些工作&#xff0c;为后续毕设任务的真正开展打下心理预期&#xff0c;也不至于一脸懵。 计算机毕设分为以下主流程…

【计算机毕业设计】

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.旅游管理系统将使旅游相关信息管理工作规范化…

计算机毕业设计,这6个网站早知道,太牛了

作为一个计算机专业毕业的学长&#xff0c;好多人都问过我&#xff0c;大四毕业设计有什么推荐的资料吗&#xff1f; 在这里&#xff0c;程序员我&#xff0c;我汇总一下&#xff0c;一起发出来&#xff0c;希望给计算机专业毕业的你们提供些帮助。 论文&#xff1a;中国知网 …

计算机毕设题目设计与实现(论文+源码)_kaic

毕业设计(论文)题目 高校图书馆座位预约选座微信小程序设计与实现 基于防火墙的访问控制系统的设计与实现 基于区块链的农产品追溯系统设计与实现 学生公寓楼改造布线系统规划与设计 智能家居网络设计与实现“互联网”农村精准扶贫共享平台的设计与实现“智慧健康少儿成长平台”…

独家 | 从混沌到清晰:大语言模型如何化繁为简,开创数据清洗新时代!

作者&#xff1a;Naresh Ram翻译&#xff1a;王闯&#xff08;Chuck&#xff09; 校对&#xff1a;zrx本文约6600字&#xff0c;建议阅读10分钟 本文通过实例展示了大语言模型&#xff08;LLM&#xff09;在数据清洗中的惊艳之处。文章详细介绍了如何利用提示、API调用和自动化…

新人如何快速上手做(海外问卷)站点查?

很多人做站点查之前不知道如何下手&#xff0c;害怕学不会怎么办&#xff1f;其实这些都不是重点担心的问题&#xff0c;今天来给大家详细讲解一下新手如何快速上手做站点查&#xff1f; 我们以ysensen站点查为例&#xff1a; ClixSense&#xff08;现在已经更名为Ysense&…

手机可以做国外问卷调查吗,国外问卷调查适合各类人群和工作室变现

大家好,我是小匠圈大成,一个踩过很多坑的老韭菜,每天会给大家分享和拆解各种项目,引流思路。帮助每一个互联网的网漂人员,找到自己的方向,成为一个及格的网漂人员。 知道很多项目,但是我有多年国外调查问卷经验,目前运营多家工作室,数百学员开有几十家工作室。今天给…

海外问卷调查怎么做?手把手教会你如何薅老外的羊毛

问卷调查相信大家都不陌生。许多组织在推出新项目或新产品之前&#xff0c;会对全社会进行问卷调查&#xff0c;调查消费者或受众对产品的期望和价格的接受范围。东哥今天给大家介绍的就是海外问卷调查项目&#xff0c;外国人的羊毛&#xff0c;带你们薅定了&#xff01; 参与海…

不良事件总结怎么写_护理不良事件总结分析.doc

护理不良事件总结分析.doc 2013年护理不良事件事件总结分析未进一步增强护理人员安全意识&#xff0c;消除安全隐患&#xff0c;提高服务质量&#xff0c;降低和防范医疗风险&#xff0c;确保医疗安全。现就将本年度不良事件原因进行分析&#xff0c;提出持续改进措施&#xff…