欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → 简单的后台模型,麻烦帮忙修改

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有10924人关注过本帖树形打印复制链接

主题:简单的后台模型,麻烦帮忙修改

帅哥哟,离线,有人找我吗?
eric917
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:271 积分:730 威望:0 精华:0 注册:2011/6/22 15:58:05
  发帖心情 Post By:2013/2/21 15:00:21 [只看该作者]

平多平空条件都为0

 回到顶部
帅哥哟,离线,有人找我吗?
eric917
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:271 积分:730 威望:0 精华:0 注册:2011/6/22 15:58:05
  发帖心情 Post By:2013/2/21 15:00:44 [只看该作者]

2013-02-21 14:57:13.310    平多条件=0
2013-02-21 14:57:13.310    AA=0
2013-02-21 14:57:13.310    POSITIONAA=1
2013-02-21 14:57:13.310    BB=0
2013-02-21 14:57:13.310    AA=0
2013-02-21 14:57:13.310    平空条件=0
2013-02-21 14:57:13.310    BB=0
2013-02-21 14:57:13.310    平多条件=0
2013-02-21 14:57:13.311    平空条件=0
2013-02-21 14:57:13.311    POSITIONAA=1
2013-02-21 14:57:13.311    平多条件=0
2013-02-21 14:57:13.311    AA=0
2013-02-21 14:57:13.311    POSITIONAA=1
2013-02-21 14:57:13.311    BB=0
2013-02-21 14:57:13.311    AA=0
2013-02-21 14:57:13.311    平空条件=0
2013-02-21 14:57:13.312    BB=0
2013-02-21 14:57:13.312    平多条件=0
2013-02-21 14:57:13.312    平空条件=0
2013-02-21 14:57:13.312    POSITIONAA=1
2013-02-21 14:57:13.312    平多条件=0
2013-02-21 14:57:13.312    AA=0
2013-02-21 14:57:13.312    POSITIONAA=-1
2013-02-21 14:57:13.312    BB=0
2013-02-21 14:57:13.313    AA=0
2013-02-21 14:57:13.313    平空条件=0
2013-02-21 14:57:13.313    BB=0
2013-02-21 14:57:13.313    平多条件=0
2013-02-21 14:57:13.313    平空条件=0
2013-02-21 14:57:13.313    POSITIONAA=-1
2013-02-21 14:57:13.313    平多条件=0
2013-02-21 14:57:13.313    AA=0
2013-02-21 14:57:13.314    POSITIONAA=-1
2013-02-21 14:57:13.314    BB=0
2013-02-21 14:57:13.314    AA=0
2013-02-21 14:57:13.314    平空条件=0
2013-02-21 14:57:13.314    BB=0
2013-02-21 14:57:13.314    平多条件=0
2013-02-21 14:57:13.314    平空条件=0
2013-02-21 14:57:13.314    POSITIONAA=-1
2013-02-21 14:57:13.314    平多条件=0
2013-02-21 14:57:13.315    AA=0
2013-02-21 14:57:13.315    POSITIONAA=-1
2013-02-21 14:57:13.315    BB=0
2013-02-21 14:57:13.315    AA=0
2013-02-21 14:57:13.315    平空条件=0
2013-02-21 14:57:13.315    BB=0
2013-02-21 14:57:13.315    平多条件=0
2013-02-21 14:57:13.315    平空条件=0
2013-02-21 14:57:13.316    POSITIONAA=1
2013-02-21 14:57:13.316    平多条件=0
2013-02-21 14:57:13.316    AA=0
2013-02-21 14:57:13.316    POSITIONAA=-1
2013-02-21 14:57:13.316    BB=0
2013-02-21 14:57:13.316    AA=0
2013-02-21 14:57:13.317    BB=0
2013-02-21 14:57:13.317    平空条件=0
2013-02-21 14:57:13.317    平空条件=0
2013-02-21 14:57:13.317    平多条件=0
2013-02-21 14:57:13.317    平多条件=0
2013-02-21 14:57:13.317    POSITIONAA=1
2013-02-21 14:57:13.318    POSITIONAA=1
2013-02-21 14:57:13.318    AA=0
2013-02-21 14:57:13.318    AA=0
2013-02-21 14:57:13.318    BB=0
2013-02-21 14:57:13.318    BB=0
2013-02-21 14:57:13.318    平空条件=0
2013-02-21 14:57:13.318    平空条件=0
2013-02-21 14:57:13.318    平多条件=0
2013-02-21 14:57:13.318    平多条件=0
2013-02-21 14:57:13.319    POSITIONAA=1
2013-02-21 14:57:13.319    POSITIONAA=1
2013-02-21 14:57:13.319    AA=0
2013-02-21 14:57:13.319    AA=0
2013-02-21 14:57:13.319    BB=0
2013-02-21 14:57:13.319    BB=0
2013-02-21 14:57:13.319    平空条件=0
2013-02-21 14:57:13.319    平空条件=0
2013-02-21 14:57:13.320    平多条件=0
2013-02-21 14:57:13.320    平多条件=0
2013-02-21 14:57:13.320    POSITIONAA=1
2013-02-21 14:57:13.320    POSITIONAA=1
2013-02-21 14:57:13.320    AA=0
2013-02-21 14:57:13.320    AA=0
2013-02-21 14:57:13.320    BB=0
2013-02-21 14:57:13.320    BB=0
2013-02-21 14:57:13.320    平空条件=0

 回到顶部
