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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 根据股票某指标排序选股问题

   

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


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

主题:根据股票某指标排序选股问题

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


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/1/3 17:03:20    Post IP:113.116.21.142[只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:)lgz2_0yug7$l39u~`zemc.png
图片点击可在新窗口打开查看
修改了下代码

只有在DAYCOUNT 且 当前K线根数为第240根的时候用于排序的指标SmartQ才有值,其余时间都是没有值

请问是这个的影响吗,SmartQ不是每个周期都有值存在的


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2017/1/3 17:06:45    Post IP:180.169.30.6[只看该作者]

把你现在的代码贴出来


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

客户服务部

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

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/1/3 17:10:58    Post IP:113.116.21.142[只看该作者]

我的思路是这样子:

1、计算每个股票每分钟的St值;

2、对一天中的240个St值进行排序;

3、选择St最大的前20%根K线,计算其成交量加权平均值;

4、前20%St的成交量加权平均值除以当天总K线的成交量加权平均值,记为Q;

5、统计每个股票前10天的Q的综合,记为SmartQ;

6、全市场股票的SmartQ进行排序,选择排名为前20的股票下单;

 

我前面的代码思路有问题,请问老师能给一定我实现这部分逻辑时候的代码的建议吗


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


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/1/3 17:11:59    Post IP:113.116.21.142[只看该作者]


St: =ABS((CLOSE-OPEN)/OPEN)/SQRT(VOL)*100000;   //计算St因子

I: TODAYBAR;
VARIABLE:STI[240]=0;         //STI数组用来储存每一周期的St因子,下同
VARIABLE:VI[240]=0;
VARIABLE:CI[240]=0;
VARIABLE:VWAPsmart=0;        //初始化聪明钱成交量加权平均价VWAPsmart
VARIABLE:VWAPall=0;          //初始化所有交易成交量加权平均价VWAPall
VARIABLE:SUMQ=0;            
STI[I]:=St;                  //记录当前K线的St
VI[I]:=VOL;                  //记录当前K线的成交量
CI[I]:=CLOSE;                //记录当前K线的收盘价
DAYCOUNT: STKINDI('','DAYROUNCOUNT.NOWDAY',2,6,0);         //DAYCOUNT标记当前为第几个交易日,每10个交易日循环一次

IF I=240 THEN BEGIN
   FOR J=1 TO I DO
   BEGIN
   COUN[J]: HOD2(STI,240,STI[J]);   //计算第J根K线的St在当前日的St中的排序,赋予COUN[J]
   D: COUN[J];
   IF COUN[J]<48 THEN BEGIN
      VWAPsmart:= VWAPsmart+CI[J]*VI[J];    //计算St最大的前20%根K线的成交量加权平均价
      A: VWAPsmart;
   END
   VWAPall :=VWAPall+CI[J]*VI[J];    //计算所有SK线的成交量加权平均价
   B: VWAPall;
   END
   Q: VWAPsmart/VWAPall;             //当日的Q因子
  
   VWAPsmart:=0;                     //每日末重新清0
   VWAPall:=0;                       //每日末重新清0
  
   IF DAYCOUNT > 0 THEN BEGIN
     SUMQ:=SUMQ+Q;                   //前九个交易日的Q逐日累加,记为SUMQ
   END
   IF DAYCOUNT=0 THEN
   BEGIN
    SmartQ: SUMQ+Q;

    SUMQ:=0;                         //第十个交易日SUMQ重新清0
   END
END

 

 


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


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/1/3 17:11:59    Post IP:113.116.21.142[只看该作者]


St: =ABS((CLOSE-OPEN)/OPEN)/SQRT(VOL)*100000;   //计算St因子

I: TODAYBAR;
VARIABLE:STI[240]=0;         //STI数组用来储存每一周期的St因子,下同
VARIABLE:VI[240]=0;
VARIABLE:CI[240]=0;
VARIABLE:VWAPsmart=0;        //初始化聪明钱成交量加权平均价VWAPsmart
VARIABLE:VWAPall=0;          //初始化所有交易成交量加权平均价VWAPall
VARIABLE:SUMQ=0;            
STI[I]:=St;                  //记录当前K线的St
VI[I]:=VOL;                  //记录当前K线的成交量
CI[I]:=CLOSE;                //记录当前K线的收盘价
DAYCOUNT: STKINDI('','DAYROUNCOUNT.NOWDAY',2,6,0);         //DAYCOUNT标记当前为第几个交易日,每10个交易日循环一次

IF I=240 THEN BEGIN
   FOR J=1 TO I DO
   BEGIN
   COUN[J]: HOD2(STI,240,STI[J]);   //计算第J根K线的St在当前日的St中的排序,赋予COUN[J]
   D: COUN[J];
   IF COUN[J]<48 THEN BEGIN
      VWAPsmart:= VWAPsmart+CI[J]*VI[J];    //计算St最大的前20%根K线的成交量加权平均价
      A: VWAPsmart;
   END
   VWAPall :=VWAPall+CI[J]*VI[J];    //计算所有SK线的成交量加权平均价
   B: VWAPall;
   END
   Q: VWAPsmart/VWAPall;             //当日的Q因子
  
   VWAPsmart:=0;                     //每日末重新清0
   VWAPall:=0;                       //每日末重新清0
  
   IF DAYCOUNT > 0 THEN BEGIN
     SUMQ:=SUMQ+Q;                   //前九个交易日的Q逐日累加,记为SUMQ
   END
   IF DAYCOUNT=0 THEN
   BEGIN
    SmartQ: SUMQ+Q;

    SUMQ:=0;                         //第十个交易日SUMQ重新清0
   END
END

 

 


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


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2016/8/31 10:54:28
  发帖心情 Post By:2017/1/3 17:14:34    Post IP:113.116.21.142[只看该作者]

//第一个函数DAYCOUNT,周期:日线,交易时间坐标

//DAYCOUNT记录当前为第几个交易日,每10个交易日重新循环一次
VARIABLE:DAYCOUNT=0;
DAYCOUNT:=DAYCOUNT+1;
IF DAYCOUNT>9 THEN BEGIN
DAYCOUNT:=0;
END
NOWDAY: DAYCOUNT;


 

//第二个函数SmartMoney,周期:1分钟线,交易时间坐标


St: =ABS((CLOSE-OPEN)/OPEN)/SQRT(VOL)*100000;   //计算St因子

I: TODAYBAR;
VARIABLE:STI[240]=0;         //STI数组用来储存每一周期的St因子,下同
VARIABLE:VI[240]=0;
VARIABLE:CI[240]=0;
VARIABLE:VWAPsmart=0;        //初始化聪明钱成交量加权平均价VWAPsmart
VARIABLE:VWAPall=0;          //初始化所有交易成交量加权平均价VWAPall
VARIABLE:SUMQ=0;            
STI[I]:=St;                  //记录当前K线的St
VI[I]:=VOL;                  //记录当前K线的成交量
CI[I]:=CLOSE;                //记录当前K线的收盘价
DAYCOUNT: STKINDI('','DAYROUNCOUNT.NOWDAY',2,6,0);         //DAYCOUNT标记当前为第几个交易日,每10个交易日循环一次

IF I=240 THEN BEGIN
   FOR J=1 TO I DO
   BEGIN
   COUN[J]: HOD2(STI,240,STI[J]);   //计算第J根K线的St在当前日的St中的排序,赋予COUN[J]
   D: COUN[J];
   IF COUN[J]<48 THEN BEGIN
      VWAPsmart:= VWAPsmart+CI[J]*VI[J];    //计算St最大的前20%根K线的成交量加权平均价
      A: VWAPsmart;
   END
   VWAPall :=VWAPall+CI[J]*VI[J];    //计算所有SK线的成交量加权平均价
   B: VWAPall;
   END
   Q: VWAPsmart/VWAPall;             //当日的Q因子
  
   VWAPsmart:=0;                     //每日末重新清0
   VWAPall:=0;                       //每日末重新清0
  
   IF DAYCOUNT > 0 THEN BEGIN
     SUMQ:=SUMQ+Q;                   //前九个交易日的Q逐日累加,记为SUMQ
   END
   IF DAYCOUNT=0 THEN
   BEGIN
    SmartQ: SUMQ+Q;

    SUMQ:=0;                         //第十个交易日SUMQ重新清0
   END
END

 

 

 

//第三个函数TEST,做回测的函数。周期:1分钟线,交易时间坐标

I: TODAYBAR;
DAYCOUNT: STKINDI('','DAYROUNCOUNT.NOWDAY',0,6,0);


IF I=240 AND DAYCOUNT=0 THEN
BEGIN
SELL('',0,THISCLOSE);
END
IF I=240 AND DAYCOUNT=0 THEN
BEGIN
BUY(SELFDATAS('SmartMoney') < 21,1000,THISCLOSE);
END


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2017/1/3 17:28:21    Post IP:180.169.30.6[只看该作者]

在新代码的情况下,自定义数据有值吗?

用这段代码有信号吗?

DAYCOUNT: STKINDI('','DAYROUNCOUNT.NOWDAY',0,6,0);


IF I=240 AND DAYCOUNT=0 THEN
BEGIN
   SELL(1,0,THISCLOSE);
END
IF I=240 AND DAYCOUNT=0 THEN
BEGIN
   BUY(SELFDATAS('SmartMoney') < 21,1000,THISCLOSE);
END

 

sell后面写1,不要写''



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

客户服务部

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

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
总数 17 上一页 1 2