以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://www.weistock.com/bbs/list.asp?boardid=2) ---- 金字塔最大的问题是不能多空仓位同时测试 (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=87458) |
-- 作者:lcgs005 -- 发布时间:2015/11/18 16:40:59 -- 金字塔最大的问题是不能多空仓位同时测试 后台是不能测试的了, 在图表上如果同时有多空仓位,则返回的仓位值为0,很显然测试是不准确的。 也有人说,你把多空分成两个策略来做多策略组合测试啊,这对于可以独立开来的策略是可以这样做,解决部份问题,但当策略中多单要对空单的仓位进行判断的情况下,比如对冲,套利的情况下,这种方法根本无法使用。 所以,建议金字塔图表上将多空仓位分别用不同的函数来表示,比如多仓位,用dholding,空仓位用kholding,总之将多仓与空仓分离开来表示,这样才便于更精细化的交易控制,更好地满足客户群体的需求。
|
-- 作者:王锋 -- 发布时间:2015/11/18 16:43:40 -- 不清楚你策略中需要多空同时持仓的目的是什么? 如果是多1,空1,实际你就是0持仓。 莫非像是一般散户那样,多空同时持有,卖出赚钱的头寸,留下亏钱的? |
-- 作者:lcgs005 -- 发布时间:2015/11/18 20:31:17 -- 为什么要这样持仓,涉及到对冲与套利的策略细节,比较复杂,一时半会说不清, 但,持有一手多单,一手空单,事实上是手里有两手单子,怎么能等于0持仓呢? 举个例子,我被人砍了一刀,然后我又砍了别人一刀,难道可以说这事根本没发生过么, 事实上,是发生了两件事,只不过发生的方向相反而已 金字塔以提供精细化的交易控制为方向,理应将持仓按方向来表示,否则,所有开仓时需要判断对手单的策略测试根本不准确的
|
-- 作者:lcgs005 -- 发布时间:2015/11/19 22:20:52 -- 行情的下一秒都是未知的,任何一个当下的判断都只是概率,所以,最好的策略根本不能预先去判断多空,而是让行情自己走出来, 在测试时,如果不能按方向分离出多单与空单,从根子上就会强迫用户遵从一个错误的方法,必须要主观地先判断多空再去交易,这恐怕不是一个平台商想要的结果。 从实例上来讲,假设下面的思路,如何在当前的图表交易上得到正确的测试结果? 双均线,金叉时开1手多单 如果开对了,在下一个金叉时加仓; 如果错了,在死叉时开1手空单,与原来的仓位形成对锁; 当多单盈利加仓后,平掉亏损的空单; |
-- 作者:FexTel -- 发布时间:2015/11/20 9:08:17 -- 1,交易上确实存在这么的操作方式,但是历史回测的理论核心是基于虚拟持仓,和资金!限制了持仓在一个方向内,所以说后台程序化为何不能进行历史回测 2,这个问题建议用户可以考虑多策略组合测试,把相应的多空分开策略执行 |
-- 作者:lcgs005 -- 发布时间:2015/11/28 15:05:09 -- 仔细思考会发现,目前的多策略组合与实盘时的情况会不一致,测试时是理想状态,而实盘则存在多空仓位在同一帐户取值交错的情况,实盘结果与测试完全两样, 只有将图表测试所需的函数也按持仓方向来分别进行划分,才有可能解决测试与实盘相对一致的问题, 后台都分开了,为什么图表上不按持仓方向分开呢?
|
-- 作者:lcgs005 -- 发布时间:2015/11/28 15:30:15 -- 如果非要用代码来看测试,下面的代码在测试里与实盘可以详细对照看看;测试里只开多或只开空,而事实上这种情况在1分钟周期里不可能的。 思路:当天在价格有趋势时,macd金叉开多单,macd死叉开空单,直到收盘时平所有仓 {} DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26); DEA:=EMA(DIFF,9); MACD:=2*(DIFF-DEA); JC:=CROSS(H,MDEA); SC:=CROSS(MDEA,L); JC1:=SUMBARS(JC,1); SC1:=SUMBARS(SC,1); GDR:REF(HHV(H,JC1),SC1),COLORBLUE; DDR:REF(LLV(L,SC1),JC1),COLORGREEN; dds:=ddr>ref(ddr,1);gdx:=gdr<ref(gdr,1); // if kd then buy(1,1); if kk then buyshort(1,1); //收盘前平仓,每天清盘后重来and holding<>0 t4:=abs( timetot0(closetime(4))-timetot0(time) )<60;//夜盘返回150000 if t4 then begin sell(1,0); sellshort(1,0); end // 资产:asset,noaxis; 日交易次数:TOTALDAYTRADE,linethick0; 日盈亏:asset-ref(asset,barslast(date<>ref(date,1))+1),linethick0; 正确率:percentwin*100,linethick0; |
-- 作者:lcgs005 -- 发布时间:2015/11/28 15:56:31 -- 图表上测试时,有多单则不开空单,这哪里行,这样测试出来明显是不准的。 作为产品,没有考虑到用户群体的需求多样性吧,不管策略本身挣不挣钱,作为软件平台,要能实现任何一种思路才最好啊
|
-- 作者:王锋 -- 发布时间:2015/11/28 16:20:39 -- 开多单 开空单锁仓 平多单保留空单 平空单全部平仓 这个样的锁仓交易逻辑,你完全可以按照下面的处理逻辑实现 开多单 平多单 开空单 平空单 -- 你这样的处理逻辑跟你之前的一模一样,还减少了保证金的占用 |
-- 作者:lcgs005 -- 发布时间:2015/11/28 21:32:06 -- 精略地看逻辑上是一样的,但在具体的开平仓条件时肯定不一样的,这个我很清楚,如果平仓,则这个方向的持仓就为0了,而持仓为0与持仓为1所对应的平仓条件是完全不等同的 |