金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3822|回复: 5

MACD, KDJ 都是 属于递归算法吗, 完全相同的程序用在图表程序化和后台程序化得出...

[复制链接]

52

主题

161

帖子

161

积分

Rank: 2

等级: 标准版

注册:
2021-6-15
曾用名:
发表于 2021-11-21 08:41 | 显示全部楼层 |阅读模式
MACD, KDJ 都是 属于递归算法吗, 完全相同的程序用在图表程序化和后台程序化得出的交易记录完全是不一样的吗? 为什么?

回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-11-21 09:59 | 显示全部楼层
本帖最后由 技术008 于 2021-11-21 10:00 编辑

ema就是递归,你看函数说明里有介绍都是依据前一根计算结果参与计算

最简单解决办法,不要去纠结结果不一样,就好比问多少天均线是对的,这个根本没有正确答案
一般来说数据量更多那么结果趋向更一致,这个函数说明里也有提到
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

52

主题

161

帖子

161

积分

Rank: 2

等级: 标准版

注册:
2021-6-15
曾用名:
 楼主| 发表于 2021-11-22 16:25 | 显示全部楼层
但是问题是技术008 你这个人 在回答下面的问题的时候也不会回答我问的为什么, 就只有两个字“是的”!

https://www.weistock.com/bbs/for ... p;extra=&page=2

我说了我分别用后台程序化精细化历史测评和图表程序化1分钟做测评, 在后台程序化使用的起始时间跟图表程序化一样都使用相同开始时间2019/01/01,09:00 。 然后查找2021年的的交易记录发现还是不一样, 两年时间1分钟的K线量足够有几万根, 数据量已经够多了怎么会不一样呢? 而且即使是递归函数我设置的开始时间是相同的, 所以即使是开始的时候大家都是同一起跑线, 只能说给出的前期2019年到2020年交易结果可能不正确,但两者的交易应该是一样的! 你拿递归函数这个概念忽悠我干什么呢?
能否找个高级点的技术回答上面链接的问题 和 我现在问的问题?
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-11-22 21:59 | 显示全部楼层
tbuy(1,1,mkt);
tsell(1,1,mkt);

你用这个后台去测试就会发现和图表的无脑开平结果也会不一样,这个就是后台和图表的机制不一样,后台不是开仓信号后立即认为有持仓,而图表是有信号就有持仓

之所以建议你不要去纠结在于图表和后台他就是很多地方不一样,就算你实盘也是一样,图表有了信号就有持仓,实际后台下单是成交后才有持仓
这些都是不一样的地方
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-11-22 22:08 | 显示全部楼层
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  :=EMA(DIFF,9);
MACD :2*(DIFF-DEA);
if cross(macd,0) then
begin
        sell(1,1,marketr);
        tsell(1,1,mkt);
        buyshort(1,1,marketr);
        tbuyshort(1,1,mkt);
END

if cross(0,macd) then
begin
        sellshort(1,1,marketr);
        tsellshort(1,1,mkt);
        buy(1,1,marketr);
        tbuy(1,1,mkt);
END


你可以试下这种极其简单的程序那么回测出来结果是否一样,只能说因为机制原因,图表和后台是存在结果不一样的可能性的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9933

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-11-22 22:20 | 显示全部楼层
1.图表和后台运行的机制本就不同。在复杂策略中,受到函数差异、数据起始位置、下单信号指令、程序化运行模式等等因素的影响。做这种对比操作,本身就没有任何实际意义。

2.递归函数对于数据最为敏感、采用的数据起始位置不同,其结果必然不同。和数据量的多少无关(相对于相同的一段数据时段内)。因此:
(1)排查图表回测设置,是否勾选了“严格使用时段数据”。
(2)后台回测设定的时段是下图所示的界面,和你所设定的后台程序化里的设置无关。你所设置的位置只对程序化实时运行有关。
截图202111222153476343.png
注:图表回测时段按天。后台回测时段精确到秒级别(北京时间)。你怎么能那么肯定起始位置一定相同?
建议你自己在上证指数上右键数据,查看测试的1分钟周期,具体有多少数据。回测范围直接涵盖掉该品种的所有数据。以确保数据量的起始位置是一样的。

3. 图表策略区分本周期和次周期指令,在后台策略中是不区分的。这个也会造成信号差异
4.后台函数和图表函数之间存在差异,这个要具体代码具体分析(如holding和tbugholding等等),例如你其他相关帖子中有提及到DYNAINFO类的函数,这类函数不支持回测。
5.图表回测没有T+1模式,除非代码在中有特殊处理。后台则可以选择。
6.后台回测中,支持逐笔回测。你在之前的帖子中,一直没有明确说明是勾选。这个选项必然造成差异。别说和图表对比,就是两个后台对比,勾和不勾都有差异。

除上述的情况外,还有其他因素的干扰,没法逐个列举,只能具体问题具体分析。这种多个因变量的控制,没几个人能做到。你只能从图表回测和后台回测的交易明细逐笔对照。找到第一处不同,再逐个信号条件反推因子项。


说明:如果008都不能解答的问题,技术支持中,就没人能再解答你的问题。自己考虑自行分析吧。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-5-24 10:33 , Processed in 0.121093 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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