以文本方式查看主题

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

--  作者:fff
--  发布时间:2014/3/26 14:32:35
--  全局变量无法更新


//对全局变量重置和保存
if barpos>extgbdata(\'barp\') then 
begin
        extgbdataset(\'num\',0) ; //记录当根K线的交易次数
      extgbdataset(\'lossnum\',0) ; //记录亏损次数,在新一根K线开始时,初始化为0
      extgbdataset(\'barp\',barpos) ; //控制新的一根K线重新计算  
end
//输出
Tbarp: barpos, linethick0 ;
Tnum: extgbdata(\'num\'), linethick0 ;
Tlossnum: extgbdata(\'lossnum\'), linethick0 ;

模拟账户运行是发现(使用免费专业版),到下一根K线时候,金字塔无法更新全局变量保存。(先手动令以上三个变量都不为0)



--  作者:fff
--  发布时间:2014/3/26 14:34:41
--  


继续运行发现,可累加但不能在运行至下根K线处重置为0。

--  作者:fff
--  发布时间:2014/3/26 14:38:40
--  

累加如下:

if Tholding<0 and  平空条件  then  //平空
begin
         Tsellshort(1,0,mkt), ALLOWREPEAT,ORDERQUEUE ;
         extgbdataset(\'num\',extgbdata(\'num\')+1) ;//平仓一次算一次交易
         if C>Tenterprice then extgbdataset(\'lossnum\',extgbdata(\'lossnum\')+1) ; // 平仓时判断,是否亏损,并记录亏损次数
end


if Tholding>0 and  平多条件  then  //平多
begin
          Tsell(1,0,mkt), ALLOWREPEAT,ORDERQUEUE ;
          extgbdataset(\'num\',extgbdata(\'num\')+1) ;//平仓一次算一次交易
        if C<Tenterprice then extgbdataset(\'lossnum\',extgbdata(\'lossnum\')+1) ; // 平仓时判断,是否亏损,并记录亏损次数
end




--  作者:fff
--  发布时间:2014/3/26 14:44:54
--  


另:以上方式的平仓的ORDERQUEUE ,和开仓的ORDERQUEUE 能匹配吗?

--  作者:jinzhe
--  发布时间:2014/3/26 14:53:41
--  

orderqueue是在反手程序里面才是顺序下单

if  .....then  begin

tsell,orderqueue;

tbuyshort,orderqueue;

end

 

你那样单独的写是在下单条件触发后等两秒的时间,之后就下单,不管前面的开平仓

 

其他的问题在测试


--  作者:jinzhe
--  发布时间:2014/3/26 14:56:24
--  
//对全局变量重置和保存
if barpos>extgbdata(\'barp\') then 
begin
        extgbdataset(\'num\',0) ; //记录当根K线的交易次数
      extgbdataset(\'lossnum\',0) ; //记录亏损次数,在新一根K线开始时,初始化为0
      extgbdataset(\'barp\',barpos) ; //控制新的一根K线重新计算  
end
//输出
Tbarp: barpos, linethick0 ;
Tnum: extgbdata(\'num\'), linethick0 ;
Tlossnum: extgbdata(\'lossnum\'), linethick0 ;

 

 

这段代码的结果和你想象的不一样在哪里?

运行的结果哪里不对?


--  作者:fff
--  发布时间:2014/3/26 15:07:43
--  


发现全局变量无法更新。

模拟账户运行是发现(使用免费专业版),到下一根K线时候,金字塔无法更新全局变量保存。(先手动令以上三个变量都不为0,下根K线处未见金字塔重置全局变量为0)

--  作者:jinzhe
--  发布时间:2014/3/26 15:22:25
--  
以下是引用fff在2014/3/26 15:07:43的发言:


发现全局变量无法更新。

模拟账户运行是发现(使用免费专业版),到下一根K线时候,金字塔无法更新全局变量保存。(先手动令以上三个变量都不为0,下根K线处未见金字塔重置全局变量为0)

 这个是没问题的,你把有问题的现象截图下


--  作者:fff
--  发布时间:2014/3/26 15:36:02
--  


图片点击可在新窗口打开查看此主题相关图片如下:全局变量数据管理.jpg
图片点击可在新窗口打开查看

后台轮询方式:
在当根K线先手动令num和lossnum为0,然后交易操作亏损平仓后,到下根K线后再查会发现num和lossnum未重置为0。(BARP第一次被金字塔保存,但下一根K线不见更新!


--  作者:fff
--  发布时间:2014/3/26 15:37:01
--  


或者,在当根K线先手动令num和lossnum不为为0,到下根K线后再查会发现num和lossnum未重置为0。(BARP第一次被金字塔保存,但下一根K线不见更新!