- Открытый проект - тестер-оптимизатор своими силами
- Нужна помощь в кодировании
- 90% трейдеров терпят неудачу...
гмм, скачай МТ5 и там ты увидишь
Содержимое папки MetaTrader 5\MQL5\Indicators\Examples
09.11.2010 09:41 5 012 Accelerator.mq5
09.11.2010 09:41 3 319 AD.mq5
09.11.2010 09:41 5 507 ADX.mq5
09.11.2010 09:41 6 697 ADXW.mq5
09.11.2010 09:41 5 934 Alligator.mq5
09.11.2010 09:41 5 224 AMA.mq5
09.11.2010 09:41 4 047 ASI.mq5
09.11.2010 09:41 3 917 ATR.mq5
09.11.2010 09:41 4 472 Awesome_Oscillator.mq5
09.11.2010 09:41 5 878 BB.mq5
09.11.2010 09:41 3 630 Bears.mq5
09.11.2010 09:41 3 643 Bulls.mq5
09.11.2010 09:41 4 925 BW-ZoneTrade.mq5
09.11.2010 09:41 3 725 CCI.mq5
09.11.2010 09:41 5 604 CHO.mq5
09.11.2010 09:41 4 562 CHV.mq5
09.11.2010 09:41 3 045 ColorBars.mq5
09.11.2010 09:41 3 099 ColorCandlesDaily.mq5
09.11.2010 09:41 5 180 ColorLine.mq5
09.11.2010 09:41 7 267 Custom Moving Average.mq5
09.11.2010 09:41 3 071 DEMA.mq5
09.11.2010 09:41 4 024 DeMarker.mq5
09.11.2010 09:41 2 839 DPO.mq5
09.11.2010 09:41 4 239 Envelopes.mq5
09.11.2010 09:41 3 867 Force_Index.mq5
09.11.2010 09:41 3 368 Fractals.mq5
09.11.2010 09:41 5 225 FrAMA.mq5
09.11.2010 09:41 9 975 Gator.mq5
09.11.2010 09:41 9 554 Gator_2.mq5
09.11.2010 09:41 3 354 Heiken_Ashi.mq5
09.11.2010 09:41 5 092 Ichimoku.mq5
09.11.2010 09:41 4 849 MACD.mq5
09.11.2010 09:41 4 678 MarketFacilitationIndex.mq5
09.11.2010 09:41 4 895 MFI.mq5
09.11.2010 09:41 4 804 MI.mq5
09.11.2010 09:41 2 920 Momentum.mq5
09.11.2010 09:41 3 469 OBV.mq5
09.11.2010 09:41 5 165 OsMA.mq5
09.11.2010 09:41 7 238 ParabolicSAR.mq5
09.11.2010 09:41 4 447 Price_Channel.mq5
09.11.2010 09:41 3 436 PVT.mq5
09.11.2010 09:41 2 734 ROC.mq5
09.11.2010 09:41 4 048 RSI.mq5
09.11.2010 09:41 4 320 RVI.mq5
09.11.2010 09:41 5 190 StdDev.mq5
09.11.2010 09:41 4 815 Stochastic.mq5
09.11.2010 09:41 3 348 TEMA.mq5
09.11.2010 09:41 3 442 TRIX.mq5
09.11.2010 09:41 6 850 Ultimate_Oscillator.mq5
09.11.2010 09:41 3 996 VIDYA.mq5
09.11.2010 09:41 3 446 Volumes.mq5
09.11.2010 09:41 4 035 VROC.mq5
09.11.2010 09:41 4 293 WPR.mq5
09.11.2010 09:41 3 372 W_AD.mq5
09.11.2010 09:41 9 456 ZigZag.mq5
09.11.2010 09:41 9 028 ZigzagColor.mq5
может чтонить для себя подберёшь :)
//+------------------------------------------------------------------+ //| MovingAverages.mqh | //| Copyright 2009, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "2009, MetaQuotes Software Corp." #property link "https://www.mql5.com" //+------------------------------------------------------------------+ //| Simple Moving Average | //+------------------------------------------------------------------+ double SimpleMA(const int position,const int period,const double &price[]) { //--- double result=0.0; //--- check position if(position>=period && period>0) { //--- calculate value for(int i=0;i<period;i++) result+=price[position-i]; result/=period; } //--- return(result); } //+------------------------------------------------------------------+ //| Exponential Moving Average | //+------------------------------------------------------------------+ double ExponentialMA(const int position,const int period,const double prev_value,const double &price[]) { //--- double result=0.0; //--- calculate value if(period>0) { double pr=2.0/(period+1.0); result=price[position]*pr+prev_value*(1-pr); } //--- return(result); } //+------------------------------------------------------------------+ //| Smoothed Moving Average | //+------------------------------------------------------------------+ double SmoothedMA(const int position,const int period,const double prev_value,const double &price[]) { //--- double result=0.0; //--- check position if(period>0) { if(position==period-1) { for(int i=0;i<period;i++) result+=price[position-i]; result/=period; } if(position>=period) result=(prev_value*(period-1)+price[position])/period; } //--- return(result); } //+------------------------------------------------------------------+ //| Linear Weighted Moving Average | //+------------------------------------------------------------------+ double LinearWeightedMA(const int position,const int period,const double &price[]) { //--- double result=0.0,sum=0.0; int i,wsum=0; //--- calculate value if(position>=period-1 && period>0) { for(i=period;i>0;i--) { wsum+=i; sum+=price[position-i+1]*(period-i+1); } result=sum/wsum; } //--- return(result); } //+------------------------------------------------------------------+ //| Simple moving average on price array | //+------------------------------------------------------------------+ int SimpleMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[]) { int i,limit; //--- check for data if(period<=1 || rates_total-begin<period) return(0); //--- save as_series flags bool as_series_price=ArrayGetAsSeries(price); bool as_series_buffer=ArrayGetAsSeries(buffer); if(as_series_price) ArraySetAsSeries(price,false); if(as_series_buffer) ArraySetAsSeries(buffer,false); //--- first calculation or number of bars was changed if(prev_calculated==0) // first calculation { limit=period+begin; //--- set empty value for first bars for(i=0;i<limit-1;i++) buffer[i]=0.0; //--- calculate first visible value double firstValue=0; for(i=begin;i<limit;i++) firstValue+=price[i]; firstValue/=period; buffer[limit-1]=firstValue; } else limit=prev_calculated-1; //--- main loop for(i=limit;i<rates_total;i++) buffer[i]=buffer[i-1]+(price[i]-price[i-period])/period; //--- restore as_series flags if(as_series_price) ArraySetAsSeries(price,true); if(as_series_buffer) ArraySetAsSeries(buffer,true); //--- return(rates_total); } //+------------------------------------------------------------------+ //| Exponential moving average on price array | //+------------------------------------------------------------------+ int ExponentialMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[]) { int i,limit; //--- check for data if(period<=1 || rates_total-begin<period) return(0); double dSmoothFactor=2.0/(1.0+period); //--- save as_series flags bool as_series_price=ArrayGetAsSeries(price); bool as_series_buffer=ArrayGetAsSeries(buffer); if(as_series_price) ArraySetAsSeries(price,false); if(as_series_buffer) ArraySetAsSeries(buffer,false); //--- first calculation or number of bars was changed if(prev_calculated==0) { limit=period+begin; //--- set empty value for first bars for(i=0;i<begin;i++) buffer[i]=0.0; //--- calculate first visible value buffer[begin]=price[begin]; for(i=begin+1;i<limit;i++) buffer[i]=price[i]*dSmoothFactor+buffer[i-1]*(1.0-dSmoothFactor); } else limit=prev_calculated-1; //--- main loop for(i=limit;i<rates_total;i++) buffer[i]=price[i]*dSmoothFactor+buffer[i-1]*(1.0-dSmoothFactor); //--- restore as_series flags if(as_series_price) ArraySetAsSeries(price,true); if(as_series_buffer) ArraySetAsSeries(buffer,true); //--- return(rates_total); } //+------------------------------------------------------------------+ //| Linear weighted moving average on price array | //+------------------------------------------------------------------+ int LinearWeightedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[],int &weightsum) { int i,limit; double sum; //--- check for data if(period<=1 || rates_total-begin<period) return(0); //--- save as_series flags bool as_series_price=ArrayGetAsSeries(price); bool as_series_buffer=ArrayGetAsSeries(buffer); if(as_series_price) ArraySetAsSeries(price,false); if(as_series_buffer) ArraySetAsSeries(buffer,false); //--- first calculation or number of bars was changed if(prev_calculated==0) { weightsum=0; limit=period+begin; //--- set empty value for first bars for(i=0;i<limit;i++) buffer[i]=0.0; //--- calculate first visible value double firstValue=0; for(i=begin;i<limit;i++) { int k=i-begin+1; weightsum+=k; firstValue+=k*price[i]; } firstValue/=(double)weightsum; buffer[limit-1]=firstValue; } else limit=prev_calculated-1; //--- main loop for(i=limit;i<rates_total;i++) { sum=0; for(int j=0;j<period;j++) sum+=(period-j)*price[i-j]; buffer[i]=sum/weightsum; } //--- restore as_series flags if(as_series_price) ArraySetAsSeries(price,true); if(as_series_buffer) ArraySetAsSeries(buffer,true); //--- return(rates_total); } //+------------------------------------------------------------------+ //| Smoothed moving average on price array | //+------------------------------------------------------------------+ int SmoothedMAOnBuffer(const int rates_total,const int prev_calculated,const int begin, const int period,const double& price[],double& buffer[]) { int i,limit; //--- check for data if(period<=1 || rates_total-begin<period) return(0); //--- save as_series flags bool as_series_price=ArrayGetAsSeries(price); bool as_series_buffer=ArrayGetAsSeries(buffer); if(as_series_price) ArraySetAsSeries(price,false); if(as_series_buffer) ArraySetAsSeries(buffer,false); //--- first calculation or number of bars was changed if(prev_calculated==0) { limit=period+begin; //--- set empty value for first bars for(i=0;i<limit-1;i++) buffer[i]=0.0; //--- calculate first visible value double firstValue=0; for(i=begin;i<limit;i++) firstValue+=price[i]; firstValue/=period; buffer[limit-1]=firstValue; } else limit=prev_calculated-1; //--- main loop for(i=limit;i<rates_total;i++) buffer[i]=(buffer[i-1]*(period-1)+price[i])/period; //--- restore as_series flags if(as_series_price) ArraySetAsSeries(price,true); if(as_series_buffer) ArraySetAsSeries(buffer,true); //--- return(rates_total); } //+------------------------------------------------------------------+
Я имел ввиду функции типа: isDemo(), Marketinfo(),Timecurrent(), OrderSymbol(),OrderSend(), GetLast Error() и т д, их там много и их код должен же гдето быть, с iMA спасибо, а может кто то знает где находится вся эта библиотека?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования