以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=6734)

--  作者:longbow
--  发布时间:2011/6/2 14:25:53
--  没有开单的问题(连续两次了)

全局变量的确是个问题,只能在最初的时候初始化,不可能在开仓后再来初始化。

请版主找几个好帖,好好学习一下,总是出问题。

 

我今天的空仓没有开出:

 

if buyshortcond then begin
    
     Tbuyshort(1,sv,MKT,0,0,\'83060\',\'IF06\'),orderqueue;
     //Tbuyshort(1,2,MKT,0,0,\'8114\',\'IF06\'),orderqueue;
     Tbuyshort(1,2,MKT,0,0,\'8306\',\'IF06\'),orderqueue; 
    EXTGBdataset(1C_TotalHoldings,-sv);
end

 

当buyshortcond满足的时候,我检测到1C_totalHoldings 的值变成了-sv. 但是竟然没有任何开仓动作。而且监控中也没有看到任何开仓的信号出来。

 

请教到底发生了什么问题?

 

 

可以肯定的是:buyshortcond满足了,否则1C_totalHoldings 的值不可能变成了-sv,这说明EXTGBdataset(1C_TotalHoldings,-sv);命令被执行了。

既然这个命令倍执行了,前面的Tbuyshort没有不被执行呢?

 

这些代码除了全局变量,已经被用了很久,引入全局变量后发现,开仓与止损的控制能都不执行。


--  作者:fly
--  发布时间:2011/6/2 15:13:36
--  
楼主的是一个后台策略,请不要双击显示在K线主图上.------后台策略就后台运行

 

2.这个开平仓的简单示例,可以运行一下,下单情况一致,全局变量的赋值也完全符合要求.请楼主多检查一下程序

 

//1分钟K线,K线走完

 

RUNMODE:0;            //工作于逐周期模式

THold:=\'THold\';
IF currenttime>=144800 and currenttime<=145200 and islastbar and tholding=0 THEN
   begin
   Tbuyshort(1,1,MKT,0,0,\'\',\'IF06\');//AC为空时为系统当前默认帐户

   EXTGBdataset(\'THold\',1);
   end
  
IF currenttime>145500 and tholding<0 THEN
   begin
   Tsellshort(1,1,MKT);
   EXTGBdataset(\'THold\',0);
   end
  
IF ISLASTBAR then begin
     DEBUGFILE2(\'d:\\quanju.txt\',\'THOLDING:%.2f\',EXTGBdata(\'THold\'),1);
END

 

附:quanju.txt中的全局变量THold的输出

2011-06-02 14:47:01.632    THOLDING:0.00
2011-06-02 14:48:02.585    THOLDING:1.00
2011-06-02 14:49:01.616    THOLDING:1.00
2011-06-02 14:50:01.632    THOLDING:1.00
2011-06-02 14:51:01.600    THOLDING:1.00
2011-06-02 14:52:01.616    THOLDING:1.00
2011-06-02 14:53:01.710    THOLDING:1.00
2011-06-02 14:54:01.632    THOLDING:1.00
2011-06-02 14:55:01.600    THOLDING:0.00
2011-06-02 14:56:02.585    THOLDING:0.00
2011-06-02 14:57:01.647    THOLDING:0.00
2011-06-02 14:58:02.632    THOLDING:0.00
2011-06-02 14:59:01.647    THOLDING:0.00


--  作者:longbow
--  发布时间:2011/6/2 15:32:34
--  

谢谢!我用的是:

 

Thold:=ExtGBdata(Thold);

 

这与Thold:=\'Thold\'; 有什么区别吗?

 

另外,我前台用的是信号,后台就是后台运行,没有双击后台显示在前台上。

 


--  作者:阿火
--  发布时间:2011/6/2 22:25:05
--  

Thold:=ExtGBdata(Thold);

这个用法对吗?

Thold:=ExtGBdata(\'Thold\'); 加个单引号才行

--  作者:stocker
--  发布时间:2011/6/3 8:12:36
--  
可能是这个单引号的问题,谢谢!
--  作者:stocker
--  发布时间:2011/6/3 8:13:24
--  
以前有个多策略、多周期、多品种的控制开仓的例子,现在好像找不到了,请帮忙找一下,谢谢!
--  作者:stocker
--  发布时间:2011/6/3 8:15:28
--  

解决多策略控制单品种同时开仓的问题(实际上多策略同时运行的问题)是个非常有意义的事情,请给出一个比较好的模板,省的后来人不断摸索,付出不必要的代价!


--  作者:fly
--  发布时间:2011/6/3 9:32:18
--  

解决多策略控制单品种同时开仓的问题.

1.如果是BUY的图表程序化交易,在多框架下就可以,注意开平仓的数量一一对应.

2.如果是后台,请参考此帖http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=5043&skin=0