帅哥哟,离线,有人找我吗?
just
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:金字塔养老院 帖子:1323 积分:6764 威望:0 精华:0 注册:2011/6/14 17:27:11
  发帖心情 Post By:2013/2/21 15:40:37 [只看该作者]

你的平仓条件的返回值都是0 表示条件并没有满足 所以没有触发平仓是正确的,如果认为这样的表现是有问题的那就需要检查一下你的语句逻辑关系了,后台策略的话建议使用序列模式计算。



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
获得0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
eric917
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:271 积分:730 威望:0 精华:0 注册:2011/6/22 15:58:05
  发帖心情 Post By:2013/2/21 16:47:32 [只看该作者]

能否帮忙用序列模式写一下,一个简单的MA20

上穿BPK 下破SPK的 后台交易系统

要求:出信号立即开仓不进行复核,每根K线只开仓一次,在总账号有其他持仓的情况,不能平掉或者影响其他交易系统的持仓

 

帮手写个例子,能让我学习学习

非常感谢!

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
eric917
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:271 积分:730 威望:0 精华:0 注册:2011/6/22 15:58:05
  发帖心情 Post By:2013/2/22 11:08:04 [只看该作者]

我按软件带的海龟改了一下

 

加载启动了还是没有动作

 

variable : myentryprice =0 ;   //开仓价格
variable : myexitprice =0 ;   //平仓价格
variable : position=0 ;   //仓位状态

variable : ma20=close ;   //20周期的均线
//0表示没有仓位,1表示持有多头, -1表示持有空头
buyorderthisbar := 0 ;  //当前bar有过交易

variable : _debugout = 1 ;    //是否输出后台交易的调试信息

SS:=1;                       //手数
t20:=20 ;    //进场的周期
//准备需要计算的变量
ma20:=ma(c,20);

BBB:=cross(c,ma20); //bpk
SSS:=cross(ma20,c); //spk

//采用全局变量保存最后一根k线的计算状态
strentrybarpos:=strcat(stklabel,'entrybarpos') ;
strexitbarpos:=strcat(stklabel,'exitbarpos') ;
strpreentryprice:=strcat(stklabel,'preentryprice') ;
strposition:=strcat(stklabel,'position') ;


//没够20根K线,则退出
IF BARPOS<t20 THEN  EXIT;

//===如果当前棒是最后一根k线,执行
if islastbar then begin

      //恢复上一秒计算时保存的数据
 //如果记录的进场barpos和当前的相等,说明上一个进场信号也是最后一根k线发出的。  
 if extgbdata(strentrybarpos) = barpos then begin
  myentryprice := extgbdata(strpreentryprice) ;
      position := extgbdata(strposition) ;  
 end
     // 如果最后一根k线发生过进场信号,则那一根k线不再交易
 if extgbdata(strentrybarpos) = barpos then begin
  goto continueline;
  
 end
 
