金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 491|回复: 7

回测开仓位置与代码不一致

[复制链接]

13

主题

84

帖子

84

积分

Rank: 4

等级: 专业版

注册:
2024-4-29
曾用名:
发表于 2024-8-1 10:51 | 显示全部楼层 |阅读模式
截图202408011045443907.png
使用的pel语言引用python,回测中,实际反手的位置是在下面箭头处,即收盘处,但代码里写的是价格小于黄线价格即做空,也就是左上的箭头处做空,为什么回测反手位置与代码不一致呢?
我的代码如下:
KD:=holding<=0 and CLOSE>=RenkoMaxValue;         
KK:=holding>=0 and CLOSE<=RenkoMinValue;         
PD:=holding>0 and CLOSE<=RenkoMinValue;//RenkoMinValue即黄线数据
PK:=holding<0 and CLOSE>=RenkoMaxValue;

平空:SELLSHORT(PK,1,MARKETR);
开多:BUY(KD,1,MARKETR);          //开多信号
平多:SELL(PD,1,MARKETR);
开空:BUYSHORT(KK,1,MARKETR);     //开空信号

回复

使用道具 举报

0

主题

2635

帖子

2635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-8-1 10:58 | 显示全部楼层
本帖最后由 资深技术03 于 2024-8-1 11:00 编辑

在图表中的里理解成交价只受下单指令的影响,代码中是本周期市价指令,那么图表中的理论价格就是按收盘价计算的。至于黄线RenkoMinValue,它控制的条件是否成立,不是委托价格。
如果是实际交易中,并且是采用固定轮训模式运行策略,实际执行效果是委托价格会在RenkoMinValue附近(k线变化中)。
回复

使用道具 举报

13

主题

84

帖子

84

积分

Rank: 4

等级: 专业版

注册:
2024-4-29
曾用名:
 楼主| 发表于 2024-8-1 11:19 | 显示全部楼层
只有本周期和次周期两种指令,如果本周期都不能实现回测中k线内交易,那次周期指令更不能实现想要的效果了。那么,是否有办法能在回测时实现k线变化中,触碰到RenkoMinValue就市价成交呢?
我理解实盘中固定轮询可能实现此效果,但这也使得回测的结果与实盘结果不一致。如果回测中,收盘价高于RenkoMinValue,就不会开单了,这可能就是个假突破,但实盘中固定轮询却成交了,盘中损失。回测效果好,实盘效果差,可能就出现了
回复

使用道具 举报

0

主题

2635

帖子

2635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-8-1 11:21 | 显示全部楼层
本帖最后由 资深技术03 于 2024-8-1 11:25 编辑
106107 发表于 2024-8-1 11:19
只有本周期和次周期两种指令,如果本周期都不能实现回测中k线内交易,那次周期指令更不能实现想要的效果了 ...

本周指令只是为了体现固定轮训的特点,回测本质上是一个静态过程,每根k只有开高低收4个价格。所以回测的成交价格只能围绕开高低收处理的,不同指令对应不同价格(包括限价指令,它默认也要在优于成交的k线价格范围中)。



回复

使用道具 举报

13

主题

84

帖子

84

积分

Rank: 4

等级: 专业版

注册:
2024-4-29
曾用名:
 楼主| 发表于 2024-8-1 11:37 | 显示全部楼层
那就是回测必然无法实现k线内发单了,如果实盘采用固定轮询,肯定会面临实盘效果与回测效果存在巨大差异的问题了,是不是这个意思
回复

使用道具 举报

0

主题

2635

帖子

2635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-8-1 12:00 | 显示全部楼层
本帖最后由 资深技术03 于 2024-8-1 12:05 编辑
106107 发表于 2024-8-1 11:37
那就是回测必然无法实现k线内发单了,如果实盘采用固定轮询,肯定会面临实盘效果与回测效果存在巨大差异的 ...

对的,图表回测并不能完全体现出实盘的特点。即使是后台程序化的逐笔回测也不能完全体现出实时交易的全部特点。至于差异大小本质上只取决于策略本身,在没有使用未来数据的情况下,排除掉撮合机制的影响,其差异一般都会在可控范围内。
回复

使用道具 举报

13

主题

84

帖子

84

积分

Rank: 4

等级: 专业版

注册:
2024-4-29
曾用名:
 楼主| 发表于 2024-8-1 15:36 | 显示全部楼层
经过测试,使用limitr的指令,就可以在回测时模拟实盘时触价市价成交了。实盘中再改为按照tick固定轮询,应该就能保证回测和实盘基本一致了
截图202408011534082173.png
回复

使用道具 举报

0

主题

2635

帖子

2635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-8-1 16:04 | 显示全部楼层
限价指令是指定的价格,默认只要合理范围内,图表计算的成交价就是制定价格。至于和实盘是否一致取决于撮合成交机制。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 03:16 , Processed in 0.268590 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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