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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请把这个指标改为金字塔的

   

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


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

主题:请把这个指标改为金字塔的

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


加好友 发短信
等级:论坛游侠 帖子:390 积分:80 威望:0 精华:0 注册:2013/5/28 13:15:02
请把这个指标改为金字塔的  发帖心情 Post By:2013/5/30 21:31:10    Post IP:121.17.244.117[显示全部帖子]

variable:tr=0,up=0,dn=0;
N:=10;
M:=1.5;
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,N);
median:= (high + low) / 2;
up:= median+atr * M;
dn:= median-atr * M;
tr:=if(c>ref(up,1),1,if(c<ref(dn,1),-1,tr));
flag:=tr<0 and ref(tr,1)>0;
flagh:=tr>0 and ref(tr,1)<0;
dn:=if(tr>0 and dn<ref(dn,1),ref(dn,1),dn);
up:=if(tr<0 and up>ref(up,1),ref(up,1),up);
up:=if(flag,median + atr * M,up);
dn:=if(flagh,median - atr * M,dn);
outtr:=tr;
outup:=up;
outdn:=dn;
supertren:if(outtr=1,outdn,outup),colorwhite;
PARTLINE(supertren,tr=1,rgb(200,0,0),tr=-1,rgb(0,200,0)),linethick2;

 

下面的链接里有指标效果

http://www.55188.com/thread-4930383-1-1.html

[此贴子已经被作者于2013-5-30 21:32:41编辑过]

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


加好友 发短信
等级:论坛游侠 帖子:390 积分:80 威望:0 精华:0 注册:2013/5/28 13:15:02
  发帖心情 Post By:2013/5/31 9:40:00    Post IP:121.17.244.117[显示全部帖子]

谢谢 能通过 但显示效果不对


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

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


加好友 发短信
等级:论坛游侠 帖子:390 积分:80 威望:0 精华:0 注册:2013/5/28 13:15:02
peak函数信号飘移是否可以通过另外设置变量来解决  发帖心情 Post By:2013/5/31 9:45:56    Post IP:121.17.244.117[显示全部帖子]

这是大智慧的效果
图片点击可在新窗口打开查看此主题相关图片如下:ddd.gif
图片点击可在新窗口打开查看

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


加好友 发短信
等级:论坛游侠 帖子:390 积分:80 威望:0 精华:0 注册:2013/5/28 13:15:02
  发帖心情 Post By:2013/5/31 10:02:49    Post IP:121.17.244.117[显示全部帖子]

这是mt4源码

//+------------------------------------------------------------------+
//|                                        IND_20130219_hbhshany.mq4 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright  "xszjg <xszjg@verscm.com> for xxx <xxx@xxx.com> on 20110815"
#property link       "http://www.verscm.com, http://verscm.taobao.com"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Aqua
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
#property indicator_color3 Aqua
#property indicator_color4 Yellow
#property indicator_width3 3
#property indicator_width4 3
extern int N=10;
extern double M=2;
extern int N2=10;
extern double M2=1.5;
double buffer1[];
double dn[];
double up[];
double tr[];
double dn1[];
double up1[];
double zhu1[];
double zhu2[];
int init()
  {

   IndicatorBuffers(8);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,up1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,dn1);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexBuffer(2,zhu1);
   SetIndexStyle(3,DRAW_HISTOGRAM);
   SetIndexBuffer(3,zhu2);
   SetIndexBuffer(4,up);
   SetIndexBuffer(5,dn);
   SetIndexBuffer(6,tr);
   SetIndexBuffer(7,buffer1);
   return(0);
  }