//如果当前是没有持仓的状态
 if position=0   then begin
 
     //多头进场条件符合
  if bbb then begin
   myentryprice := ma20+2*mindiff ;   
   position := 1 ;
   
                tbuy(1,ss,mkt);
               
                extgbdataset(strentrybarpos,barpos ) ;
   extgbdataset(strpreentryprice,myentryprice ) ;
   extgbdataset(strposition,position ) ;

      end
     //空头进场条件符合
  if sss  then begin   
   myentryprice := ma20-2*mindiff ;   
   position := -1 ;
 
   tbuyshort( 1,ss,mkt);

   extgbdataset(strentrybarpos,barpos ) ;
   extgbdataset(strpreentryprice,myentryprice ) ;
   extgbdataset(strposition,position ) ; 
  end //if空头进场符合
  
  goto continueline ;
  
 end//if如果当前是没有持仓的状态
 
//如果当前持有空头仓位的状态
      if position = -1   then begin
 //平空仓
  if bbb and extgbdata(strentrybarpos)<>barpos  then begin
   myexitprice := ma20+2*mindiff ;   
   position := 0 ;

   tsellshort( 1,ss,mkt);
   
   extgbdataset(strexitbarpos,barpos ) ;
   extgbdataset(strposition,position ) ;

  end
     //开多仓 
  if bbb and extgbdata(strentrybarpos)<>barpos  then begin
   myentryprice := ma20+2*mindiff ;   
   position := 1 ;
   
                tbuy(1,ss,mkt);
               
                extgbdataset(strentrybarpos,barpos ) ;
   extgbdataset(strpreentryprice,myentryprice ) ;
   extgbdataset(strposition,position ) ;
  end
  
      goto continueline ;
 
      end  //if如果当前持有空头仓位的状态
 
 //如果当前持有多头仓位的状态
      if position = 1   then begin
 //平多仓
  if sss and extgbdata(strentrybarpos)<>barpos  then begin
   myexitprice := ma20-2*mindiff ;   
   position := 0 ;

   tsell(1,ss,mkt);
   
   extgbdataset(strexitbarpos,barpos ) ;
   extgbdataset(strposition,position ) ;
  end
     //开空仓 
  if sss and extgbdata(strentrybarpos)<>barpos  then begin
   myentryprice := ma20-2*mindiff ;   
   position := -1 ;
   
                tbuyshort(1,ss,mkt);
               
                extgbdataset(strentrybarpos,barpos ) ;
   extgbdataset(strpreentryprice,myentryprice ) ;
   extgbdataset(strposition,position ) ;
  end
  
      goto continueline ;
 
      end  //if如果当前持有多头仓位的状态

 //如果以上3种情形都没有成立,则直接结束本次判断
 goto continueline ;

end //if如果当前棒是最后一根k线
 

//如果不是最后一根k线的情形
IF  NOT(ISLASTBAR)  THEN  BEGIN

   //如果当前是没有持仓的状态
if position=0   then begin
     //多头进场
 if bbb then begin
  myentryprice :=ma20+2*mindiff ;   
  //buy( 1,SS,MARKET);
  position := 1 ;
  buyorderthisbar := 1;
  
 end //if  
 
      //空头进场
 if sss  then begin   
  myentryprice := ma20-2*mindiff ;    
  //buyshort(1,SS,MARKET);
  position := -1 ;
  buyorderthisbar := 1;

 end 
      goto continueline ;
  
end  //if如果当前是没有持仓的状态


//如果当前持有空头仓位的状态
if position=-1    then begin

     //平空仓
 if bbb and buyorderthisbar=0 then begin
  myexitprice :=ma20+2*mindiff ;     
  //sellshort( 1,ss,MARKET);  
 end

     //开多仓 
 if bbb and  buyorderthisbar=0 then begin
   myentryprice := ma20+2*mindiff ; 
   //buy( 1,ss, MARKET);  
   position := 1 ;
   buyorderthisbar := 1;
 end
 
end  //if如果当前持有空头仓位的状态

//如果当前持有多头仓位的状态
if position=1   then begin

     //平多仓
 if sss and buyorderthisbar=0 then begin
  myexitprice :=ma20-2*mindiff ;     
  //sell( 1,ss,MARKET);  
 end

     //开空仓 
 if sss and  buyorderthisbar=0 then begin
   myentryprice := ma20-2*mindiff ; 
   //buyshort( 1,ss, MARKET);  
   position := -1 ;
   buyorderthisbar := 1;
 end
 
