- 12月 3, 2013
- 投稿者: 外国為替ウィキチーム
- カテゴリー: FXインド
名前: |
|
||
著者: | メタ引用 (2005.12.07 11:30) | ||
ダウンロード済み: | 6759 | ||
ダウンロード: |
|
||
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. 計算 Where: Technical Indicator DescriptionFull description of Env is available in the Technical analysis: 封筒 |
|||
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
|