EA邦程序化交易论坛

 找回密码
 立即注册
搜索
查看: 2538|回复: 52
收起左侧

[已解决(VIP)] Hedging EA3.8.8.7 能否增加净仓单数量管理功能

[复制链接]

9

主题

44

回帖

440

积分

VIP会员A

Rank: 3Rank: 3

积分
440
发表于 2022-8-30 01:06:41 | 显示全部楼层 |阅读模式

注册后才能显示所有内容,如帖子内图片。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
首先非常感谢eabang的高老师,在qq中回答了我的大量的问题,让我受益匪浅。在这里再次感谢。


开发需求:净仓单数量管理功能
目前在Hedging EA3.8.8.7中可以从信息,盈亏面板出看到实时的净仓数据,如下图。
010935u95eeefsjsvee4dk.png
在单边行情中,马丁对冲策略(无脑开仓,多空对冲)是否能控制好风险很大程度上取决于这个净仓量的大小。在单边的行情中,通常盈利的方向的单会用多个单数(n单)加总的盈利对冲到少量的几个亏损单(m单),就是说这个数量上N>M,经过多次对冲后,就会形成亏损的单单数越积累越多,盈利始终只有1-2单的局面。如下图中多单已经22笔,空单只有2笔,多单净仓为0.78手。


为了说明问题,我再贴一下行情继续单边后的仓位图。更好的说明问题。

继续单边后多单变成1.13手,空单只有0.01手,净仓单继续扩大到1.12手。
这个时候如果继续单边下去,这个ea可能就爆仓了。因为空单永远无法及时对冲掉越来越大的多单。

反过来,只要马丁对冲策略能够盈利的时候,这个净仓会非常的小,因为马丁适合震荡行情,只要不断震荡,这个净仓量就会保持在一个很小的幅度里来回震荡。而一旦净仓量突破一个数值了,那就说明单边行情来了。

我经过大量的回测,马丁策略的理论研究,和参考了其他一些马丁策略的做法,我个人认为如果可以实时的管理这个净仓量,可以很好的加强这个ea的抗风险的能力。主要有两种管理的办法。
1. 消极管理。 设置一个最大净仓值,一旦到达这个值,停止净仓方向的加仓,等待行情转向后,净仓量回归到最大值内,自动恢复加仓功能。
2. 积极管理, 设置一个最大净仓值,一旦到达这个值,反向加仓,保值净仓值始终在最大值内。然后该加仓的继续加仓,该对冲的继续对冲。只要净仓量超过最大值了,就反向开仓,如果单边行情继续,这个过程会一直持续下去,这样做一方面可以大大减轻账户的压力,另一方面对冲掉的反向单会不断地对冲掉一些亏损单。一直到净仓值减小到最大值以下。

有人可能第一反应是,这个是不是就是反向对冲面板里的锁仓功能?但是经过多次回测,发现锁仓功能并不起到这个作用。因为单边行情中,亏损越来越多,锁仓的量也越锁越大,最后造成一个巨大的浮亏直到爆仓。即使使用了锁仓后关闭加仓功能,那这个锁住的亏损就一直存在下去了,不是一个解决的好办法。同样的现在的加仓和开仓面板中的最大手数控制功能只能计算单边,或者双边数量,并不计算净仓量,无法起到这个目的。

使用了净仓量管理的办法,ea不需要停,可以继续对冲,同时锁定了亏损的单数,虽然行情继续单边,亏损还会加大,但是会得到很好的控制,而且反向单会不断地通过对冲贡献一些盈利。如果可以同时控制反向单的数量(比如设置一个倍数x),慢慢会直接冲掉所有亏损。

举一个积极管理的具体例子,再说明一下需求。

净仓管理开关设置
最大净仓值,( 0.5 )手
反向单数量倍数 (2 )倍

当净仓值变成0.53时,净仓管理功能启动,ea开反向单0.03*2=0.06手,这时净仓变成0.47,净仓管理功能关闭,ea其它功能继续,行情继续单边,ea逆势加仓,净仓再次变成0.54手,净仓管理功能再次启动,反向开仓0.08手。行情反转,多空对冲,净仓变成0.47手,净仓管理功能关闭。

这是功能可以放在对冲版面中。

希望我表达的清楚了,欢迎讨论和问题。谢谢。



评分

参与人数 1威望 +1 金钱 +1 贡献 +1 收起 理由
唐老师 + 1 + 1 + 1 很给力!

查看全部评分

+15

最近谁赞过

回复

使用道具 举报

9

主题

44

回帖

440

积分

VIP会员A

Rank: 3Rank: 3

积分
440
 楼主| 发表于 2022-8-30 01:12:54 | 显示全部楼层
第一次发帖,这个图片黏贴再帖子里的不见了。第一张图没有保存,但是看第二张图就可以了。
+10
回复

使用道具 举报

     

22

主题

168

回帖

2617

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2617

EA邦VIP

发表于 2022-8-30 19:30:39 | 显示全部楼层
这个需求应该在实盘中有很大帮助,希望唐老师可以考虑加急开发,我愿意参与均摊加急费用。
+10
回复

使用道具 举报

9

主题

44

回帖

440

积分

VIP会员A

Rank: 3Rank: 3

积分
440
 楼主| 发表于 2022-8-30 22:43:23 | 显示全部楼层
谢谢楼上汇友。


补充一点情况。我按照这个思路用手动对一个欧美去年一年的行情做了回测。
我打开信息盈亏面板,只要看到净仓多单大于0.5手了,就手动开0.3空单。欧美去年的单边,一路上全是多单一大堆,空单1-2个的情况,手动开了n多次空。没有手动,这个ea最后是50%以上的浮亏,加了这个粗糙的手动操作,浮亏3%,证明这个思路是对的。
然后我又做了一次,这次每次开空不是0.3,而是0.8手,这个ea最后大幅盈利。这说明这个功能不仅可以减少亏损,其实也可以用来做单边行情。

