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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如何在金字塔里编辑外软指标__QQE

   

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


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

主题:如何在金字塔里编辑外软指标__QQE

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


加好友 发短信
等级:新手上路 帖子:4 积分:30 威望:0 精华:0 注册:2011/2/6 13:43:09
如何在金字塔里编辑外软指标__QQE  发帖心情 Post By:2011/5/3 16:37:22    Post IP:123.65.29.123[只看该作者]

请问如何编辑下面的function QQE_TR,Ambroker 里的QQE指标源码以下: _SECTION_BEGIN("QQE"); // QQE (Quantative Qualitative Estimation) QQE_Periods = Param("Period", 14, 3, 30, 1 ); QQE_SF = Param("Smoothing factor", 5, 1, 30, 1 ); QQE_RSI_MA = EMA(RSI(QQE_Periods),QQE_SF); QQE_ATR_RSI = abs(Ref(QQE_RSI_MA,-1)-QQE_RSI_MA); QQE_MA_ATR_RSI = EMA(QQE_ATR_RSI, 2*QQE_Periods-1); QQE_DAR = EMA(QQE_MA_ATR_RSI, 2*QQE_Periods-1)*4.236; QQE_DAR_Fast = EMA(QQE_MA_ATR_RSI, 2*QQE_Periods-1)*2.618; function QQE_TR(RSIMA, DARFACTOR) { result[ 0 ] = 0; for( i = 1; i < BarCount; i++ ) { if (RSIMA[i] < result[i-1]) { result[i]=RSIMA[i]+DARFACTOR[i]; if ((RSIMA[i-1] < result[i-1]) AND (result[i] > result[i-1])) { result[i] = result[i-1]; } } else { if (RSIMA[i] > result[i-1]) { result[i]=RSIMA[i]-DARFACTOR[i]; if ((RSIMA[i-1] > result[i-1]) AND (result[i] < result[i-1])) { result[i] = result[i-1]; } } } } return result; } QQE_FastSignal = QQE_TR(QQE_RSI_MA,QQE_DAR_Fast); QQE_SlowSignal = QQE_TR(QQE_RSI_MA,QQE_DAR); Plot(QQE_RSI_MA,"QQE"+ _PARAM_VALUES(),ParamColor("QQE color", colorRed ), ParamStyle("QQE style",styleThick)); Plot(QQE_FastSignal, "FastSignal", ParamColor("FastSignal color", colorOrange ), ParamStyle("FastSignal style",styleDashed) ); Plot(QQE_SlowSignal, "SlowSignal", ParamColor("SlowSignal color", colorBlue ), ParamStyle("SlowSignal style",styleDashed) ); Buy = Cross(QQE_RSI_MA, QQE_SlowSignal); Sell = Cross(QQE_SlowSignal, QQE_RSI_MA); Short=Sell; Cover=Buy; shape = Buy * shapeUpArrow + Sell * shapeDownArrow; PlotShapes( shape, IIf( Buy, colorGreen, colorRed ), 0, QQE_RSI_MA ); _SECTION_END();

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/5/3 20:34:32    Post IP:59.61.40.195[只看该作者]

把指标的具体算法介绍一下,热心人士才能帮你


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


加好友 发短信
等级:新手上路 帖子:4 积分:30 威望:0 精华:0 注册:2011/2/6 13:43:09
如何在金字塔里编辑外软指标__QQE  发帖心情 Post By:2011/5/4 0:51:19    Post IP:123.65.9.47[只看该作者]

