View Single Post
  #5 (permalink)  
Old 03-04-2006, 12:21 PM
Mohammed's Avatar
Mohammed Mohammed is offline
Senior Member
 
Join Date: Mar 2006
Posts: 119
Mohammed is on a distinguished road
Arrow

Quote:
Originally Posted by shwetha
hi mohammed

thank you for the reply.but when i compiled its showing the following errors

'{' - expression on global scope not allowed
'\end_of_program' - ending bracket '}' expected

waiting for your response

bye
shwetha
shwetha,

It was only an idea of how the code has to be written.
Well, the code should be like that (Applied to the educational EA of Coders Guru "My First EA" :

PHP Code:
//+------------------------------------------------------------------+
//|                                                  My_First_EA.mq4 |
//|                                                      Coders Guru |
//|                                         http://www.forex-tsd.com |
//+------------------------------------------------------------------+
#property copyright "Coders Guru"
#property link      "http://www.forex-tsd.com"

//---- input parameters
extern double    TakeProfit=250.0;
extern double    Lots=0.1;
extern double    TrailingStop=35.0;

extern string password "000000"
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---- 
   
//----
   
return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   
return(0);
  }

int Crossed (double line1 double line2)
   {
      static 
int last_direction 0;
      static 
int current_dirction 0;
      
      if(
line1>line2)current_dirction 1//up
      
if(line1<line2)current_dirction 2//down



      
if(current_dirction != last_direction//changed 
      
{
            
last_direction current_dirction;
            return (
last_direction);
      }
      else
      {
            return (
0);
      }
   } 
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//---- 

   
if(StringFind(password"123456"0) == -1//change the 123456 to the password you will give to the user! 
      

         
Alert ("Wrong password! Do you want to cheat my system which I spent my life developing!"); 
         return (
0);   
      } 
   
   
int cnttickettotal;
   
double shortEmalongEma;
   
   
   if(
Bars<100)
     {
      Print(
"bars less than 100");
      return(
0);  
     }
   if(
TakeProfit<10)
     {
      Print(
"TakeProfit less than 10");
      return(
0);  // check TakeProfit
     
}
     
     
   
shortEma iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0);
   
longEma iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);
   
   
int isCrossed  Crossed (shortEma,longEma);
   
   
total  OrdersTotal(); 
   if(
total 1
     {
       if(
isCrossed == 1)
         {
            
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"My EA",12345,0,Green);
            if(
ticket>0)
              {
               if(
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
              }
            else Print(
"Error opening BUY order : ",GetLastError()); 
            return(
0);
         }
         if(
isCrossed == 2)
         {

            
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"My EA",12345,0,Red);
            if(
ticket>0)
              {
               if(
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
              }
            else Print(
"Error opening SELL order : ",GetLastError()); 
            return(
0);
         }
         return(
0);
     }
   for(
cnt=0;cnt<total;cnt++)
     {
      
OrderSelect(cntSELECT_BY_POSMODE_TRADES);
      if(
OrderType()<=OP_SELL && OrderSymbol()==Symbol())
        {
         if(
OrderType()==OP_BUY)   // long position is opened
           
{
            
// should it be closed?
           
if(isCrossed == 2)
                {
                 
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
                 
return(0); // exit
                
}
            
// check for trailing stop
            
if(TrailingStop>0)  
              {                 
               if(
Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(
OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(
0);
                    }
                 }
              }
           }
         else 
// go to short position
           
{
            
// should it be closed?
            
if(isCrossed == 1)
              {
               
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
               
return(0); // exit
              
}
            
// check for trailing stop
            
if(TrailingStop>0)  
              {                 
               if((
OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((
OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(
0);
                    }
                 }
              }
           }
        }
     }
   return(
0);
  }
//+------------------------------------------------------------------+ 
Reply With Quote