金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3371|回复: 27

仓位计算闪烁

[复制链接]

69

主题

238

帖子

248

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
发表于 2024-7-9 10:26 | 显示全部楼层 |阅读模式
我的仓位计算在逐k仅刷新最后一根K线的运行模式下会有闪烁。就是刚好卡在四舍五入区间的时候,一会加仓一手一会减仓一手。都已经这么写了open_price不应该固定了吗
//***********************************//lots定义//***********************************//
open_price:=valuewhen(holding=0 and (bkcond or skcond),oopen);
lots:=max(round((money*10000/(open_price*multiplier))),1);

//会有变化

//***********************************//lots定义//***********************************//
if holding=0 and (bkcond or skcond) then  open_price:=oopen;
lots:=max(round((money*10000/(open_price*multiplier))),1);

还是有变化

//***********************************//lots定义//***********************************//
variable:open_price:=0;
if holding=0 and (bkcond or skcond) then  open_price:=oopen;
lots:=max(round((money*10000/(open_price*multiplier))),1);

加全局变量也还是有变化

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-9 10:37 | 显示全部楼层
这种只能输出调试了,看open_price的值是否发生变化了,你的open_price的值是通过holding=0 and (bkcond or skcond)条件得来的,只有取到的oopen的值不变,那lots才不变啊。只能输出跟踪计算LOTS中的各个变量的值,才能定位到引起lots发生变化的原因的。单从这段代码看,没法肯定open_price是不变的啊。你现在只是默认holding,bkcond,skcond是不变的,实际运行中,如果变化了,那就会导致lots的计算可能变化的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

69

主题

238

帖子

248

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2024-7-9 11:15 | 显示全部楼层
技术010 发表于 2024-7-9 10:37
这种只能输出调试了,看open_price的值是否发生变化了,你的open_price的值是通过holding=0 and (bkcond or ...

策略是开一次平一次的
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-9 11:23 | 显示全部楼层
所以只能输出调试了,看之前的信号是否闪烁或其他原因造成获取的oopen发生了变化,否则不好判断是什么原因的,可以加debugfile调试语句跟踪lots的计算过程。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

69

主题

238

帖子

248

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2024-7-9 13:51 | 显示全部楼层
技术010 发表于 2024-7-9 11:23
所以只能输出调试了,看之前的信号是否闪烁或其他原因造成获取的oopen发生了变化,否则不好判断是什么原因 ...

为什么多策略汇总代码改为逐k模式后,子策略里的debug输出不出来变量了
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-9 13:54 | 显示全部楼层
那要看你输出语句是怎么写的啊,路径是否写对,以及策略是否正常运行了,只有这几个角度排查才能确定debugfile是否正常执行了啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

69

主题

238

帖子

248

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2024-7-9 22:38 | 显示全部楼层
技术010 发表于 2024-7-9 13:54
那要看你输出语句是怎么写的啊,路径是否写对,以及策略是否正常运行了,只有这几个角度排查才能确定debugf ...

在图表上运行的时候正常输出了,在后台多策略引用持仓下单的时候没有输出
回复

使用道具 举报

69

主题

238

帖子

248

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2024-7-9 22:41 | 显示全部楼层
技术010 发表于 2024-7-9 13:54
那要看你输出语句是怎么写的啊,路径是否写对,以及策略是否正常运行了,只有这几个角度排查才能确定debugf ...

在后台序列模式下是正常运行的,逐k模式就不行了

补充内容 (2024-7-10 09:08):
多策略汇总,在后台序列模式下运行,子策略正常输出了变量,在逐k模式下没有输出
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-7-10 09:10 | 显示全部楼层
我们测试了下,在后台策略用逐K模式,debugfile是可以在被引用的指标中有输出的啊。你可以提供下简化的范例给我们,我们测试下,看是否是和用到的某些函数有关了。
截图202407100910402269.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

69

主题

238

帖子

248

积分

Rank: 2

等级: 标准版

注册:
2022-6-27
曾用名:
 楼主| 发表于 2024-7-10 09:25 | 显示全部楼层
技术010 发表于 2024-7-10 09:10
我们测试了下,在后台策略用逐K模式,debugfile是可以在被引用的指标中有输出的啊。你可以提供下简化的范例 ...

逐k模式引用的前面加上
3m:=mod(tt,180)=0;
5m:=mod(tt,300)=0;


//***********************************************//日内策略持仓引用//***********************************************
if 3M=1  then aah:=stkindiex('','策略a.cc0()',0,17,0,3000); //引用3分钟周期上的策略a的仓位。
if 5M=1  then bbh:=stkindiex('','策略b.cc0()',0,2,0,3000);  //引用5分钟周期上的策略b的仓位。

补充内容 (2024-7-10 09:25):
tt:=time0;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 03:52 , Processed in 0.121151 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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