金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 4892|回复: 19

请教全局变量问题

[复制链接]

156

主题

445

帖子

445

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
发表于 2023-1-30 14:22 | 显示全部楼层 |阅读模式
请问全局变量能用A2表示吗?
VARIABLE:A2:=0
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-1-30 14:28 | 显示全部楼层
变量名称 无所谓的呀。只要不和系统关键字冲突就行了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

156

主题

445

帖子

445

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-1-30 14:33 | 显示全部楼层
请老师看一下,下面代码有何问题呀?A2为全局变量

开多条件A2:=High>X周期高点 AND A2=0 ;
开空条件A2:=Low<=X周期低点 AND A2=0 ;
平多条件A2:= Low<=Y周期低点 AND  A2=1 ;
平空条件A2:=High>Y周期高点  AND A2=1;
IF 平多条件A2   THEN BEGIN
     Tsell(1     ,SS,LMT,C1_option_bid,0,'',C1_option);
     TSELLSHORT(1   ,SS,LMT,P1_option_ask,0,'',p1_option);
     A2:=0;
  END
  IF 平空条件A2  THEN BEGIN
     TSELL(1   ,SS,LMT,P1_option_bid,0,'',P1_option);//平多沽
     TSELLSHORT(1  ,SS,LMT,C1_option_ask,0,'',c1_option);//平空购
     A2:=0;
  END


  IF 开多条件A2 THEN BEGIN
TBUY(  1      ,ss,LMT,C1_option_ask,0,'',c1_option);
TBUYSHORT( 1  ,ss,LMT,P1_option_bid,0,'',P1_option);
A2:=1;
  END
  IF 开空条件A2  THEN BEGIN
TBUY(  1      ,ss,LMT,P1_option_ask,0,'',P1_option);
TBUYSHORT( 1  ,ss,LMT,C1_option_bid,0,'',C1_option);
A2:=1;
  END
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-1-30 14:36 | 显示全部楼层
你如果是后台,结合上面代码里的逻辑  你应该用:
GLOBALVARIABLE 去定义全局变量。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

156

主题

445

帖子

445

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-1-30 14:39 | 显示全部楼层
知道了,怪不得,谢老师
回复

使用道具 举报

156

主题

445

帖子

445

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-1-30 16:33 | 显示全部楼层
老师好,注释用IF语句不可控,请问如何解决?主要目的是想用全局变量控制开平仓,只平本策略开的仓位
截图202301301630535245.png
回复

使用道具 举报

156

主题

445

帖子

445

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-1-30 16:36 | 显示全部楼层
要求程序化关闭后,直到下一次平仓前,该变量仍然有效,平仓后,该变量赋值为0,开仓后赋值为1,只要没有平仓,该值一直为1,不管几天,平仓后赋值为0,请问如何实现?谢
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-1-30 17:15 | 显示全部楼层
本帖最后由 技术009 于 2023-1-30 17:17 编辑

那只能用 EXTGBDATASET定义的全局变量了。
这有这种才能 在程序关闭后依然保留之前的值。超全局变量名称 可以使用 策略名+品种+周期(可选) 的组合来命名,这样方便区分不同策略,或者相同策略不同周期  对同品种下单的情况。

“,注释用IF语句不可控” 那是 是指字符串类型的。你这里存的都是数值哦。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

156

主题

445

帖子

445

积分

Rank: 4

等级: 专业版

注册:
2021-8-3
曾用名:
 楼主| 发表于 2023-1-30 20:22 | 显示全部楼层
老师好,请问如下改动行吗?对全局变量不理解,见笑了,肯请赐教.

EXTGBDATASET(‘myone’,0);
EXTGBDATASET(‘mytwo’,0);//定义两个变量为0
策略1开多条件:(省略)
策略1平多条件:
策略2开多条件:
策略2平多条件:
IF 策略1平多条件  and  EXTGBDATA(‘myone’)=1  THEN BEGIN
     Tsell(1     ,手数,MKT);
     EXTGBDATASET(‘myone’,0);定义为0
   
  END
  

  IF 策略1开多条件  and  EXTGBDATA(‘myone’)=0  THEN BEGIN
TBUY(  1      , 手数,MKT);
EXTGBDATASET(‘myone’,1);
  END
IF 策略2平多条件  and  EXTGBDATA(‘mytwo’)=1  THEN BEGIN
     Tsell(1     ,手数,MKT);
     EXTGBDATASET(‘mytwo’,0);
   
  END
  

  IF 策略2开多条件  and  EXTGBDATA(‘mytwo’)=0  THEN BEGIN
TBUY(  1      , 手数,MKT);
EXTGBDATASET(‘mytwo’,1);
  END

(目的是两个策略交易一个品种)
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-1-31 09:21 | 显示全部楼层
嗯 这里没问题。你注意2个策略全局变量名称要区分开,否则会冲突。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 17:22 , Processed in 0.105879 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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