封筒, Env

0
(0)
名前:
封筒, Env
著者: メタ引用 (2005.12.07 11:30)
ダウンロード済み: 6759
ダウンロード:
Envelopes, Env 1
Envelopes.mq4 (2.8 キロバイト) 意見
Envelopes, Env 2 envelopes.gif (10.3 キロバイト)
Envelopes, Env 3
Envelopes Technical Indicator is formed with two Moving Averages one of which is shifted upward and another one is shifted downward. The selection of optimum relative number of band margins shifting is determined with the market volatility: the higher the latter is, the stronger the shift is.

Envelopes define the upper and the lower margins of the price range. Signal to sell appears when the price reaches the upper margin of the band; signal to buy appears when the price reaches the lower margin.

The logic behind envelopes is that overzealous buyers and sellers push the price to the extremes (すなわち, the upper and lower bands), at which point the prices often stabilize by moving to more realistic levels. This is similar to the interpretation of Bollinger Bands.

計算
Upper Band = SMA(近い, N)*[1+K/1000]

Lower Band = SMA(近い, N)*[1-K/1000]

Where:
SMA — Simple Moving Average;
N — averaging period;
K/1000 — the value of shifting from the average (measured in basis points).

Technical Indicator Description

Full description of Env is available in the Technical analysis: 封筒

2 コメント 新しいコメントを投稿するには, お願いします ログイン また 登録

buccas13:
やあ,

Thanks for this developing this indicator and sharing it.

Is it possible to change the MA method to Smoothed or Linear weighted or Exponential?

You could call any of the Ma functions from this code sample, to use in the Envelopes indicator.

//+------------------------------------------------------------------+
//|                                        Custom Moving Average.mq4 |
//|                      著作権© 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#財産の著作権 "著作権© 2004, MetaQuotes Software Corp."
#プロパティリンク      "http://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=0;
//---- indicator buffers
double ExtMapBuffer[];
//----
int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| カスタムインジケーター初期化関数                         |
//+------------------------------------------------------------------+
int 初期化()
  {
   int    draw_begin;
   string short_name;
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexShift(0,MA_Shift);
   IndicatorDigits(市場情報(シンボル(),MODE_DIGITS));
   もしも(MA_期間<2) MA_Period=13;
   draw_begin=MA_Period-1;
//---- indicator short name
   switch(MA_Method)
     {
      case 1 : short_name="EMA(";  draw_begin=0; 壊す;
      case 2 : short_name="SMMA("; 壊す;
      case 3 : short_name="LWMA("; 壊す;
      デフォルト :
         MA_Method=0;
         short_name="SMA(";
     }
   IndicatorShortName(short_name+MA_Period+")");
   SetIndexDrawBegin(0,draw_begin);
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtMapBuffer);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
整数の開始()
  {
   もしも(バー<=MA_Period) 戻る(0);
   ExtCountedBars=IndicatorCounted();
//---- check for possible errors
   if (ExtCountedBars<0) 戻る(-1);
//---- last counted bar will be recounted
   if (ExtCountedBars>0) ExtCountedBars--;
//----
   スイッチ(MA_Method)
     {
      case 0 : 小さい();  壊す;
      case 1 : 絵馬();  壊す;
      case 2 : smma(); 壊す;
      case 3 : lwma();
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
//| 単純移動平均                                            |
//+------------------------------------------------------------------+
void sma()
  {
   double sum=0;
   int    i,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
   if(pos<MA_期間) pos=MA_Period;
   ために(i=1;私<MA_期間;i++,pos--)
      sum+=Close[pos];
//---- main calculation loop
   while(pos>=0)
     {
      sum+=Close[pos];
      ExtMapBuffer[pos]=sum/MA_Period;
           sum-=Close[pos+MA_Period-1];
           pos--;
     }
//---- zero initial bars
   if(ExtCountedBars<1)
      ために(i=1;私<MA_期間;i++) ExtMapBuffer[Bars-i]=0;
  }
//+------------------------------------------------------------------+
//| 指数移動平均                                       |
//+------------------------------------------------------------------+
void ema()
  {
   double pr=2.0/(MA_Period+1);
   int    pos=Bars-2;
   もしも(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
   while(pos>=0)
     {
      もしも(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
      ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-広報);
           pos--;
     }
  }
//+------------------------------------------------------------------+
//| Smoothed Moving Average                                          |
//+------------------------------------------------------------------+
void smma()
  {
   double sum=0;
   int    i,k,pos=Bars-ExtCountedBars+1;
//---- main calculation loop
   pos=Bars-MA_Period;
   もしも(pos>Bars-ExtCountedBars) pos=Bars-ExtCountedBars;
   その間(pos>=0)
     {
      もしも(pos==Bars-MA_Period)
        {
         //---- initial accumulation
         for(i=0,k=pos;私<MA_期間;i++,k++)
           {
            sum+=Close[k];
            //---- zero initial bars
            ExtMapBuffer[k]=0;
           }
        }
      else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+近い[pos];
      ExtMapBuffer[pos]=sum/MA_Period;
           pos--;
     }
  }
//+------------------------------------------------------------------+
//| Linear Weighted Moving Average                                   |
//+------------------------------------------------------------------+
void lwma()
  {
   double sum=0.0,lsum=0.0;
   double price;
   int    i,weight=0,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
   if(pos<MA_期間) pos=MA_Period;
   ために(i=1;私<=MA_Period;i++,pos--)
     {
      price=Close[pos];
      sum+=price*i;
      lsum+=price;
      weight+=i;
     }
//---- main calculation loop
   pos++;
   i=pos+MA_Period;
   その間(pos>=0)
     {
      ExtMapBuffer[pos]=sum/weight;
      もしも(pos==0) 壊す;
      pos--;
      私 - ;
      price=Close[pos];
      sum=sum-lsum+price*MA_Period;
      lsum-=Close[私];
      lsum+=price;
     }
//---- zero initial bars
   if(ExtCountedBars<1)
      ために(i=1;私<MA_期間;i++) ExtMapBuffer[Bars-i]=0;
  }
//+------------------------------------------------------------------+
02.01.2012 22:29 AmIBroke

やあ,

Thanks for this developing this indicator and sharing it.

Is it possible to change the MA method to Smoothed or Linear weighted or Exponential?

この投稿は役に立ちました?

星をクリックして評価してください!

平均評価 0 / 5. 投票数: 0

これまでのところ投票はありません! この投稿を最初に評価してください.

この投稿が役に立たなかったことをお詫び申し上げます!

この投稿を改善しましょう!

この投稿を改善する方法を教えてください?



著者: 外国為替ウィキチーム
私たちは経験豊富な外国為替トレーダーのチームです [2000-2023] 自分の思いどおりに人生を生きることに専念している人. 私たちの主な目的は、経済的自立と自由を獲得することです, 私たちは自立可能なライフスタイルを実現する手段として、独学で外国為替市場での豊富な経験を積んできました。.