金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2332|回复: 9

有什么办法使本K先内的变量值产生变化且每个tick不同呢?

[复制链接]

4077

主题

4147

帖子

4172

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-6-25 13:10 | 显示全部楼层 |阅读模式
请教:全局变量,怎么上个tick改了值之后,下一个tick又变回去了?
我是重新赋值了,赋值后,到下一个TICK又变回初始值了
比如一分钟线,里面有30口价,程序一进去初始化了全局变量,第一口价出来后,我把全局变量赋值了,
第二口价出来后重新进入程序,这时全局变量却又变回初始值了。
那请问有什么办法使本K先内的变量值产生变化且每个tick不同呢?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-25 13:12 | 显示全部楼层
直接贴下你用的代码。正常情况下最新K上的值是会不断更新的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

0

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2021-6-25
曾用名:
发表于 2021-6-25 13:54 来自手机 | 显示全部楼层
最新K上是会更新,但K里面的每个价格变化后全局变量又恢复K开始的值了
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-25 13:56 | 显示全部楼层
这种你贴代码吧。不贴代码完全搞不清楚你本地发生了什么情况的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

0

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2021-6-25
曾用名:
发表于 2021-6-25 14:01 | 显示全部楼层
//全局变量
VARIABLE: kd_sign=0;
VARIABLE: pd_sign=0;
VARIABLE: kk_sign=0;
VARIABLE: pk_sign=0;

VARIABLE: LOGFILEPATH='D:\\TB\TTRADE\TEST.log';
VARIABLE: act_sign='D:\\TB\TTRADE\TEST.txt';


INPUT:n(5,1,100),m(10,2,100);

ma5:ma(HIGH,n);
ma10:ma(HIGH,m);



//5均线上穿10均线,开多、平空
dd:=CROSS(ma5,ma10);

//看多
if dd  then
begin
   if islastbar then
   BEGIN
      DEBUGFILE(LOGFILEPATH,STKLABEL()&',dd:'&numtostr(dd,0)&',curprice:'&numtostr(close,2)&',ma5:'&numtostr(ma5,2)&',ma10:'&numtostr(ma10,2)&',hoding:%.0f',holding);   //写日志-看多条件
      DEBUGFILE(LOGFILEPATH,STKLABEL()&',pk_sign:'&numtostr(pk_sign,0)&',kd_sign:'&numtostr(kd_sign,0)&',pd_sign:'&numtostr(pd_sign,0)&',kk_sign:'&numtostr(kk_sign,2)&',hoding:%.0f',holding);   //写日志-看全局变量
   END
   
//平空
   IF HOLDING<0  THEN
   BEGIN
            if islastbar and pk_sign=0  then
            BEGIN
        DEBUGFILE(act_sign,','&STKLABEL()&',closeshort,'&'CALLPRICE='&numtostr(close,2),0);//输出平空信号
        pk_sign:=1;
        kk_sign:=0;
        DEBUGFILE(LOGFILEPATH,'after send_close_short_sign'&',pk_sign:'&numtostr(pk_sign,0)&',kd_sign:'&numtostr(kd_sign,0)&',pd_sign:'&numtostr(pd_sign,0)&',kk_sign:'&numtostr(kk_sign,2)&',hoding:%.0f',holding);   //写日志-看全局变量
     END   
     
         SELLSHORT(HOLDING<0,0,THISCLOSE);
         if HOLDING=0 and ISLASTBAR THEN
            DEBUGFILE(LOGFILEPATH,','&STKLABEL()&',close_short,'&'CLOSESHORT_PRICE='&numtostr(EXITPRICE(),2)&',holding:%.0f',holding);//写日志-平空价格
   END

// 开多
   IF HOLDING=0 THEN  
   BEGIN
               if islastbar and kd_sign=0 then
               BEGIN
                  DEBUGFILE(act_sign,','&STKLABEL()&',openlong,'&'CALLPRICE='&numtostr(close,2),0);//输出开多信号
                  kd_sign:=1;
                  pd_sign:=0;
                  DEBUGFILE(LOGFILEPATH,'after send_open_long_sign'&',pk_sign:'&numtostr(pk_sign,0)&',kd_sign:'&numtostr(kd_sign,0)&',pd_sign:'&numtostr(pd_sign,0)&',kk_sign:'&numtostr(kk_sign,2)&',hoding:%.0f',holding);   //写日志-看全局变量
                   END
                  
        buy(holding=0,1,THISCLOSE);
        if HOLDING>0 and islastbar then
           DEBUGFILE(LOGFILEPATH,','&STKLABEL()&',openlong,'&'OPENLONG_PRICE='&numtostr(ENTERPRICE,2)&',holding:%.0f',holding);//写日志-开多价格
         
   END
   
