'Trade' - undeclared identifier & '}' - unexpected end of program ANY THOUGHTS, Thank you!

 
  1. Please edit your (original) post and use the CODE button (Alt-S)! (For large amounts of code, attach it.)
              General rules and best pratices of the Forum. - General - MQL5 programming forum 2019.05.06
              Messages Editor

  2.  int EMADefinition1 = iMA(_Symbol,PERIOD_H1,7,0,MODE_EMA,PRICE_CLOSE); 

    Perhaps you should read the manual, especially the examples.
       How To Ask Questions The Smart Way. 2004
          How To Interpret Answers.
             RTFM and STFW: How To Tell You've Seriously Screwed Up.

    They all (including iCustom) return a handle (an int). You get that in OnInit. In OnTick (after the indicator has updated its buffers), you use the handle, shift and count to get the data.
              Technical Indicators - Reference on algorithmic/automated trading language for MetaTrader 5
              Timeseries and Indicators Access / CopyBuffer - Reference on algorithmic/automated trading language for MetaTrader 5
              How to start with MQL5 - General - MQL5 programming forum - Page 3 #22 2020.03.08
              How to start with MQL5 - MetaTrader 5 - General - MQL5 programming forum - Page 7 #61 2020.07.05
              How to call indicators in MQL5 - MQL5 Articles 12 March 2010

  3. if(myEMAarray1[0]>myEMAarray2[0]
          && myEMAarray2[0]>myEMAarray3[0])
          {
            Trade.Buy(…)
            
             
          //////////// SELL ///////////
           
           else if(myEMAarray1[0]<myEMAarray2[0] 

    The if starts with the open bracket. The else has no starting if.

  4. No ending semicolon on the Trade.buy.

  5.         Trade.Buy(
                double        volume=0.01,                                    // position volume
                const string  symbol=NULL,                                   // symbol
              //double        price=0.0,                                    // execution price
                int        sl=(myEMAarray1[0]<myEMAarray2[0]),          // stop loss price
                int        tp=Ask+100* _Point,                         // take profit price
                      )

    The definition of a method includes the datatypes of the parameters and the parameters name. The call of a method is just the parameters.

  6. How do you expect to buy without a price?