end  //if如果当前持有多头仓位的状态
END //IF不是最后一根k线的情形

//显示账户状态
continueline@ 资产:asset,linethick0;

if _debugout>0  and islastbar then begin

  DEBUGFILE2('D:\Debug\DEBUGFILE.TXT','POSITION=%.0f' ,POSITION,1) ;

end //if


 


 回到顶部
帅哥哟,离线,有人找我吗?
just
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:金字塔养老院 帖子:1323 积分:6764 威望:0 精华:0 注册:2011/6/14 17:27:11
  发帖心情 Post By:2013/2/22 11:26:23 [只看该作者]

SS:=1; //手数
 EXTGBDATASET('POSITIONAA',0);

MAA:MA(C,5);

BPK:=CROSS(H,MAA);
SPK:=CROSS(MAA ,L);


if bpk and EXTGBDATA('POSITIONAA')=0 then begin

tsellshort(tholding<>0,ss,mkt);

tbuy(tholding=0,ss,mkt);

EXTGBDATASET('POSITIONAA',1);

end


if spk and EXTGBDATA('POSITIONAA')=0 then begin

tsell(tholding<>0,ss,mkt);
tbuyshort(tholding=0,ss,mkt);

EXTGBDATASET('POSITIONAA',-1);

end


IF BPK AND EXTGBDATA('POSITIONAA')=-1   AND TENTERBARS>=1 THEN BEGIN
   tsellshort(tholding<>0,ss,mkt);
   TBUY(1,SS,MKT);
   EXTGBDATASET('POSITIONAA',1);
END


IF SPK AND EXTGBDATA('POSITIONAA')=1  AND TENTERBARS>=1  THEN BEGIN
   tsell(tholding<>0,ss,mkt);
   TBUYSHORT(1,SS,MKT);
   EXTGBDATASET('POSITIONAA',-1);
END


if  time>=150500 then begin
tsell(tholding<>0,0,mkt);
tsellshort(tholding<>0,0,mkt);

EXTGBDATASET('POSITIONAA',0);

end


仅供参考



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
获得0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
eric917
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:271 积分:730 威望:0 精华:0 注册:2011/6/22 15:58:05
  发帖心情 Post By:2013/2/22 13:19:42 [只看该作者]

您好,上面的模型我加载试过

出现了以下几个问题:

1)系统在没有开仓的前提下,把账号的一张多单平了

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看

 

2)有时候可以正常先平后开,但有时候却只做了平仓的动作,而没有开仓的动作

 


图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-2-22 13:20:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
eric917
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:271 积分:730 威望:0 精华:0 注册:2011/6/22 15:58:05
  发帖心情 Post By:2013/2/22 13:28:26 [只看该作者]

经过了2次加载的测试,找到了写规律

系统是头一次交易,只会平仓(只要账号有单就会平),但平仓都不会开仓,接着之后就正常了

 


图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
eric917
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:271 积分:730 威望:0 精华:0 注册:2011/6/22 15:58:05
  发帖心情 Post By:2013/2/22 13:39:38 [只看该作者]

能够不用tholding吗?因为要加载多个交易系统,账号里面肯定是有持仓的,使用tholding是会乱的

 

现在后台程序和新图表最大的区别就是这个问题,新图表的我已经会写了,但那个是只跑一个交易系统的情况下可以使用holding来

检视仓位的情况,但后台跑多个交易系统就能这样简单判断了

在使用后台交易系统后,各个后台交易系统各自管好自己的仓位是我现在遇到最大而解决不了的问题,所以发了很多贴

请教,但还是没有得到解决

 

如果没空写,能否发一些相关资料的连接来看看,学习学习


 回到顶部
帅哥哟,离线,有人找我吗?
just
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:金字塔养老院 帖子:1323 积分:6764 威望:0 精华:0 注册:2011/6/14 17:27:11
  发帖心情 Post By:2013/2/22 13:42:47 [只看该作者]

可以不用THOLDING 如果交易品种是不同的 可以使用后台的指定品种持仓函数 如果是相同你可以去掉THOLDING判断。



金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
获得0个金币
 回到顶部
总数 29 上一页 1 2 3 下一页