以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  DEBUGFILE问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=174789)

--  作者:marks
--  发布时间:2020/3/5 14:45:42
--  DEBUGFILE问题
调试 的时候通过DEBUGFILE来输出ENTERPRICE,ENTERPRICE接近两分钟才更新为最新的一仓的开仓价,如何缩短ENTERPRICE的变化时间,或者有什么其它方法来写
--  作者:FireScript
--  发布时间:2020/3/5 14:48:45
--  
 ENTERPRICE 函数 如果没有最新开仓信号,它取的就是最近一次开仓的价格。你首先要看下图表模型上是否有新的信号产生。

--  作者:wenarm
--  发布时间:2020/3/5 14:50:34
--  

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

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

 

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

 

 

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

--  作者:marks
--  发布时间:2020/3/5 15:04:33
--  
我用的是后台,TENTERPRICE.而且发现一个问题,就是开仓后的DEBUGFILE输出的TENTERPRICE为0,这是什么情况。
--  作者:FireScript
--  发布时间:2020/3/5 15:12:38
--  
看下日志,查下输出时候 单子是否成交了。另外还要看下下单指令是什么类型。
[此贴子已经被作者于2020/3/5 15:16:02编辑过]

--  作者:wenarm
--  发布时间:2020/3/5 15:13:42
--  

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

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

 

 

 

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

 

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

 

 

 

 

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

--  作者:marks
--  发布时间:2020/3/5 15:30:46
--  
代码太长了,我想达到的目的就是通过开仓价去判断接下来的市价和开仓价的关系从而进行下一步操作,
我可不可通过设置单值全局变量去存开仓价,如果有新的开仓价去和单值全局变量比较

--  作者:marks
--  发布时间:2020/3/5 15:34:08
--  
现在出现的问题就是从条件看根本达不到条件,但是开仓了。比较条件是C>=TENTERPRICE+10*MINDIFF,正常情况如果TENTERPRICE有值是达不到这个条件的,但是如果获取不到ENTERPRICE或者ENTERPRICE为0,那这个条件就达到了,我目前来看应该是这个问题。
--  作者:FireScript
--  发布时间:2020/3/5 15:35:48
--  
 不行。你这样做 你不仅需要判断成交与否,然后成交了还要获取具体的成交价格。整个过程不一定能实现。
有现成的TENTERPRICE函数 建议直接用函数去操作。
[此贴子已经被作者于2020/3/5 15:36:40编辑过]

--  作者:marks
--  发布时间:2020/3/5 15:40:32
--  
那我贴代码吧。
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