欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 当仓位有变化时,我把相关信息写入文件,为什么会有重复的数据呢?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3948人关注过本帖树形打印复制链接

主题:当仓位有变化时,我把相关信息写入文件,为什么会有重复的数据呢?

帅哥哟,离线,有人找我吗?
qq代人发帖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
当仓位有变化时,我把相关信息写入文件,为什么会有重复的数据呢?  发帖心情 Post By:2021/1/8 13:49:55    Post IP:58.246.57.26[只看该作者]

VARIABLE:num:=0;//记录持仓量
VARIABLE:sprice:=price;//基准价格

手数:=ss;
开多条件:=C>=sprice+jg;//jg为网格间隔
平多条件:=C<=sprice-jg;

K线日期:DATE;
K线时间:TIME;
当前持仓量:HOLDING,COLORGRAY,LINETHICK0;
//当前资产:ASSET,NOAXIS,COLORGRAY;

IF K线日期 >= DATE_SELF and K线时间>= TIME_SELF and 开多条件 THEN 
BEGIN
开多:BUY(开多条件,手数,MARKET);
sprice:=sprice+jg;
END

IF K线日期 >= DATE_SELF and K线时间>= TIME_SELF and 平多条件 and HOLDING >= 手数 THEN 
BEGIN
平多:SELL(平多条件,手数,THISCLOSE);
sprice:=sprice-jg;
END
//当仓位有变化时,写入文件
IF num != HOLDING THEN
BEGIN
DEBUGFILE('C:\jzt\ru2101,mn01,1M.txt',NUMTOSTR(HOLDING,0)+' %.2f' ,close);
num:=HOLDING;
END

 

当仓位有变化时,我把相关信息写入文件,为什么会有重复的数据呢?


图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/1/8 14:05:11    Post IP:58.246.57.26[只看该作者]

 这个和运行机制有关系。每次盘口数据更新的时候,都会在上一个K的数据基础上重新进行一次运算。
本根K的所有数据 都会在重新计算时重置。所以无论你这里的判断结果如何,下一个分笔到来时候一切都重新开始。


num 这个全局变量也是一样的,它无法记住单次计算的结果,它记住的是这个K走完时候,也就是K线固定时候的一个最终值。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
zhuiyin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:2 积分:0 威望:0 精华:0 注册:2021/1/8 14:53:36
那请问一下,如何调整代码,解决这个问题呢  发帖心情 Post By:2021/1/8 14:54:53    Post IP:110.87.56.157[只看该作者]

那请问一下,如何调整代码,解决这个问题呢

 回到顶部
帅哥哟,离线,有人找我吗?
zhuiyin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:2 积分:0 威望:0 精华:0 注册:2021/1/8 14:53:36
请问一下,那我这样子修改可以吗?  发帖心情 Post By:2021/1/8 16:33:31    Post IP:110.87.56.157[只看该作者]

VARIABLE:num:=0;//记录持仓量
VARIABLE:sprice:=price;//基准价格

手数:=ss;
开多条件:=C>=sprice+jg;//jg为网格间隔
平多条件:=C<=sprice-jg;

K线日期:DATE;
K线时间:TIME;
当前持仓量:HOLDING,COLORGRAY,LINETHICK0;
//当前资产:ASSET,NOAXIS,COLORGRAY;

IF K线日期 >= DATE_SELF and K线时间>= TIME_SELF and 开多条件 THEN 
BEGIN
开多:BUY(开多条件,手数,MARKET);
DEBUGFILE('C:\jzt\ru2101,mn01,1M.txt',NUMTOSTR(HOLDING,0)+' %.2f' ,close);
sprice:=sprice+jg;
END

IF K线日期 >= DATE_SELF and K线时间>= TIME_SELF and 平多条件 and HOLDING >= 手数 THEN 
BEGIN
平多:SELL(平多条件,手数,THISCLOSE);
DEBUGFILE('C:\jzt\ru2101,mn01,1M.txt',NUMTOSTR(HOLDING,0)+' %.2f' ,close);
sprice:=sprice-jg;
END



 回到顶部