Need som help to get the code running

 

Need some help to get this indicator up and running.
Get these errors: 
'OP_TOLERANCE' - undeclared identifier  support_vector_machine_indicator-3.mq5  147     28
'OP_TOLERANCE' - cannot convert enum    support_vector_machine_indicator-3.mq5  147     28
'OP_TOLERANCE' - cannot convert enum    support_vector_machine_indicator-3.mq5  147     28
'OP_TOLERANCE' - illegal operation use  support_vector_machine_indicator-3.mq5  147     28
'BUY' - undeclared identifier   support_vector_machine_indicator-3.mq5  149     26
'BUY' - cannot convert enum     support_vector_machine_indicator-3.mq5  149     26
'BUY' - cannot convert enum     support_vector_machine_indicator-3.mq5  149     26
'BUY' - illegal operation use   support_vector_machine_indicator-3.mq5  149     26
'OP_TOLERANCE' - undeclared identifier  support_vector_machine_indicator-3.mq5  154     28
'OP_TOLERANCE' - cannot convert enum    support_vector_machine_indicator-3.mq5  154     28
'OP_TOLERANCE' - cannot convert enum    support_vector_machine_indicator-3.mq5  154     28
'OP_TOLERANCE' - illegal operation use  support_vector_machine_indicator-3.mq5  154     28
'SELL' - undeclared identifier  support_vector_machine_indicator-3.mq5  156     26
'SELL' - cannot convert enum    support_vector_machine_indicator-3.mq5  156     26
'SELL' - cannot convert enum    support_vector_machine_indicator-3.mq5  156     26
'SELL' - illegal operation use  support_vector_machine_indicator-3.mq5  156     26
Any ideas how to "fix" it? Thanks in advance.
//+------------------------------------------------------------------+
//|                             Support Vector Machine Indicator.mq5 | //|                        Copyright 2011, MetaQuotes Software Corp. |//|                                              http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright"Copyright 2011, MetaQuotes Software Corp." #property link      "http://www.mql5.com"#property version   "1.00"//+---------Support Vector Machine Learning Tool Functions-----------+ //| The following #import statement imports all of the support vector //| machine learning tool functions into the indicator for use. Please note, if //| you do not import the functions here, the compiler will not let you//| use any of the functions //+------------------------------------------------------------------+ #import "svMachineTool.ex5"enum ENUM_TRADE {BUY,SELL}; enum ENUM_OPTION {OP_MEMORY,OP_MAXCYCLES,OP_TOLERANCE}; int  initSVMachine(void); void setIndicatorHandles(int handle,int& indicatorHandles[],int& Offsets[], int startBar,int N); void setIndicatorHandles( int handle,int &indicatorHandles[],int startBar,int N); void setParameter(int handle,ENUM_OPTION option,double value); bool genOutputs(int handle,ENUM_TRADE trade,int StopLoss,int TakeProfit,double duration); bool genInputs(int handle); bool setInputs(int handle,double &Inputs[],int nInputs); bool setOutputs(int handle,bool &Outputs[]); bool getTrainingData(int handle,double &Inputs[],bool &Outputs[]); bool training(int handle); bool classify(int handle); bool classify(int handle,int offset); bool classify(int handle,double &iput[]); void  deinitSVMachine(void); #import #property description"This indicator uses support vector machines to analyse indicator data and signal future trades."#property description "Buy trades are signalled by a green ‘up’ arrow with sell trades signalled by a red ‘down’ arrow." #property description"This indicator uses the Support Vector Machine Learning Library available from the metaquotes "#property description "market place to achieve support vector machine functionality." #property indicator_chart_window #property indicator_buffers 9 #property indicator_plots   2 #property indicator_label1  "Buy Arrow" #property indicator_type1   DRAW_ARROW#property indicator_color1  clrGreen#property indicator_width1  5#property indicator_label2  "Sell Arrow" #property indicator_type2   DRAW_ARROW#property indicator_color2  clrRed#property indicator_width2  5//+---------------------Indicator Variables--------------------------+ //| Only the default indicator variables have been used here. I //| recommend you play with these values to see if you get any //| better performance with the indicator.                    //+------------------------------------------------------------------+ int bears_period=13; int bulls_period=13; int ATR_period=13; int mom_period=13; int MACD_fast_period=12; int MACD_slow_period= 26; int MACD_signal_period=9; int Stoch_Kperiod=5; int Stoch_Dperiod=3; int Stoch_slowing=3; int Force_period= 13; datetime input TrainingDate;     //All historical data used for training the support vector machine will be from prior to this date. intinput      N_DataPoints=500; //Specifies the number of training points to be used when training the SVM input int      takeProfit=80;    //TakeProfit level measured in pips for hypothetical trades input int      stopLoss=80;      //StopLoss level measured in pips for hypothetical trades input double   hours= 10;         //The maximum hypothetical trade duration for calculating training outputs. input double   Tolerance_Value= 0.1; //Error Tolerance value for training the svm (default is 10%)int            handles[];     //creates an array with 2 rows to store the indicator handles/offsets double         BuyBuffer[],SellBuffer[];   //Buffers to store data for plotting buy/sell arrows int            handleB,handleS;  //handle values for the buy/sell support vector machines //+------------------------------------------------------------------+ //| Custom indicator initialization function                         | //+------------------------------------------------------------------+ intOnInit()   { //Initializes the buy arrow buffers    SetIndexBuffer(0,BuyBuffer,INDICATOR_DATA);    ArraySetAsSeries(BuyBuffer,true);    PlotIndexSetInteger(0,PLOT_ARROW,241);    PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); //Initializes the sell arrow buffers    SetIndexBuffer(1,SellBuffer,INDICATOR_DATA);    ArraySetAsSeries(SellBuffer,true);    PlotIndexSetInteger(1,PLOT_ARROW,242);    PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);    ArrayResize(handles,7);ArrayInitialize(handles,0); //Resize the handles array and initialize with zeros values. //+------------------------------------------------------------------+ //| The following statements are used to initialize the indicators to be used for the support //| vector machine. The handles returned are stored to an int[] array. I have used standard //| indicators in this case however, you can also you custom indicators if desired. //+------------------------------------------------------------------+    handles[0]=iBearsPower(Symbol(),0,bears_period);    handles[ 1]=iBullsPower(Symbol(),0,bulls_period);    handles[ 2]=iATR(Symbol(),0,ATR_period);    handles[ 3]=iMomentum(Symbol(),0,mom_period,PRICE_TYPICAL);    handles[ 4]=iMACD(Symbol(),0,MACD_fast_period,MACD_slow_period,MACD_signal_period,PRICE_TYPICAL);    handles[ 5]=iStochastic(Symbol(),0,Stoch_Kperiod,Stoch_Dperiod,Stoch_slowing,MODE_SMA,STO_LOWHIGH);    handles[ 6]=iForce(Symbol(),0,Force_period,MODE_SMA,VOLUME_TICK);    return(0);   } //+------------------------------------------------------------------+ //|                                                                  |//+------------------------------------------------------------------+ voidOnDeinit(const int reason)   {    deinitSVMachine();     //deinitializes the support vector machines   } //+------------------------------------------------------------------+ //| Custom indicator iteration function                              |//+------------------------------------------------------------------+ intOnCalculate(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[])   { //+------------------------------------------------------------------+//| This statement is called the first time the indicator is attached to the chart //| Training outputs from the support vector machine are used to create buy/sell //| on the current bars on the chart. //+------------------------------------------------------------------+    if(prev_calculated==0)      {        int offset=0;       //----------Initialize, Setup and Training of the Buy-Signal support vector machine----------       handleB=initSVMachine();             //initializes a new SVM and stores the handle to 'handleB'       setIndicatorHandles(handleB,handles,offset,N_DataPoints);   //passes the initialized indicators to the SVM with desired offset and number of data points       setParameter(handleB,OP_TOLERANCE,Tolerance_Value);   //Sets the maximum error tolerance for SVM training       genInputs(handleB);               //generate inputs using the initialized indicators       genOutputs(handleB,BUY,stopLoss,takeProfit,hours);   //generates the outputs based on the desired parameters for taking hypothetical trades        //----------Initialize, Setup and Training of the Sell-Signal support vector machine----------       handleS=initSVMachine();            //initializes a new SVM and stores the handle to 'handleS'       setIndicatorHandles(handleS,handles,offset,N_DataPoints);   //passes the initialized indicators to the SVM with desired offset and number of data points       setParameter(handleS,OP_TOLERANCE,Tolerance_Value);   //Sets the maximum error tolerance for SVM training       genInputs(handleS);               //generate inputs using the initialized indicators       genOutputs(handleS,SELL,stopLoss,takeProfit,hours);   //generates the outputs based on the desired parameters for taking hypothetical trades       training(handleB);       //executes training on the Buy-Signal support vector machine       training(handleS);       //executes training on the Sell-Signal support vector machine        bool buys[],sells[];    //create two boolean arrays        double unused[];        //Creates a double array that is unused       getTrainingData(handleB,unused,buys);  //retrieves the training data from the buy-signal SVM       getTrainingData(handleS,unused,sells); //retrieves the training data from the sell-signal SVM       for(int i=0;i<ArraySize(buys);i++)         {          if(buys[ArraySize(buys)-i-1])    BuyBuffer[i]=open[rates_total-i-1];          else                             BuyBuffer[i]=0;         }        for(int i=0;i<ArraySize(sells);i++)         {          if(sells[ArraySize(sells)-i-1])  SellBuffer[i]=open[rates_total-i-1];          else                             SellBuffer[i]=0;         }      } //+------------------------------------------------------------------+ //| This statement is called for the calculation of any new bar generated on the //| current chart timeframe. It uses the model created by the trained support vector //| machine to signal buy/sell trades and indicates with arrows //+------------------------------------------------------------------+    if(rates_total!=prev_calculated && prev_calculated>0)      {        for(int i=(rates_total-prev_calculated-1);i>0;i--)         {          if(classify(handleB,i))    BuyBuffer[i]=open[rates_total-i-1];          else                       BuyBuffer[i]=0;          if(classify(handleS,i))    SellBuffer[i]=open[rates_total-i-1];          else                       SellBuffer[i]=0;         }      }    return(rates_total);   } //+------------------------------------------------------------------+
 

I don't know if the original code is also messed up like the way you copied it here, but - sorry - if you expect any help,

you should probably edit your post by adding all the missing line feeds and thereby make it actually readable for a human being.

 

The reason it won't compile:

This indicator uses the Support Vector Machine Learning Library available from the metaquotes market place to achieve support vector machine functionality.

https://www.mql5.com/en/code/1437
Reason: