1.背景
上一篇帖子介绍了思路调整的过程,我的目标从“消灭止损单”(越来越保守)改为“追大肉”(允许有止损单,盈利超过损失就行)。
Python美股量化交易填坑记录——13b.Vegas隧道交易机器人(实盘记录)_ChristopherShen的博客-CSDN博客
这一篇帖子将记录在新思路指导下的实盘结果。而且为了缩短计算耗时,将尝试把信号计算从python机器人完全交给TradingView(警报上限400个,即股票池最大400)。
2.实盘记录
第19天实盘:11月1日,周一
1号机器人,只做多:做多信号:16个,入场15个,盈利76刀。
止损单:4单,亏损42刀。
止盈单:7单,盈利60刀。
尾盘平仓:4单,盈利57刀。
未入场:等待入场:1单。
2号机器人,刚开始做多空(IB),之后切换为TD,多空都做:
各类信号:20个,入场14个,亏损38刀。其中做多盈利13刀、做空亏损50刀。
止损单:3单,亏损32刀。
止盈单:6单,盈利33刀。
尾盘平仓:5单,亏损38刀。
未入场:等待入场3单;股价太贵1单;未入场,已跌破止损位,放弃入场:2单。
3号机器人:接收TradingView信号进行交易,调试中。
Bug记录:
- 美东时间1点左右行情机器人中断,1个多小时后才发现。(已更正:加入中断后自动重连程序)
- TD对部分股票不支持做空(这一点不如IB),比如BNTX,且补回时正常,导致产生隔夜仓。
第20天实盘:11月2日,周二
1号机器人:根据python指标机器人的计算结果找信号,多空都做。实盘:TD账户。
介于TD账户运作正常,关于windows服务器,即停止使用IB账户(非免佣)作为量化交易账户。
多空信号共27个,全部入场,盈利42刀(本金2w)。其中做多亏损16刀、做空盈利59刀。
止损单:12单,亏损149刀。
止盈单:10单,盈利187刀。
尾盘平仓:5单,盈利4刀。
TD记录数据更正后:
亏损23刀(本金2w)。其中做多亏损15刀、做空盈利8刀。
止损单:12单,亏损150刀。
止盈单:10单,盈利170刀。
尾盘平仓:5单,亏损43刀。
2号机器人:根据TradingView信号,多空都做。模拟盘。
但TradingView警报(300个)添加未能在开盘前完成,所以部分信号有延迟。
多空信号共30个,入场28个,盈利89刀(本金2w)。其中做多亏损32刀、做空盈利122刀。
止损单:12单,亏损107刀。
止盈单:12单,盈利149刀。
尾盘平仓:4单,盈利48刀。
周四补记:
TV大单分析(盈亏超过1%):
- 亏损第1名,亏损20刀:AAL,10点long1,bar走完后消失。建议:取消ATR矫正止损位,则尾盘平本出。(若隔夜则爽翻)
- 亏损第2名,亏损18刀:MRNA,11点半long1,bar走完后消失。建议:将止损位放宽至今日最低点,则尾盘平本出。
- 盈利第1名,盈利20刀:Z,10点半short1,信号一直在。入场较早,成本价较好。建议:移动止盈出场比例从0.4放宽至0.5,则可以扛过洗盘,拿到后面更多的肉。(次日开盘暴跌17%,若隔夜则爽翻!)
- 盈利第2名,盈利20刀:CLF,9点半short1,bar走完后消失。入场不够早,但成本价好。出场早了,后面还有大肉,但出场比例已经0.5。无建议。
关于同一个票的多个信号:
- AAL:9点半和10点都出了long1,之后都消失,2个止损单,后一个止损单亏的更多。支持1个票1天只进场一次。
- COP:11点半和12点都出了short1,前者尾盘平仓、后者止盈,前者消失、后者留存。都有盈利,所以支持1个票进场多次。
- MET:13点和13点半都出了short2,前者止损、后者止盈,但幅度都很小,合计小亏。前者消失、后者留存。建议:再早点进场,即取消short必须是当日最低的限制,甚至再早些:(偏左侧)上穿EMA169时进场。
关于市价单的记录误差:
- 到TD账户节目下载交易记录,使用里面的实际成交价校正机器人记录的成交价,发现1号机器人的实际盈亏为-23刀!抽查一个误差很大的case:UPST,发现是stream订阅的价格只更新到3点半(原因不明),所以机器人把3点价格当成了平仓价。而同时的2号机器人使用get_quotes查询的市价则较为准确。又查了一个case:Z,发现stream在13:48至14:11之间有一个长达20分钟间隔没有数据!于是决定停用stream订阅法。(已落实)
- 以后若再出现此类情况,增加一个警报:查询实际成交价,并与市价作比较。(已落实)
关于TradingView与python机器人的信号一致性问题:
以往都是基于python机器人发现的信号,去看TradingView上是否有此信号。这次则反过来,可以根据TradingView发来的信号,去验证机器人的信号。
两机器人信号合计去重后为31个,重合部分仅有20个,重合部分的收益对比:
- TV:93刀
- Python:-63刀
大体趋势是:TV赚的,python赚的更少;TV亏的,python亏的更多。
少数趋势完全相反,如:
- CLF,TV赚20刀、python亏23刀。二者入场时间和成本接近,但出场差异巨大:python仅持股不到10分钟就止损出场,而TV则持股4小时。因为二者止损位不同:python为23.04、TV为23.34。再往下查,原来是TV信号的机器人给错点位了,然后TV因祸得福!这个case说明需要重新审视这条规则:首bar产生信号时,不参考前一根bar的高点和低点,而是直接使用本bar的高低点。这条规则原先是基于“bar走完再进场”的策略,现在已不适用了,拿掉。(已落实,pine脚本上一并修改)
不重合部分:
- TV有 且 python无:7个,收益为-4刀。
- TV无 且 python有:4个,收益为40刀。这有点意外!其中的利润主力是RIOT,查看TV图后才知,原来是信号bar是首bar,预计盘前添加到警报的话TV该有这个信号。
第21天实盘:11月3日,周三
经过昨天的调适,300个TradingView警报搭配python交易机器人的路径已经走通(模拟盘),今日上实盘,即,昨日的1、2号机器人对调。
1号机器人,信号来自TradingView,多空都做,实盘(TD)。
收到信号39个,入场37个,亏损157刀。其中做多信号18个,亏损92刀;做空信号19个,亏损64刀。
概述:
止损单:22个,亏损319刀。
止盈单:12个,盈利174刀。
尾盘平仓:2个,亏损13刀。
未入场:股价太贵1个;已破止损2个。
分析大单(盈亏超过1%):
- 亏损第1名,亏损60刀:MP,10点long1,bar走完后消失。买入后一路下跌,然后止损。建议:取消ATR矫正止损位,增强洗盘能力,如此则尾盘平本出。
- 亏损第2名:亏损36刀:OXY,10点long2,信号一直在。克星,买入后一路下跌。若取消ATR校正,差别不大。入场再早些,成本更低,损失会更小。建议:取消long2信号的EAM12必须上涨限制,让信号更早出现。(再激进些的策略:偏左侧,踩破EMA169就入场,取消必须出头的限制,但止损位不好定。)
- 亏损第3名,亏损25刀:MET,11点long1,bar走完后消失。克星,且洗盘太狠:破前低、破2倍ATR。建议:止损位放宽为:前低与3倍ATR中的更低者,或今日最低点。这样损失稍微小一点。
- 亏损第4名,亏损24刀:FB,9点半short1,bar走完后消失。克星,开盘后一阵急跌,EMA12跌破EMA169,首bar内又涨回来,最后留下很长的下影线。
- 盈利第1名,盈利36刀:MAR,10点long2,信号一直在。入场较早,成本较低。建议:还可以更早入场,即踩破EMA169就入场,取消必须出头的限制,止损位:EMA169之下X倍ATR。
2号机器人,信号来自python指标计算,多空都做,模拟盘。
23个信号,全部入场,亏损189刀。其中做多12单,亏损97刀;做空11单,亏损91刀。
概述:
止损单:10个,亏损230刀。
止盈单:11个,盈利72刀。
尾盘平仓:3个,亏损31刀。
Python指标和信号机器人连续2天表现差于TV机器人,关停。
小结:
- 实盘:继续取消各类保守的安全措施:
- 取消ATR矫正止损位,增强抗洗盘能力。(已落实)
- Long2的限制:出头 且 EMA12上涨。再观察。
- 模拟盘:相反思路:增加安全措施:Bar走完时再发信号。(配置中)
第22天实盘:11月4日,周四
49个信号,入场45个,盈利282刀。其中做多信号17个,亏损79刀;做空信号28个,盈利362刀。
概述:
止损单:10个,亏损194刀。
止盈单:25个,盈利407刀。
尾盘平仓:10个(含4个手动平仓单),盈利33刀。
未进场:股价太贵1个;模拟做空3个:止盈15刀、平本出、亏12刀。
分析大单(盈亏超过1%):
- 亏损第1名-63刀:PXD,9点半long1,bar走完后消失。买入后一路下跌,long1形态变成short2形态,然后止损。其实也没出short2信号,因为涨破EMA169的次数太多。建议:bar走完再入场。
- 亏损第2名-29刀:PSX,同上,9点半long1,bar走完后消失。买入后一路下跌,long1形态变成short2形态,然后止损。其实也没出short2信号,因为涨破EMA169的次数太多。建议:bar走完再入场。
- 亏损第3名-26刀:CRWD,13点半long1,信号一直在。因bug未进行尾盘平仓,所以手动平仓(限价单),发现盘后成交价非常诡异:收盘价279.62,成交价275!从盈利8刀变成亏损26刀!还不如早早睡去,今天盘前再来下单。历史表现一般:胜率35、收益6。但历史回测是按照bar走完进场(最后亏损0.45%),实盘是bar未走完就进场,所以成本更低,若尾盘正常平仓则为盈利单。
- 亏损第4名-24刀:UPST,9点半short2,bar走完后消失。进场较早,成本反而不理想。洗盘太狠,10分钟就到止损被撵下车。但如果扩大止损位:EMA169之上X个ATR,则止损比例太大,风险高。理想情况是晚1根bar入场,即首bar走完后入场,如此则利润和风险都适中。但10点bar没出short2,因为未出头,可以考虑放宽限制为:lower low。原回测结果:胜率42、收益66;放宽后:胜率48、收益97。建议:bar