使用通达信编译部分以下,由于通达信没有循环语句,所以寄望于金字塔,卡在如何在金字塔里编译自定义函数——function QQE_TR(RSIMA, DARFACTOR) 。 QQE_Periods:=14; QQE_SF:=5; LC:=REF(CLOSE,1); RSI(QQE_Periods):=SMA(MAX(CLOSE-LC,0),QQE_Periods,1)/SMA(ABS(CLOSE-LC),QQE_Periods,1)*100; RSIMA:= EMA(RSI(QQE_Periods),QQE_SF); ATRRSI:= abs(Ref(RSIMA,-1)-QQE_RSI_MA); MAATRRSI:= EMA(ATRRSI, 2*QQE_Periods-1); DAR:= EMA(MAATRRSI, 2*QQE_Periods-1)*4.236; DAR_Fast:= EMA(MAATRRSI, 2*QQE_Periods-1)*2.618; 下面就是自定义函数:数组result[ i ]与RSIMA[i]比较,然后分别获值:result[i]=RSIMA[i]+DARFACTOR[i],result[i]=RSIMA[i]-DARFACTOR[i],且在设定条件下result[i] = result[i-1]。。。 function QQE_TR(RSIMA, DARFACTOR) { result[ 0 ] = 0; for( i = 1; i < BarCount; i++ ) { if (RSIMA[i] < result[i-1]) { result[i]=RSIMA[i]+DARFACTOR[i]; if ((RSIMA[i-1] < result[i-1]) AND (result[i] > result[i-1])) { result[i] = result[i-1]; } } else { if (RSIMA[i] > result[i-1]) { result[i]=RSIMA[i]-DARFACTOR[i]; if ((RSIMA[i-1] > result[i-1]) AND (result[i] < result[i-1])) { result[i] = result[i-1]; } } } } return result; } 然后输出以下三条线就是 QQE指标了, FastSignal:= QQE_TR(RSIMA,QQE_DAR_Fast); SlowSignal:= QQE_TR(RSIMA,QQE_DAR); RSIMA;

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/5/4 9:03:09    Post IP:113.105.135.34[只看该作者]

格式太乱没法看,请用IE浏览器发帖

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


加好友 发短信
等级:新手上路 帖子:4 积分:30 威望:0 精华:0 注册:2011/2/6 13:43:09
如何在金字塔里编辑外软指标__QQE  发帖心情 Post By:2011/5/4 14:02:20    Post IP:123.65.31.3[只看该作者]

使用通达信编译部分以下,由于通达信没有循环语句,所以寄望于金字塔,卡在如何在金字塔里编译自定义函数——function QQE_TR(RSIMA, DARFACTOR) 。
 
QQE_Periods:=14;
QQE_SF:=5;
LC:=REF(CLOSE,1);
RSI(QQE_Periods):=SMA(MAX(CLOSE-LC,0),QQE_Periods,1)/SMA(ABS(CLOSE-LC),QQE_Periods,1)*100;
RSIMA:= EMA(RSI(QQE_Periods),QQE_SF);
ATRRSI:= abs(Ref(RSIMA,-1)-QQE_RSI_MA);
MAATRRSI:= EMA(ATRRSI, 2*QQE_Periods-1);
DAR:= EMA(MAATRRSI, 2*QQE_Periods-1)*4.236;
DAR_Fast:= EMA(MAATRRSI, 2*QQE_Periods-1)*2.618;
 
下面就是自定义函数,如何在金字塔里编译它:数组result[ i ]与RSIMA[i]比较,然后分别获值:result[i]=RSIMA[i]+DARFACTOR[i],result[i]=RSIMA[i]-DARFACTOR[i],且在设定条件下result[i] = result[i-1]。。。
function QQE_TR(RSIMA, DARFACTOR)
{
    result[ 0 ] = 0;
 
    for( i = 1; i < BarCount; i++ )
    {
 
       if (RSIMA[i] < result[i-1])
       {
       
           result[i]=RSIMA[i]+DARFACTOR[i];
 
           if ((RSIMA[i-1] < result[i-1]) AND (result[i] > result[i-1]))
              {
              result[i] = result[i-1];
              }
       }
       else
       {
 
           if (RSIMA[i] > result[i-1])
              {
 
              result[i]=RSIMA[i]-DARFACTOR[i];
 
              if ((RSIMA[i-1] > result[i-1]) AND (result[i] < result[i-1]))
                 {
                 result[i] = result[i-1];
                 }
 
              }
 
       }
 
    }
 
   return result;
}
 
然后输出以下三条线就是 QQE指标了:
FastSignal:= QQE_TR(RSIMA,QQE_DAR_Fast);
SlowSignal:= QQE_TR(RSIMA,QQE_DAR);
RSIMA;

 回到顶部