Starter_CoolGluk

Author: Copyright � 2005, MetaQuotes Software Corp.
Profit factor:
12.91
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself
Indicators Used
Commodity channel indexMoving average indicator
6 Views
2 Downloads
0 Favorites
Starter_CoolGluk
//+------------------------------------------------------------------+
//|                                                      Starter.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#define MAGICMA  20050610

extern double Lots               = 1;
extern double MaximumRisk        = 0.03;
extern double DecreaseFactor     = 3;
extern double IncreaseFactor     = 3;
//extern double Lots = 4;
extern double Stop = 10;
extern double MAPeriod=120;
double spread=1.5;
//+-- extern double JuiceLevel = 0.0005;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---- 
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 
   
//----
   return(0);
  }
 
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
   int    wines=0;                  // number of wines orders without a break
   int    i;
//---- select lot size
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000,1);
//---- calcuulate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      for(i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }
   if((IncreaseFactor>0) && (losses<1))
     {
      for(i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("Error in history!"); break; }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL) continue;
         //----
         if(OrderProfit()<0) break;
         if(OrderProfit()>0) wines++;
        }
      if(wines>1) lot=NormalizeDouble(lot-lot*wines/IncreaseFactor,1);
     }
//---- return lot size
   if(lot<0.1) lot=0.1;
//   lot=1;
   return(lot);
  }  
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   double Laguerre;
   double Alpha;
   double MA, MAprevious;
   
//+--   double Juice;
   int cnt, ticket, total;
  
  Laguerre=iCustom(NULL, 0, "Laguerre", 0, 0);
  Alpha=iCCI(NULL, 0, 14, PRICE_CLOSE, 0);
  MA=iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_MEDIAN,0);
  MAprevious=iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_MEDIAN,1);
//+--  Juice=iCustom(NULL,0,"Juice",0,0);

   total=OrdersTotal();  
   bool est_s=true;
   bool est_b=true;
   for(cnt=0;cnt<total;cnt++)
     {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       if((OrderType()==OP_SELL) && (OrderSymbol()==Symbol())) est_s=false;
       if((OrderType()==OP_BUY) && (OrderSymbol()==Symbol())) est_b=false;
     }
//   if(total<1) 
     {
      // no opened orders identified
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      // check for long position (BUY) possibility
      if((Laguerre<=0) && (MA>MAprevious) && (Alpha<-5) && est_b) //+-- && Juice>JuiceLevel)
        {
        ticket=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"starter",16384,0,Green);
        }
      // check for short position (SELL) possibility
      if((Laguerre>=1) && (MA<MAprevious) && (Alpha>5) && est_s) //+-- && Juice>JuiceLevel)
        {
         ticket=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"starter",16384,0,Red);
        } 
     }
// it is important to enter the market correctly, 
   // but it is more important to exit it correctly...   
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // should it be closed?
            if(Laguerre>0.9)
                {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
                 return(0); // exit
                }
            // check for stop
            if(Stop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*Stop)
                 {
                   OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
                   return(0);
                 }
              }
           }
         else // go to short position
           {
            // should it be closed?
            if(Laguerre<0.1)
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
               return(0); // exit
              }
            // check for stop
            if(Stop>0)  
              {                 
               if(OrderOpenPrice()-Ask>Point*Stop)
                 {
                   OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
                   return(0);
                 }
              }
           }
        }
     }
     
   return(0);
  }
// the end.

Profitability Reports

GBP/CAD Jul 2025 - Sep 2025
0.17
Total Trades 121
Won Trades 109
Lost trades 12
Win Rate 90.08 %
Expected payoff -5.33
Gross Profit 131.53
Gross Loss -775.93
Total Net Profit -644.40
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.25
Total Trades 144
Won Trades 131
Lost trades 13
Win Rate 90.97 %
Expected payoff -3.36
Gross Profit 160.26
Gross Loss -644.44
Total Net Profit -484.18
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.00
Total Trades 35
Won Trades 32
Lost trades 3
Win Rate 91.43 %
Expected payoff -3014.60
Gross Profit 47.00
Gross Loss -105558.00
Total Net Profit -105511.00
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.31
Total Trades 108
Won Trades 94
Lost trades 14
Win Rate 87.04 %
Expected payoff -3.11
Gross Profit 153.80
Gross Loss -489.50
Total Net Profit -335.70
-100%
-50%
0%
50%
100%
USD/JPY Jan 2025 - Jul 2025
0.22
Total Trades 580
Won Trades 546
Lost trades 34
Win Rate 94.14 %
Expected payoff -3.81
Gross Profit 629.69
Gross Loss -2839.51
Total Net Profit -2209.82
-100%
-50%
0%
50%
100%
USD/CHF Jan 2025 - Jul 2025
0.59
Total Trades 348
Won Trades 323
Lost trades 25
Win Rate 92.82 %
Expected payoff -1.41
Gross Profit 701.23
Gross Loss -1190.45
Total Net Profit -489.22
-100%
-50%
0%
50%
100%
USD/CAD Jan 2025 - Jul 2025
0.25
Total Trades 415
Won Trades 388
Lost trades 27
Win Rate 93.49 %
Expected payoff -2.63
Gross Profit 366.42
Gross Loss -1459.51
Total Net Profit -1093.09
-100%
-50%
0%
50%
100%
NZD/USD Jan 2025 - Jul 2025
0.25
Total Trades 304
Won Trades 276
Lost trades 28
Win Rate 90.79 %
Expected payoff -4.01
Gross Profit 402.10
Gross Loss -1621.00
Total Net Profit -1218.90
-100%
-50%
0%
50%
100%
GBP/USD Jan 2025 - Jul 2025
0.17
Total Trades 350
Won Trades 321
Lost trades 29
Win Rate 91.71 %
Expected payoff -6.30
Gross Profit 446.80
Gross Loss -2652.90
Total Net Profit -2206.10
-100%
-50%
0%
50%
100%
GBP/CAD Jan 2025 - Jul 2025
0.28
Total Trades 481
Won Trades 454
Lost trades 27
Win Rate 94.39 %
Expected payoff -2.62
Gross Profit 483.12
Gross Loss -1742.44
Total Net Profit -1259.32
-100%
-50%
0%
50%
100%

Comments