end



//5日均线下破10日均线,平多、开空

kk:=CROSS(ma10,ma5);

//看空     
if kk then
begin

   if islastbar then
   BEGIN
      DEBUGFILE(LOGFILEPATH,STKLABEL()&',kk:'&numtostr(kk,0)&',curprice:'&numtostr(close,2)&',ma5:'&numtostr(ma5,2)&',ma10:'&numtostr(ma10,2)&',hoding:%.0f',holding);   //写日志-看空条件
      DEBUGFILE(LOGFILEPATH,STKLABEL()&',pk_sign:'&numtostr(pk_sign,0)&',kd_sign:'&numtostr(kd_sign,0)&',pd_sign:'&numtostr(pd_sign,0)&',kk_sign:'&numtostr(kk_sign,2)&',hoding:%.0f',holding);   //写日志-看全局变量
   END

//平多
   IF HOLDING>0 THEN  
   BEGIN
            if islastbar and pd_sign=0 then          
            BEGIN       
        DEBUGFILE(act_sign,','&STKLABEL()&',closelong,'&'CALLPRICE='&numtostr(close,2),0);//输出平多信号
        pd_sign:=1;
        kd_sign:=0;
        DEBUGFILE(LOGFILEPATH,'after send_close_long_sign'&',pk_sign:'&numtostr(pk_sign,0)&',kd_sign:'&numtostr(kd_sign,0)&',pd_sign:'&numtostr(pd_sign,0)&',kk_sign:'&numtostr(kk_sign,2)&',hoding:%.0f',holding);   //写日志-看全局变量
     END
        sell(holding>0,0,THISCLOSE);
        if HOLDING=0 and ISLASTBAR then
           DEBUGFILE(LOGFILEPATH,','&STKLABEL()&',closelong,'&'CLOSE_LONG_PRICE='&numtostr(EXITPRICE(),2)&',holding:%.0f',holding);//写日志-平多价格
   END
   
   
//开空
    if holding=0 then
   BEGIN
               if islastbar and kk_sign=0 then
               BEGIN
            DEBUGFILE(act_sign,','&STKLABEL()&',openshort,'&'CALLPRICE='&numtostr(close,2),0);//输出开空信号
                    kk_sign:=1;
                    pk_sign:=0;
                DEBUGFILE(LOGFILEPATH,'after send_open_short_sign'&',pk_sign:'&numtostr(pk_sign,0)&',kd_sign:'&numtostr(kd_sign,0)&',pd_sign:'&numtostr(pd_sign,0)&',kk_sign:'&numtostr(kk_sign,2)&',hoding:%.0f',holding);      //写日志-看全局变量                         
                END
               
        buyshort(holding=0,1,THISCLOSE);
                   if HOLDING<0 and islastbar then
                  DEBUGFILE(LOGFILEPATH,','&STKLABEL()&',open_short,'&'OPEN_SHORT_PRICE='&numtostr(ENTERPRICE,2)&',holding:%.0f',holding);//写日志-开空价格
   END       
   
     
end


持仓:holding,linethick0;
回复

使用道具 举报

0

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2021-6-25
曾用名:
发表于 2021-6-25 14:02 | 显示全部楼层
请大神帮我看看,其中的全局变量,每次价格变化后都恢复回原值
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-25 14:06 | 显示全部楼层
你是通过把全局变量用DEBUGFILE 输出的形式来观察其值变化的是吗?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-25 14:28 | 显示全部楼层

最新K上,单个K 内 只根据最新行情的情况执行代码的计算逻辑。比如前面一个K值是1,我们代码逻辑是阳线+1,阴线不变。最新K上行情一直变化,那么最新K上这个变量的值就会一直在2和1之间闪烁变化。

所以不是你记录的值变了而是:
1.最新K上最终执行的逻辑始终按照最新行情判定
2.值的变化 是基于上一个K的值为基础。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

0

主题

11

帖子

11

积分

Rank: 1

等级: 新手上路

注册:
2021-6-25
曾用名:
发表于 2021-6-25 15:50 | 显示全部楼层
那有没有办法把每个tick导致的变量改变保存下来,用于下一个tick?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-6-25 15:52 | 显示全部楼层
后台里面可以。但是后台里面全局变量是没有历史值的,是只有最新值。比如GLOBALVARIABLE 定义的全局变量。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 23:27 , Processed in 0.220732 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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