無料でロボットをダウンロードする方法を見る
Twitter上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
- ビュー:
- 27377
- 評価:
- パブリッシュ済み:
- 2008.12.05 07:52
- アップデート済み:
- 2014.04.21 14:53
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
//+------------------------------------------------------------------+ //| NonLagAMA.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| https://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "https://www.metaquotes.net/"
#property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Yellow #property indicator_width1 2 #property indicator_color2 RoyalBlue #property indicator_width2 2 #property indicator_color3 Red #property indicator_width3 2 //---- input parameters extern int Price =0; extern int Length =25; extern int Displace =0; extern int Filter =0; extern int Color =1; extern int ColorBarBack =2; extern double Deviation =0; //---- double Cycle= 4; //---- indicator buffers double MABuffer[]; double UpBuffer[]; double DnBuffer[]; double price[]; double trend[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { int ft=0; string short_name; //---- indicator line IndicatorBuffers(5); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,MABuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,UpBuffer); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,DnBuffer); SetIndexBuffer(3,price); SetIndexBuffer(4,trend); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); SetIndexArrow(0,159); SetIndexArrow(1,159); SetIndexArrow(2,159); SetIndexArrow(3,159); //---- name for DataWindow and indicator subwindow label short_name="NonLagAma("+Length+")"; IndicatorShortName(short_name); SetIndexLabel(0,"NLD"); SetIndexLabel(1,"Up"); SetIndexLabel(2,"Dn"); //---- SetIndexShift(0,Displace); SetIndexShift(1,Displace); SetIndexShift(2,Displace);
SetIndexDrawBegin(0,Length*Cycle+Length); SetIndexDrawBegin(1,Length*Cycle+Length); SetIndexDrawBegin(2,Length*Cycle+Length); //---- return(0); } //+------------------------------------------------------------------+ //| NonLagMA_v4 | //+------------------------------------------------------------------+ int start() { int i,shift, counted_bars=IndicatorCounted(),limit; double alfa, beta, t, Sum, Weight, step,g; double pi=3.1415926535; //---- double Coeff= 3*pi; int Phase=Length-1; double Len=Length*Cycle + Phase; //---- if(counted_bars > 0) limit=Bars-counted_bars; if(counted_bars < 0) return(0); if(counted_bars ==0) limit=Bars-Len-1; if(counted_bars < 1) for(i=1;i<Length*Cycle+Length;i++) { MABuffer[Bars-i]=0; UpBuffer[Bars-i]=0; DnBuffer[Bars-i]=0; } for(shift=limit;shift>=0;shift--) { Weight=0; Sum=0; t=0; for(i=0;i<=Len-1;i++) { g=1.0/(Coeff*t+1); if (t<=0.5)g=1; beta=MathCos(pi*t); alfa=g * beta; price[i]=iMA(NULL,0,1,0,MODE_SMA,Price,shift+i); Sum+=alfa*price[i]; Weight+=alfa; if(t < 1)t+=1.0/(Phase-1); else if(t < Len-1) t+=(2*Cycle-1)/(Cycle*Length-1); } if (Weight > 0) MABuffer[shift]=(1.0+Deviation/100)*Sum/Weight; if (Filter>0) { if(MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter*Point)MABuffer[shift]=MABuffer[shift+1]; } if (Color>0) { trend[shift]=trend[shift+1]; if (MABuffer[shift]-MABuffer[shift+1] > Filter*Point) trend[shift]= 1; if (MABuffer[shift+1]-MABuffer[shift] > Filter*Point) trend[shift]=-1; if (trend[shift]>0) { UpBuffer[shift]=MABuffer[shift]; if (trend[shift+ColorBarBack]<0) UpBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]; DnBuffer[shift]=EMPTY_VALUE; } if (trend[shift]<0) { DnBuffer[shift]=MABuffer[shift]; if (trend[shift+ColorBarBack]>0) DnBuffer[shift+ColorBarBack]=MABuffer[shift+ColorBarBack]; UpBuffer[shift]=EMPTY_VALUE; } } } return(0); } //+------------------------------------------------------------------+

The indicator displays what dominates in a time series: the trend or the flat component or the series acts randomly.

Simple EA to Close Orders

Indicator MultiStrend. It works only with the Supertrend indicator.

The indicator draws the dollar index on the chart. The indicator is intended to simplify the charts analysis.