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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → DEBUGFILE问题

   

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


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

主题:DEBUGFILE问题

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
DEBUGFILE问题  发帖心情 Post By:2020/3/5 14:45:42    Post IP:144.123.5.122[只看该作者]

调试 的时候通过DEBUGFILE来输出ENTERPRICE,ENTERPRICE接近两分钟才更新为最新的一仓的开仓价,如何缩短ENTERPRICE的变化时间,或者有什么其它方法来写

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/5 14:48:45    Post IP:180.169.30.6[只看该作者]

 ENTERPRICE 函数 如果没有最新开仓信号,它取的就是最近一次开仓的价格。你首先要看下图表模型上是否有新的信号产生。


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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/3/5 14:50:34    Post IP:180.169.30.6[只看该作者]

图表一般不需要使用debugfile,除非为了跟踪闪烁的问题。

像图表,直接在k线图上输出结果看就行。

 

对于图表公式来说,只要加载到k线图。k线有更新变化,公式就会刷新执行(debugfile才会被执行一次,无法单独控制执行频率)。那么debugfile也会执行。除非卡顿,否者不会延迟2分钟的状态。

 

 

[此贴子已经被作者于2020/3/5 14:52:12编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
marks
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/5 15:04:33    Post IP:144.123.5.122[只看该作者]

我用的是后台,TENTERPRICE.而且发现一个问题,就是开仓后的DEBUGFILE输出的TENTERPRICE为0,这是什么情况。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/5 15:12:38    Post IP:180.169.30.6[只看该作者]

看下日志,查下输出时候 单子是否成交了。另外还要看下下单指令是什么类型。
[此贴子已经被作者于2020/3/5 15:16:02编辑过]


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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/3/5 15:13:42    Post IP:180.169.30.6[只看该作者]

后台中策略执行,受运行机制的影响(走完k线模式或者是固定时间间隔模式)。

例如走完k模式。那么这根k结束是,策略才会执行一次(debugfile同理)。

 

 

 

您所说的问题中,你委托指令是什么?建议你把完整代码贴给我们看下。并且把交易记录和你debugfile记录的文件给我们

 

1.TENTERPRICE 未成交时是委托价,成交后是返回成交价。

 

 

 

 

[此贴子已经被作者于2020/3/5 15:24:38编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
marks
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/5 15:30:46    Post IP:144.123.5.122[只看该作者]

代码太长了,我想达到的目的就是通过开仓价去判断接下来的市价和开仓价的关系从而进行下一步操作,
我可不可通过设置单值全局变量去存开仓价,如果有新的开仓价去和单值全局变量比较

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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/5 15:34:08    Post IP:144.123.5.122[只看该作者]

现在出现的问题就是从条件看根本达不到条件,但是开仓了。比较条件是C>=TENTERPRICE+10*MINDIFF,正常情况如果TENTERPRICE有值是达不到这个条件的,但是如果获取不到ENTERPRICE或者ENTERPRICE为0,那这个条件就达到了,我目前来看应该是这个问题。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/5 15:35:48    Post IP:180.169.30.6[只看该作者]

 不行。你这样做 你不仅需要判断成交与否,然后成交了还要获取具体的成交价格。整个过程不一定能实现。
有现成的TENTERPRICE函数 建议直接用函数去操作。
[此贴子已经被作者于2020/3/5 15:36:40编辑过]


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


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2020/2/11 13:06:09
  发帖心情 Post By:2020/3/5 15:40:32    Post IP:144.123.5.122[只看该作者]

那我贴代码吧。
globalvariable:n=1000000;
GLOBALVARIABLE:dd=0;
GLOBALVARIABLE:f=1;
GLOBALVARIABLE:a=0;

jia:=20;
hui:=10;
da:=5;
追踪止盈点数:=10;

if TREMAINQTY(0,'','')>0 and  tenterbars(1)>1 then begin
TCANCEL(1,0);
END

   


if TBUYHOLDINGEX('','',1)>0 and TBUYHOLDINGEX('','',1)<da  AND TENTERPRICE>0 then 
BEGIN
      if f=3 AND TENTERPRICE>0 then
begin
if c<=Tenterprice+5*mindiff and c>=Tenterprice-5*mindiff  then begin
       TBUY(1,1,MKT);
       f:=2;
       if islastbar then
                 DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
       end  
        
    if c<=Tenterprice-(jia+hui)*mindiff  THEN begin
     TSELL(1,0,MKT);
     f:=1;
     end
     
  if c>=Tenterprice+(hui+jia)*mindiff  then begin
     TBUY(1,1,MKT);
             f:=1;
             if islastbar then
                 DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
     end   
end
 
if f=2 AND TENTERPRICE>0 then
BEGIN
  if c>=Tenterprice+hui*mindiff  then begin
    TSELL(1,1,MKT);
    f:=3;
     end
  if c<=Tenterprice-(jia+hui)*mindiff  THEN begin
     TSELL(1,0,MKT);
     f:=1;
     end
     
  if c>=Tenterprice+(hui+jia)*mindiff  then begin
     TBUY(1,1,MKT);
             f:=1;
             if islastbar then
                 DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
     end 
end 
 
   if f=1 AND TENTERPRICE>0 then
     BEGIN
         if c<=Tenterprice-jia*2*mindiff  THEN begin
            TSELL(1,0,MKT);
            f:=1;
            end
            
         if c>=Tenterprice+jia*mindiff  then begin
TBUY(1,1,MKT);
f:=1;
if islastbar then
                 DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
            end
if c<=Tenterprice-hui*mindiff  then BEGIN
TBUY(1,1,MKT);    
f:=2;
if islastbar then
                 DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
end
end                  
end
if TBUYHOLDINGEX('','',1)=da  THEN BEGIN
     if f=3 AND TENTERPRICE>0 then
begin
if c<=Tenterprice+5*mindiff and c>=Tenterprice-5*mindiff  then begin
       TBUY(1,1,MKT);
       f:=2;
       if islastbar then
                 DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
       end  
        
    if c<=Tenterprice-(jia+hui)*mindiff  THEN begin
     TSELL(1,0,MKT);
     f:=1;
     end
     
  if c>=Tenterprice+(hui+jia)*mindiff  then begin
     TBUY(1,1,MKT);
             f:=1;
             if islastbar then
                 DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
                 
     end   
end
       
    if f=2 AND TENTERPRICE>0 then BEGIN
       if c>=Tenterprice+hui*mindiff  then begin
    TSELL(1,1,MKT);
    f:=3;
     end
   if c<=Tenterprice-(jia+hui)*mindiff  THEN begin
     TSELL(1,0,MKT);
     f:=1;
     end   
END
 
if f=1  AND TENTERPRICE>0 then begin
if a=0 then 
    a:=Tenterprice;     
if a>0 THEN BEGIN
if c-追踪止盈点数*mindiff >a  THEN
a:=c-追踪止盈点数*mindiff;
if c<=a then
begin
TSELL(1,0,MKT);
f:=1;
end
END
end      
end

if TBUYHOLDINGEX('','',1)=0 AND TREMAINQTY(0,'','')=0  THEN begin
    TBUY(1,1,MKT);
    if islastbar then
       DEBUGFILE('D:\35.TXT',' Tenterprice:%.2f',Tenterprice);//输出开仓价格
    END

 回到顶部
总数 19 1 2 下一页