fxDreema

    • Register
    • Login
    • Search
    • Back to the main page
    • Categories
    • Recent
    • Tags
    • Popular
    • Search

    Fxdreema not allowing to load my Indicator:

    Questions & Answers
    3
    7
    538
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • TashaB
      TashaB last edited by

      I'm trying to input my custom indicator but its refusing......
      ind.jpg
      error.jpg

      1 Reply Last reply Reply Quote 0
      • S
        sktsec last edited by

        Check if your indicator has any buffer. Maybe it only create some objects

        TashaB 1 Reply Last reply Reply Quote 0
        • TashaB
          TashaB @sktsec last edited by TashaB

          @sktsec

          beever.mq5
          i've checked....i dont think the indicator is the problem, it must be fxdreema

          1 Reply Last reply Reply Quote 0
          • S
            sktsec last edited by

            Check the source code of your indicator,

            SetIndexBuffer(0,BufferPOS,INDICATOR_DATA);
            SetIndexBuffer(1,BufferColorsPOS,INDICATOR_COLOR_INDEX);
            SetIndexBuffer(2,BufferNEG,INDICATOR_DATA);
            SetIndexBuffer(3,BufferColorsNEG,INDICATOR_COLOR_INDEX);
            SetIndexBuffer(4,BufferPosTMP,INDICATOR_CALCULATIONS);
            SetIndexBuffer(5,BufferNegTMP,INDICATOR_CALCULATIONS);

            It seems that the last parameter in each setindexbuffer() is not defined yet. Are you sure the file is the whole source code?

            Maybe you can try removing those parameters and see if the indicator works fine. Then import again.

            TashaB 1 Reply Last reply Reply Quote 0
            • TashaB
              TashaB @sktsec last edited by TashaB

              @sktsec Actually, this is the original code;

              //+------------------------------------------------------------------+
              //| Cumulative_Volume.mq5 |
              //| Copyright 2018, MetaQuotes Software Corp. |
              //| https://mql5.com |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2018, MetaQuotes Software Corp."
              #property link "https://mql5.com"
              #property version "1.00"
              #property description "Cumulative Volume:"
              #property description "Relative and Absolute presentation."
              #property description "Cumulative or Separated (Up/Down)"
              #property description " data presentation."

              #property indicator_separate_window
              #property indicator_buffers 6
              #property indicator_plots 2
              //--- plot POS
              #property indicator_label1 "Positive"
              #property indicator_type1 DRAW_COLOR_LINE
              #property indicator_color1 clrLimeGreen,clrRed
              #property indicator_style1 STYLE_SOLID
              #property indicator_width1 2
              //--- plot NEG
              #property indicator_label2 "Negative"
              #property indicator_type2 DRAW_COLOR_LINE
              #property indicator_color2 clrLimeGreen,clrRed
              #property indicator_style2 STYLE_SOLID
              #property indicator_width2 2
              //--- enums
              enum ENUM_INPUT_YES_NO
              {
              INPUT_YES = 1, // Yes
              INPUT_NO = 0 // No
              };
              //--- input parameters
              input uint InpPeriod = 14; // Period
              input ENUM_INPUT_YES_NO InpCombined = INPUT_NO; // Combined
              input ENUM_INPUT_YES_NO InpRelative = INPUT_NO; // Relative
              //--- indicator buffers
              double BufferPOS[];
              double BufferColorsPOS[];
              double BufferNEG[];
              double BufferColorsNEG[];
              double BufferPosTMP[];
              double BufferNegTMP[];
              //--- global variables
              int period_ma;
              //+------------------------------------------------------------------+
              //| Custom indicator initialization function |
              //+------------------------------------------------------------------+
              int OnInit()
              {
              //--- setting global variables
              period_ma=int(InpPeriod<1 ? 1 : InpPeriod);
              //--- indicator buffers mapping
              SetIndexBuffer(0,BufferPOS,INDICATOR_DATA);
              SetIndexBuffer(1,BufferColorsPOS,INDICATOR_COLOR_INDEX);
              SetIndexBuffer(2,BufferNEG,INDICATOR_DATA);
              SetIndexBuffer(3,BufferColorsNEG,INDICATOR_COLOR_INDEX);
              SetIndexBuffer(4,BufferPosTMP,INDICATOR_CALCULATIONS);
              SetIndexBuffer(5,BufferNegTMP,INDICATOR_CALCULATIONS);
              //--- settings indicators parameters
              IndicatorSetInteger(INDICATOR_DIGITS,Digits());
              IndicatorSetString(INDICATOR_SHORTNAME,"Cumulative Volume("+(string)period_ma+")");
              //--- setting buffer arrays as timeseries
              ArraySetAsSeries(BufferPOS,true);
              ArraySetAsSeries(BufferColorsPOS,true);
              ArraySetAsSeries(BufferNEG,true);
              ArraySetAsSeries(BufferColorsNEG,true);
              ArraySetAsSeries(BufferPosTMP,true);
              ArraySetAsSeries(BufferNegTMP,true);
              //---
              return(INIT_SUCCEEDED);
              }
              //+------------------------------------------------------------------+
              //| Custom indicator iteration function |
              //+------------------------------------------------------------------+
              int OnCalculate(const int rates_total,
              const int prev_calculated,
              const datetime &time[],
              const double &open[],
              const double &high[],
              const double &low[],
              const double &close[],
              const long &tick_volume[],
              const long &volume[],
              const int &spread[])
              {
              //--- Проверка на минимальное количество баров для расчёта
              if(rates_total<period_ma) return 0;
              //--- Установка массивов буферов как таймсерий
              ArraySetAsSeries(close,true);
              ArraySetAsSeries(tick_volume,true);
              //--- Проверка и расчёт количества просчитываемых баров
              int limit=rates_total-prev_calculated;
              if(limit>1)
              {
              limit=rates_total-period_ma-2;
              ArrayInitialize(BufferPOS,0);
              ArrayInitialize(BufferNEG,0);
              ArrayInitialize(BufferPosTMP,0);
              ArrayInitialize(BufferNegTMP,0);
              }
              //--- Подготовка данных
              for(int i=limit; i>=0; i--)
              {
              if(close[i]>close[i+1])
              {
              BufferPosTMP[i]=(double)tick_volume[i]/100;
              BufferNegTMP[i]=0;
              }
              else
              {
              BufferPosTMP[i]=0;
              BufferNegTMP[i]=(double)tick_volume[i]/100;
              }
              }
              //--- Расчёт индикатора
              for(int i=limit; i>=0; i--)
              {
              double pos=MAOnArray(BufferPosTMP,0,period_ma,0,MODE_SMA,i)*period_ma;
              double neg=MAOnArray(BufferNegTMP,0,period_ma,0,MODE_SMA,i)period_ma;
              double vol=0;
              for(int j=0; j<period_ma; j++)
              vol+=(double)tick_volume[i+j];
              vol/=100;
              if(InpCombined)
              {
              if(InpRelative)
              {
              double res=(pos-neg)1000/vol;
              BufferPOS[i]=(res>0 ? res : 0);
              BufferNEG[i]=(res<=0 ? res : 0);
              BufferColorsPOS[i]=(BufferPOS[i]>BufferPOS[i+1] ? 0 : 1);
              BufferColorsNEG[i]=(BufferNEG[i]>BufferNEG[i+1] ? 0 : 1);
              }
              else
              {
              double res=pos-neg;
              BufferPOS[i]=(res>0 ? res : 0);
              BufferNEG[i]=(res<=0 ? res : 0);
              BufferColorsPOS[i]=(BufferPOS[i]>BufferPOS[i+1] ? 0 : 1);
              BufferColorsNEG[i]=(BufferNEG[i]>BufferNEG[i+1] ? 0 : 1);
              }
              }
              else
              {
              if(InpRelative)
              {
              BufferPOS[i]=pos
              1000/vol;
              BufferNEG[i]=neg
              1000/vol;
              BufferColorsPOS[i]=0;
              BufferColorsNEG[i]=1;
              }
              else
              {
              BufferPOS[i]=pos;
              BufferNEG[i]=neg;
              BufferColorsPOS[i]=0;
              BufferColorsNEG[i]=1;
              }
              }
              }

              //--- return value of prev_calculated for next call
              return(rates_total);
              }
              //+------------------------------------------------------------------+
              //| iMAOnArray() https://www.mql5.com/ru/articles/81 |
              //+------------------------------------------------------------------+
              double MAOnArray(double &array[],int total,int period,int ma_shift,int ma_method,int shift)
              {
              double buf[],arr[];
              if(total==0) total=ArraySize(array);
              if(total>0 && total<=period) return(0);
              if(shift>total-period-ma_shift) return(0);
              //---
              switch(ma_method)
              {
              case MODE_SMA :
              {
              total=ArrayCopy(arr,array,0,shift+ma_shift,period);
              if(ArrayResize(buf,total)<0) return(0);
              double sum=0;
              int i,pos=total-1;
              for(i=1;i<period;i++,pos--)
              sum+=arr[pos];
              while(pos>=0)
              {
              sum+=arr[pos];
              buf[pos]=sum/period;
              sum-=arr[pos+period-1];
              pos--;
              }
              return(buf[0]);
              }
              case MODE_EMA :
              {
              if(ArrayResize(buf,total)<0) return(0);
              double pr=2.0/(period+1);
              int pos=total-2;
              while(pos>=0)
              {
              if(pos==total-2) buf[pos+1]=array[pos+1];
              buf[pos]=array[pos]pr+buf[pos+1](1-pr);
              pos--;
              }
              return(buf[shift+ma_shift]);
              }
              case MODE_SMMA :
              {
              if(ArrayResize(buf,total)<0) return(0);
              double sum=0;
              int i,k,pos;
              pos=total-period;
              while(pos>=0)
              {
              if(pos==total-period)
              {
              for(i=0,k=pos;i<period;i++,k++)
              {
              sum+=array[k];
              buf[k]=0;
              }
              }
              else sum=buf[pos+1](period-1)+array[pos];
              buf[pos]=sum/period;
              pos--;
              }
              return(buf[shift+ma_shift]);
              }
              case MODE_LWMA :
              {
              if(ArrayResize(buf,total)<0) return(0);
              double sum=0.0,lsum=0.0;
              double price;
              int i,weight=0,pos=total-1;
              for(i=1;i<=period;i++,pos--)
              {
              price=array[pos];
              sum+=price
              i;
              lsum+=price;
              weight+=i;
              }
              pos++;
              i=pos+period;
              while(pos>=0)
              {
              buf[pos]=sum/weight;
              if(pos==0) break;
              pos--;
              i--;
              price=array[pos];
              sum=sum-lsum+price*period;
              lsum-=array[i];
              lsum+=price;
              }
              return(buf[shift+ma_shift]);
              }
              default: return(0);
              }
              return(0);
              }
              //+------------------------------------------------------------------+

              @sktsec Still doesnt work either....

              l'andorrà 1 Reply Last reply Reply Quote 0
              • l'andorrà
                l'andorrà @TashaB last edited by

                @TashaB That is a very common problem when trying ex5 files. Here you have two tutorials created to emulate the input parameters and buffers. If you can't make it after trying them that means the indicator is not compatible with fxDreema:

                https://fxdreema.com/forum/topic/4208/tutorial-06-my-indicators-in-fxdreema
                https://fxdreema.com/forum/topic/9105/tutorial-working-with-ex4-ex5-indicator-file

                (English) I will try to help everyone in these fxDreema forums. But if you want to learn how to use the platform in depth or more quickly, I can help you with my introductory fxDreema course in English at https://www.theandorraninvestor.eu.

                (Català) Miraré d’ajudar tothom en aquests fòrums d’fxDreema. Tanmateix, si vols aprendre a fer servir la plataforma amb més profunditat o més de pressa, t’hi puc ajudar amb el meu curs d’introducció a fxDeema en català a https://www.theandorraninvestor.eu/ca.

                (Español) Intentaré ayudar a todo el mundo en estos foros de fxDreema. Sin embargo, si quieres aprender a usar la plataforma en profundidad o más deprisa, te puedo ayudar con mi curso de introducción a fxDreema en español en https://www.theandorraninvestor.eu/es.

                TashaB 1 Reply Last reply Reply Quote 1
                • TashaB
                  TashaB @l'andorrà last edited by

                  @l-andorrà
                  YOU
                  SAVED
                  MY
                  LIFE!!!!

                  ITS TOTALLY WORKING NOW!!!!! THNKX SOOO MUCH!!!!

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  • First post
                    Last post

                  Online Users

                  C
                  I
                  I
                  E
                  E
                  O
                  O
                  D
                  F
                  K

                  23
                  Online

                  146.6k
                  Users

                  22.4k
                  Topics

                  122.6k
                  Posts

                  Powered by NodeBB Forums | Contributors