int deinit()
  {
   for(int i=0;i<Bars;i++)
   ObjectDelete("juxing"+Time[i]);
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   int tr0,tr1;
   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   int i=0;
   for (i=MathMin(Bars-5,limit);i>=0; i--)
   {
      buffer1[i]=MathMax(MathMax(High[i]-Low[i],MathAbs(Close[i+1]-High[i])),MathAbs(Close[i+1]-Low[i]));
   }
   for (i=MathMin(Bars-5,limit);i>=0; i--)
   {
      double atr2=iMAOnArray(buffer1,0,N2,0,0,i);
      if((Close[i+1]-Low[i]>atr2*M2 && Close[i]<Open[i]) || (High[i]-Close[i+1]>atr2*M2 && Close[i]>Open[i]))
      {
         zhu1[i]=Open[i];
         zhu2[i]=Close[i];
      }
      if(Close[i]>Close[i+1] && Low[i]>High[i+1])
      drawline("juxing"+Time[i],Time[i+1],High[i+1],Time[i-1],Low[i],Yellow);
      if(Close[i]<Close[i+1] && High[i]<Low[i+1])
      drawline("juxing"+Time[i],Time[i+1],Low[i+1],Time[i-1],High[i],Aqua);
   }
   for (i=MathMin(Bars-5,limit);i>=0; i--)
   {
      double atr=iMAOnArray(buffer1,0,N,0,0,i);
      up1[i]=EMPTY_VALUE;dn1[i]=EMPTY_VALUE;
      double median=(High[i]+Low[i])/2.0;
      up[i]=median+atr*M;
      dn[i]=median-atr*M;
     
      if(i==Bars-5)
      {
         up1[i]=up[i];
         dn1[i]=dn[i];
      }
      else
      {
         if(Close[i]>up1[i+1])
         tr[i]=1;
         else
         {
            if(Close[i]<dn1[i+1])
            tr[i]=-1;
            else
            tr[i]=tr[i+1];
         }
         if(tr[i]==EMPTY_VALUE)
         {
            if(up[i]>up1[i+1])
            up1[i]=up1[i+1];
            else
            up1[i]=up[i];
            if(dn[i]<dn1[i+1])
            dn1[i]=dn1[i+1];
            else
            dn1[i]=dn[i];
         }
         else
         {
            if(tr[i]>0)
            {
               if(dn[i]<dn1[i+1])
               dn1[i]=dn1[i+1];
               else
               dn1[i]=dn[i];
            }
            if(tr[i]<0)
            {
               if(up[i]>up1[i+1])
               up1[i]=up1[i+1];
               else
               up1[i]=up[i];
            }
         }
         if(tr[i]>0 && tr[i+1]<0)
         {
         dn1[i]=dn[i];
         dn1[i+1]=up1[i+1];
         }
         if(tr[i]<0 && tr[i+1]>0)
         {
         up1[i]=up[i];
         up1[i+1]=dn1[i+1];
         }
      }
   }
   return(0);
  }
//+------------------------------------------------------------------+
void drawline(string linename,int t1,double price1,int t2,double price2,int lincolor)
{
if (ObjectFind(linename)<0)
   {
      ObjectCreate(linename, OBJ_RECTANGLE, 0, t1, price1,t2,price2);
      ObjectSet(linename, OBJPROP_COLOR, lincolor);
      ObjectSet(linename,OBJPROP_RAY,false);
   }
else
   {
      ObjectSet(linename, OBJPROP_TIME1,t1);
      ObjectSet(linename, OBJPROP_PRICE1,price1);
      ObjectSet(linename, OBJPROP_TIME2,t2);
      ObjectSet(linename, OBJPROP_PRICE2,price2);
   }
   return;
}


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


加好友 发短信
等级:论坛游侠 帖子:390 积分:80 威望:0 精华:0 注册:2013/5/28 13:15:02
  发帖心情 Post By:2013/5/31 10:28:47    Post IP:121.17.244.117[显示全部帖子]

我不会说思路 这是理想论坛的指标 只是用着好用

在本论坛搜了下 有人要求该过此指标http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=52417 但没改成

[此贴子已经被作者于2013-5-31 10:29:07编辑过]

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


加好友 发短信
等级:论坛游侠 帖子:390 积分:80 威望:0 精华:0 注册:2013/5/28 13:15:02
  发帖心情 Post By:2013/5/31 10:33:17    Post IP:121.17.244.117[显示全部帖子]

能不能写两个指标 一个指标画红线 一个指标画绿线 而后叠加两个指标

 回到顶部