韬客社区 收藏
草龙 14-10-20 07:18
1楼
[MT4指标] 蔡金随机波动指标
蔡金随机波动指标 附图指标, mt4指标类型:震荡指标 是否能用在mt4手机版上:否 是否含有未来函数:无 //+------------------------------------------------------------------+ //| Stochastic Chaikin\'s Volatility.mq4 | //| Giaras | //| [email protected] | //+------------------------------------------------------------------+ #property copyright \"giaras\" #property link \"[email protected]\" #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_level1 0 #property indicator_level2 80 #property indicator_level3 20 #property indicator_minimum 0 #property indicator_maximum 100 //---- input parameters //extern int iPeriod=5; extern int maPeriod=10; extern int StocLength = 5; extern int WMALength = 5; //---- buffers double chakin; double StocChakin; double Trigger; double Value3; double hl; double emahl; int buffers = 0; int drawBegin = 0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { drawBegin = 4; //---- indicators initBuffer(StocChakin, \"Stochastic Chakin\", DRAW_LINE); initBuffer(Trigger, \"Trigger\", DRAW_LINE); initBuffer(hl); initBuffer(emahl); initBuffer(chakin); initBuffer(Value3); IndicatorBuffers(buffers); IndicatorShortName(\"Stochastic Chakin Volatility[\" + maPeriod + \", \" + StocLength + \", \" + WMALength + \"]\"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if (Bars <= drawBegin) return (0); int counted_bars=IndicatorCounted(); if(counted_bars<0) return (-1); if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars-1; //---- for(int c = 0 ;c <= limit ;c++) hl[c]=High[c]-Low[c]; //for(int e = 0 ;e <= limit ;e++) //{ // emahl[e]= iMAOnArray(hl,0,maPeriod,0,MODE_EMA,e); //} //for(int i = 0 ;i <= limit-iPeriod ;i++) for(int i = 0 ;i <= limit ;i++) { //chakin = ( (emahl-emahl[i+iPeriod])/emahl[i+iPeriod] )*100; //chakin = ( (emahl-emahl[i+iPeriod]) ); chakin = iMAOnArray(hl,0,maPeriod,0,MODE_EMA,i); } for (int s = limit; s >= 0; s--) { double _chakin = chakin[s]; double hh = _chakin, ll = _chakin; for (i = 0; i < StocLength; i++) { double tmp = chakin[s + i]; hh = MathMax(hh, tmp); ll = MathMin(ll, tmp); } double Value1 = _chakin - ll; double Value2 = hh - ll; Value3[s] = 0.0; if (Value2 != 0.0) { Value3[s] = Value1 / Value2; } } for (s = limit - 1; s >= 0; s--) { //StocChakin[s] = 2.0 * (iMAOnArray(Value3, 0, WMALength, 0, MODE_LWMA, s) - 0.5); StocChakin[s] = 100 * iMAOnArray(Value3, 0, WMALength, 0, MODE_LWMA, s); Trigger[s] = StocChakin[s + 1]; } return(0); } void initBuffer(double array, string label = \"\", int type = DRAW_NONE, int arrow = 0, int style = EMPTY, int width = EMPTY, color clr = CLR_NONE) { SetIndexBuffer(buffers, array); SetIndexLabel(buffers, label); SetIndexEmptyValue(buffers, EMPTY_VALUE); SetIndexDrawBegin(buffers, drawBegin); SetIndexShift(buffers, 0); SetIndexStyle(buffers, type, style, width); SetIndexArrow(buffers, arrow); buffers++; }
guoyoz
2楼
14-10-24 18:35 回复
怎么没有图图
zhangdada
3楼
16-03-02 14:32 回复
goodday
4楼
16-12-07 18:12 回复
谢楼主的分享
hudie
5楼
16-12-11 16:03 回复
谢谢分享!不错!