以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  全局变量如果是中途重启软件,是不是会变为初始值  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=157781)

--  作者:qq代人发帖
--  发布时间:2017/9/11 14:30:45
--  全局变量如果是中途重启软件,是不是会变为初始值
全局变量如果是中途重启软件,是不是会变为初始值?
--  作者:FireScript
--  发布时间:2017/9/11 14:38:34
--  
http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm  要看你用的是哪一种全局变量了。 这个链接里有详细说明。
--  作者:banzhuan
--  发布时间:2017/9/11 14:39:50
--  
是用的哪个全局变量函数?
具体可以参考这个说明:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm

--  作者:ganchuan
--  发布时间:2017/9/11 17:19:27
--  
就是想在图表程序化中实现一个如果当前持有多单,就不下多单的功能,我想用如果下了多单了,就赋值一下,表示当前有多单这个状态,
--  作者:ganchuan
--  发布时间:2017/9/11 17:21:44
--  
MA1:MA(CLOSE,A);
MA2:MA(CLOSE,B);
手数:=1;
GLOBALVARIABLE:gISHAVELONGSS=HLONGSS;
GLOBALVARIABLE:gISHAVESHORTSS=HSHORTSS;
开多平空条件:=CROSS(MA1,MA2);//开多平空条件
开空平多条件:=CROSS(MA2,MA1);//开空平多条件
//交易条件

//固定止损部分************************

//止盈
//IF C-AVGENTERPRICE>3*MINDIFF THEN BEGIN
//SELL(1,HOLDING,MARKET);
//END

//止损
//IF AVGENTERPRICE-C>2*MINDIFF THEN BEGIN
//SELL(1,HOLDING,MARKET);
//END
//开多条成交,但是没有多头持仓的情况下可以开多单

//IF NOT(ISLASTBAR) THEN EXIT; 
IF gISHAVELONGSS<1 and 开多平空条件 THEN BEGIN
  开多:BUY(开多平空条件,手数,MARKET);
//  IF    islastbar  THEN BEGIN
    gISHAVELONGSS:=1;
//  end

END
//开空条件成交,但是没有空头持仓的情况下可以开多单
IF gISHAVESHORTSS<1 and 开空平多条件 and islastbar THEN BEGIN
 // 开空:BUYSHORT(开空平多条件,手数,MARKET);
  gISHAVESHORTSS:=1;
END



这个指标一运行就给gISHAVELONGSS赋了值,导到不会下单,IF gISHAVESHORTSS<1 and 开空平多条件 and islastbar THEN BEGIN
 // 开空:BUYSHORT(开空平多条件,手数,MARKET);
  gISHAVESHORTSS:=1;
END
像这样,一开始不会赋初值 ,可是出实现不了,开发人员可以测试一下,

--  作者:wenarm
--  发布时间:2017/9/11 19:26:16
--  
图表中用VARIABLE函数,GLOBALVARIABLE一般用于后台。
另外你可以直接用holding判断图表的当前位置仓位状态,没必要用全局变量进行标记。用全局变量标记的话,需要在合适的时候将其复位,要不会造成不在开仓的情况。



--  作者:ganchuan
--  发布时间:2017/9/12 10:17:22
--  
我的软件是可以同时持有多单,和空单的,如果同时持有多单,空单,holding是什么值
--  作者:gxx978
--  发布时间:2017/9/12 10:26:15
--  
图表上不支持锁仓,无法同时持有多仓和空仓,holding表示的是虚拟持仓。
--  作者:ganchuan
--  发布时间:2017/9/12 10:34:10
--  
为什么不可以,我的软件
开多:BUY(开多平空条件,手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);
这样就可开多,开空,我不平就可以啊

--  作者:gxx978
--  发布时间:2017/9/12 10:42:37
--  
在持有多仓的情况下,即使满足了开空的条件,也是不会出开空的信号的,需要在开空前平掉图表上的虚拟多仓。图表的机制是这样的,后台程序化则没有此限制。