补充开发需求,

补反向单的数量处,除了可以选择倍数,再加一个加减(x)手数选项。倍数不容易精确控制,加减法容易控制。

谢谢老师。
+11

最近谁赞过

回复

使用道具 举报

     

235

主题

2218

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19495

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主EA邦VIP论坛元老

发表于 2022-8-31 11:27:44 | 显示全部楼层
是在反向对冲中,与锁仓功能类似,加入一个净仓位的控制功能是吗?


是不是这样的交易逻辑。
以多单来说,净仓位设置的是0.5手,净仓位多开0.02手。
行情下行,多单现在加仓有总0.5手,空单0手。
多单再次加仓0.08手,现在0.58手多单,净仓位0.58。
这时空单开仓0.08+0.02=0.1手,净仓位0.48。
行情下跌,多单又加仓0.15手,现在0.73多单,0.1空单,净仓位多单0.63。
空单保持净仓位,又下单0.13+0.02=0.15手,这时空单总0.25手,净仓位0.48手。
如果行情继续下跌,多单一直加仓,就按上面的方法,一直开仓空单,保持净仓位。
假设现在行情上涨,多单平仓,空单有0.25手,没有达到0.5手的净仓位,ea就不会自动开仓多单。

你这个净仓位的思路,我觉得也是有点问题,就是空单为了保持净仓位,一直在开仓,结果空单大于了0.5手,这时行情上涨,多单止盈全平了,现在空单的仓位是大于0.5手的,这时空单加仓,就又要补多单,是这样吗?


+10
此心光明,亦复何言!
回复

使用道具 举报

     

235

主题

2218

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19495

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主EA邦VIP论坛元老

发表于 2022-8-31 11:28:39 | 显示全部楼层
mchal 发表于 2022-8-30 19:30
这个需求应该在实盘中有很大帮助,希望唐老师可以考虑加急开发,我愿意参与均摊加急费用。 ...

你也在关注啊,这个想法,我觉得值得研究。
+11

最近谁赞过

此心光明,亦复何言!
回复

使用道具 举报

     

22

主题

168

回帖

2617

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2617

EA邦VIP

发表于 2022-8-31 12:46:56 | 显示全部楼层
唐老师 发表于 2022-8-31 11:28
你也在关注啊,这个想法,我觉得值得研究。

我认为这个需要配合对冲方式来进行, 譬如在某些条件下,不进行正冲(多冲多or空冲空)。

同时nv1 末单对冲增加反冲模式。当前的反冲是用一个方向的全部单去冲另一方向的单子。改成或者增加一个用一个方向的盈利单子去对冲另一方向的单子的方式会更好一些。
我自己目前对于套得比较深的单子采取的方式是计算多空单距离现价的平均点数,优先对冲离现价距离较远&仓位较重的那个方向的单子。这样虽然解套时间变长,但浮亏增加的速度得到了明显的控制。
+10
回复

使用道具 举报

1

主题

3

回帖

24

积分

VIP会员

Rank: 3Rank: 3

积分
24
发表于 2022-8-31 13:17:04 | 显示全部楼层
mchal 发表于 2022-8-31 12:46
我认为这个需要配合对冲方式来进行, 譬如在某些条件下,不进行正冲(多冲多or空冲空)。

同时nv1 末单 ...

大哥,你们的讨论我完全看不懂,感觉像一门新的语言一样。太厉害了。
+10
回复

使用道具 举报

     

235

主题

2218

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19495

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主EA邦VIP论坛元老

发表于 2022-8-31 14:34:50 | 显示全部楼层
เงิน 发表于 2022-8-31 13:17
大哥,你们的讨论我完全看不懂,感觉像一门新的语言一样。太厉害了。

    我们做了篇小白入门文章,相信可以带你进入程序化交易的大门:

+10
此心光明,亦复何言!
回复

使用道具 举报

     

14

主题

44

回帖

365

积分

VIP会员A

Rank: 3Rank: 3

积分
365
发表于 2022-8-31 15:13:38 | 显示全部楼层
净仓管理开关设置
最大净仓值,( 0.5 )手
反向单数量倍数 (2 )倍




↑你是怎么知道2倍可以满足你想要对冲掉的量的?


你可以想象一下下面这个场景


打个比方,正好来了一波非常急的拉升,实际需要5倍手数才能满足你要对冲的量,但是你只设了2倍,怎么办?
5倍手数的话可以让净仓位恢复到0.5手以下,但是你只开了2倍,等待对冲的过程中又来了一波拉升,之前的开的2倍反向单对冲完发现无法对冲掉想要的量,净仓位变成0.52手了,继续2倍,又来了一波拉升,相对拉升量来说,2倍依然不够,对冲完净仓位变成0.54手了,继续2倍,但是相对拉升量2倍依然不够,亏损单照样会越积越多。
那你会说加大倍数,倍数加大,行情翻转之后,这些加倍的单会反过来勒住脖子。


其实做回测有一个逻辑硬伤,只要看过一次走势,你这个人本身就变成未来函数了。
不知道你能不能理解未来函数的意思,就好比坐着时间机器回到过去解决问题,某个问题可以解决的非常好,但是这个解决的方法一定是没有普遍性的,因为如果有普遍性的话就不存在你要坐着时间机器回去解决问题这件事了,这就是一个悖论了。
+10
回复

使用道具 举报

QQ|小黑屋|EA邦软件 - 高品质MT4/MT5期货EA,黄金EA,外汇EA程序化交易系统下载站 ( 蜀ICP备17026493号-1 )

GMT+8, 2023-2-1 21:02 , Processed in 0.025035 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表