以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  后台策略-移动止盈问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=160938)

--  作者:a383623133
--  发布时间:2018/1/9 9:27:49
--  后台策略-移动止盈问题
//移动止损模块部分*******************************
VARIABLE:A1=0,aa1=0;
IF 多仓>0 AND EXTGBDATA(\'a1\' )=0 THEN EXTGBDATASET( \'a1\',1 );
IF 空仓>0 AND EXTGBDATA(\'aa1\' )=0 THEN EXTGBDATASET( \'aa1\',1 );
//使A始终表示监控开始后的最高价
IF DYNAINFO(  7)>EXTGBDATA(\'a1\' ) and EXTGBDATA(\'a1\' )>0 THEN EXTGBDATASET( \'a1\',DYNAINFO(  7));
IF DYNAINFO(  7)>EXTGBDATA(\'aa1\' ) and EXTGBDATA(\'aa1\' )>0 THEN EXTGBDATASET( \'aa1\',DYNAINFO(  7));
//发现空仓,将A赋值为0
IF 多仓=0 THEN EXTGBDATASET( \'a1\',0);
IF 空仓=0 THEN EXTGBDATASET( \'aa1\',0);
多最高盈:(EXTGBDATA(\'a1\' )-多仓均价)/MINDIFF,LINETHICK0;
多回撤幅度:多最高盈率-多仓盈亏,LINETHICK0;
空最高盈:(EXTGBDATA(\'aa1\' )-空仓均价)/MINDIFF,LINETHICK0;
空回撤幅度:空最高盈率-空仓盈亏,LINETHICK0;

如上公式,为什么运行单个策略单个品种就正常,运行两个策略或一个策略两个品种就不正常?请问是哪里出错?

--  作者:FireScript
--  发布时间:2018/1/9 9:40:14
--  

使用上有错误

全局变量的说明链接:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm

 

EXTGBDATA 对应的全局变量 在工具-数据管理-全局变量下设置,是整个金字塔内有效的,可以实现多个指标之间的一些沟通。 

variable定义的直接使用即可,如下所示:

VARIABLE:A1=0,aa1=0;
IF 多仓>0 AND a1=0 THEN a1:=1;
 

--  作者:a383623133
--  发布时间:2018/1/9 10:15:20
--  
我要运行多个策略,公式该如何修改?
--  作者:FireScript
--  发布时间:2018/1/9 10:37:29
--  

2楼 我回复错了,后台不能用variable 替换成GLOBALVARIABLE即可。

 

 

还有你说问:运行多个策略怎么改?没明白你的需求具体怎样的,建议详细说明下。


--  作者:a383623133
--  发布时间:2018/1/9 10:43:17
--  
GLOBALVARIABLE代替variable吗?
每个品种单独做一个公式,同时会运行多个公式,这样会不会冲突的意思?如果会该如何编写?

--  作者:a383623133
--  发布时间:2018/1/9 13:37:40
--  
没人回答吗??
--  作者:FireScript
--  发布时间:2018/1/9 13:38:16
--  

每个品种之间是独立的,全局变量GLOBALVARIABLE不会相互冲突的。


--  作者:a383623133
--  发布时间:2018/1/9 14:07:38
--  
GLOBALVARIABLE代替variable就可以了?
--  作者:FireScript
--  发布时间:2018/1/9 14:14:47
--  
是的,要替换下。
--  作者:a383623133
--  发布时间:2018/1/9 14:34:22
--  
//移动止损模块部分*******************************
GLOBALVARIABLE=0,aa1=0;
IF 多仓>0 AND a1=0 THEN EXTGBDATASET( \'a1\',1 );
IF 空仓>0 AND aa1=0 THEN EXTGBDATASET( \'aa1\',1 );
//使A始终表示监控开始后的最高价
IF DYNAINFO(  7)>EXTGBDATA(\'a1\' ) and EXTGBDATA(\'a1\' )>0 THEN EXTGBDATASET( \'a1\',DYNAINFO(  7));
IF DYNAINFO(  7)>EXTGBDATA(\'aa1\' ) and EXTGBDATA(\'aa1\' )>0 THEN EXTGBDATASET( \'aa1\',DYNAINFO(  7));
//发现空仓,将A赋值为0
IF 多仓=0 THEN EXTGBDATASET( \'a1\',0);
IF 空仓=0 THEN EXTGBDATASET( \'aa1\',0);
多最高盈:(EXTGBDATA(\'a1\' )-多仓均价)/MINDIFF,LINETHICK0;
多回撤幅度:多最高盈率-多仓盈亏,LINETHICK0;
空最高盈:(EXTGBDATA(\'aa1\' )-空仓均价)/MINDIFF,LINETHICK0;
空回撤幅度:空最高盈率-空仓盈亏,LINETHICK0;
是这样写吗?