Author: Ron Thompson
Profit factor:
0.59

Okay, here's a breakdown of what this MetaTrader script does, explained in a way that doesn't require any programming knowledge.

In Simple Terms:

This script is designed to automatically trade on the Forex market based on a specific strategy. It's like a robot trader that follows a set of rules to decide when to buy or sell a currency pair.

Here's the breakdown of how it works:

  1. Settings You Control:

    • Lots: This determines the size of each trade the script makes. A larger "Lots" value means the script will trade a larger amount of currency, which can lead to bigger profits or bigger losses.
    • TakeProfit: This is the target profit, expressed in 'points', for each trade. When the trade reaches this profit level, the script will automatically close the trade and secure the profit.
    • StopLoss: This is the level of acceptable loss, also in 'points'. If a trade starts losing money and reaches this level, the script will automatically close the trade to prevent further losses. Setting this to zero means the script will never automatically close a losing trade.
    • Interval: This controls how often the script will add to an existing winning trade. The higher this number, the longer it will wait before adding to the trade.
    • myCCI: This setting determines the period (number of past data points) used for calculating a technical indicator called the Commodity Channel Index (CCI). CCI is a tool used to identify overbought or oversold conditions in the market.
  2. What the Script Monitors:

    • Price Fluctuations: The script continuously monitors the price of the currency pair.
    • CCI Indicator: The script calculates the CCI to help determine if the currency pair is potentially overbought (likely to go down) or oversold (likely to go up).
  3. Decision Making:

    • CCI Crossing: The main trigger for the script to take action is when the CCI line crosses above or below the zero line. Crossing above zero is considered a "buy" signal, while crossing below is a "sell" signal.
    • Closing Existing Trades: When the CCI crosses the zero line (giving a new buy or sell signal), the script first closes any existing open trades for that currency pair.
    • Opening New Trades: After closing any existing trades, the script opens a new trade in the direction indicated by the CCI crossing. If the CCI crossed above zero, it opens a "buy" trade; if it crossed below zero, it opens a "sell" trade. It uses the specified "Lots" size and sets the "TakeProfit" and "StopLoss" levels.
    • Adding to Winning Trades (Pyramiding): If there's already an open trade and enough time has passed ("Interval" setting), the script will open another trade in the same direction. This is called "pyramiding" and it aims to increase profits if the trend continues.
  4. Safety Checks:

    • Account Balance: The script checks if there's enough money in the trading account to place a trade of the specified "Lots" size. If not, it stops trading.
    • Sufficient Data: The script ensures there's enough historical price data available before it starts making decisions.

In summary, this script watches the price of a currency pair, calculates the CCI indicator, and opens/closes trades based on CCI crossing zero. It also uses TakeProfit and StopLoss levels to manage risk and can pyramid into winning trades based on the specified interval.

Price Data Components
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Indicators Used
Commodity channel index
16 Views
0 Downloads
0 Favorites
zzz005
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------------------------------+
//| 1MA Expert                               |
//+------------------------------------------------------------------+
#property copyright "Ron Thompson"
#property link      "http://www.lightpatch.com/forex"

// User Input
extern double Lots = 0.1;
extern int    TakeProfit=92;
extern int    StopLoss=0;
extern int    Interval=4;
extern int       myCCI=30;


// Global scope
double barmove0 = 0;
double barmove1 = 0;
int         itv = 0;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//|------------------------------------------------------------------|

int init()
  {
   itv=Interval;
   return(0);
  }


//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }


//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int start()
  {

   bool      found=false;
   bool     rising=false;
   bool    falling=false;
   bool      cross=false;

   double slA=0, slB=0, tpA=0, tpB=0;
   double p=Point();
   
   double cCI0;
   double cCI1;
   
   int      cnt=0;

   // Error checking
   if(AccountFreeMargin()<(1000*Lots))        {Print("-----NO MONEY"); return(0);}
   if(Bars<100)                               {Print("-----NO BARS "); return(0);}
   if(barmove0==Open[0] && barmove1==Open[1]) {                        return(0);}

   // bars moved, update current position
   barmove0=Open[0];
   barmove1=Open[1];

   // interval (bar) counter
   // used to pyramid orders during trend
   itv++;
   
   // since the bar just moved
   // calculate TP and SL for (B)id and (A)sk
   tpA=Ask+(p*TakeProfit);
   slA=Ask-(p*StopLoss);
   tpB=Bid-(p*TakeProfit);
   slB=Bid+(p*StopLoss);
   if (TakeProfit==0) {tpA=0; tpB=0;}           
   if (StopLoss==0)   {slA=0; slB=0;}           
   
   // get CCI based on OPEN
   cCI0=iCCI(Symbol(),0,myCCI,PRICE_OPEN,0);
   cCI1=iCCI(Symbol(),0,myCCI,PRICE_OPEN,1);

   // is it crossing zero up or down
   if (cCI1<0 && cCI0>0) { rising=true; cross=true; Print("Rising  Cross");}
   if (cCI1>0 && cCI0<0) {falling=true; cross=true; Print("Falling Cross");}
   
   // close then open orders based on cross
   // pyramid below based on itv
   if (cross)
     {
      // Close ALL the open orders 
      for(cnt=0;cnt<OrdersTotal();cnt++)
        {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         if(OrderSymbol()==Symbol())
           {
            if (OrderType()==0) {OrderClose(OrderTicket(),Lots,Bid,3,White);}
            if (OrderType()==1) {OrderClose(OrderTicket(),Lots,Ask,3,Red);}
            itv=0;
           }
        }
      // Open new order based on direction of cross
      if (rising)  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,slA,tpA,"ZZZ100",11123,0,White);
      if (falling) OrderSend(Symbol(),OP_SELL,Lots,Bid,3,slB,tpB,"ZZZ100",11321,0,Red);
      
      // clear the interval counter
      itv=0;
     }
   
   // Only pyramid if order already open
   found=false;
   for(cnt=0;cnt<OrdersTotal();cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderSymbol()==Symbol())
        {
         if (OrderType()==0)  //BUY
           {
            if (itv >= Interval)
              {
               OrderSend(Symbol(),OP_BUY,Lots,Ask,3,slA,tpA,"ZZZ100",11123,0,White);
               itv=0;
              }
           }
         if (OrderType()==1)  //SELL
           {
            if (itv >= Interval)
              {
               OrderSend(Symbol(),OP_SELL,Lots,Bid,3,slB,tpB,"ZZZ100",11321,0,Red);
               itv=0;
              }
           }
         found=true;
         break;
        }
     }
   return(0);
  }

Profitability Reports

USD/CAD Oct 2024 - Jan 2025
1.18
Total Trades 176
Won Trades 111
Lost trades 65
Win Rate 63.07 %
Expected payoff 0.60
Gross Profit 697.28
Gross Loss -592.51
Total Net Profit 104.77
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.89
Total Trades 204
Won Trades 121
Lost trades 83
Win Rate 59.31 %
Expected payoff -0.48
Gross Profit 773.49
Gross Loss -870.49
Total Net Profit -97.00
-100%
-50%
0%
50%
100%
USD/JPY Jan 2025 - Jul 2025
0.86
Total Trades 291
Won Trades 206
Lost trades 85
Win Rate 70.79 %
Expected payoff -0.72
Gross Profit 1276.27
Gross Loss -1486.57
Total Net Profit -210.30
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.86
Total Trades 620
Won Trades 303
Lost trades 317
Win Rate 48.87 %
Expected payoff -0.62
Gross Profit 2290.10
Gross Loss -2675.80
Total Net Profit -385.70
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
0.84
Total Trades 293
Won Trades 163
Lost trades 130
Win Rate 55.63 %
Expected payoff -0.88
Gross Profit 1357.50
Gross Loss -1614.30
Total Net Profit -256.80
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.84
Total Trades 547
Won Trades 293
Lost trades 254
Win Rate 53.56 %
Expected payoff -1.01
Gross Profit 3016.62
Gross Loss -3571.66
Total Net Profit -555.04
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.80
Total Trades 225
Won Trades 132
Lost trades 93
Win Rate 58.67 %
Expected payoff -1.17
Gross Profit 1078.50
Gross Loss -1342.00
Total Net Profit -263.50
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
0.79
Total Trades 600
Won Trades 323
Lost trades 277
Win Rate 53.83 %
Expected payoff -1.10
Gross Profit 2515.20
Gross Loss -3172.50
Total Net Profit -657.30
-100%
-50%
0%
50%
100%
NZD/USD Jan 2025 - Jul 2025
0.74
Total Trades 459
Won Trades 253
Lost trades 206
Win Rate 55.12 %
Expected payoff -1.76
Gross Profit 2255.20
Gross Loss -3062.80
Total Net Profit -807.60
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
0.73
Total Trades 204
Won Trades 127
Lost trades 77
Win Rate 62.25 %
Expected payoff -2.05
Gross Profit 1117.40
Gross Loss -1534.80
Total Net Profit -417.40
-100%
-50%
0%
50%
100%
USD/CHF Jan 2025 - Jul 2025
0.72
Total Trades 421
Won Trades 238
Lost trades 183
Win Rate 56.53 %
Expected payoff -2.24
Gross Profit 2479.42
Gross Loss -3423.86
Total Net Profit -944.44
-100%
-50%
0%
50%
100%
USD/JPY Jul 2025 - Sep 2025
0.70
Total Trades 359
Won Trades 198
Lost trades 161
Win Rate 55.15 %
Expected payoff -1.44
Gross Profit 1209.12
Gross Loss -1726.71
Total Net Profit -517.59
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.69
Total Trades 267
Won Trades 154
Lost trades 113
Win Rate 57.68 %
Expected payoff -2.84
Gross Profit 1690.33
Gross Loss -2448.83
Total Net Profit -758.50
-100%
-50%
0%
50%
100%
USD/JPY Jul 2025 - Sep 2025
0.68
Total Trades 131
Won Trades 79
Lost trades 52
Win Rate 60.31 %
Expected payoff -1.80
Gross Profit 494.46
Gross Loss -730.62
Total Net Profit -236.16
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
0.67
Total Trades 164
Won Trades 98
Lost trades 66
Win Rate 59.76 %
Expected payoff -2.69
Gross Profit 887.60
Gross Loss -1329.10
Total Net Profit -441.50
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.66
Total Trades 596
Won Trades 314
Lost trades 282
Win Rate 52.68 %
Expected payoff -1.59
Gross Profit 1863.93
Gross Loss -2814.19
Total Net Profit -950.26
-100%
-50%
0%
50%
100%
USD/CAD Jan 2025 - Jul 2025
0.64
Total Trades 435
Won Trades 263
Lost trades 172
Win Rate 60.46 %
Expected payoff -2.20
Gross Profit 1701.69
Gross Loss -2660.29
Total Net Profit -958.60
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
0.62
Total Trades 447
Won Trades 249
Lost trades 198
Win Rate 55.70 %
Expected payoff -3.03
Gross Profit 2174.80
Gross Loss -3527.70
Total Net Profit -1352.90
-100%
-50%
0%
50%
100%
AUD/USD Oct 2024 - Jan 2025
0.59
Total Trades 211
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -3.24
Gross Profit 987.90
Gross Loss -1671.40
Total Net Profit -683.50
-100%
-50%
0%
50%
100%
GBP/USD Jan 2025 - Jul 2025
0.59
Total Trades 363
Won Trades 210
Lost trades 153
Win Rate 57.85 %
Expected payoff -3.66
Gross Profit 1914.00
Gross Loss -3241.10
Total Net Profit -1327.10
-100%
-50%
0%
50%
100%
GBP/CAD Oct 2024 - Jan 2025
0.51
Total Trades 174
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -3.67
Gross Profit 665.83
Gross Loss -1304.82
Total Net Profit -638.99
-100%
-50%
0%
50%
100%
GBP/CAD Jan 2025 - Jul 2025
0.51
Total Trades 354
Won Trades 203
Lost trades 151
Win Rate 57.34 %
Expected payoff -3.69
Gross Profit 1344.80
Gross Loss -2652.45
Total Net Profit -1307.65
-100%
-50%
0%
50%
100%
GBP/AUD Jan 2025 - Jul 2025
0.47
Total Trades 352
Won Trades 227
Lost trades 125
Win Rate 64.49 %
Expected payoff -4.51
Gross Profit 1391.29
Gross Loss -2980.15
Total Net Profit -1588.86
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.47
Total Trades 170
Won Trades 96
Lost trades 74
Win Rate 56.47 %
Expected payoff -3.93
Gross Profit 582.91
Gross Loss -1250.46
Total Net Profit -667.55
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.44
Total Trades 188
Won Trades 103
Lost trades 85
Win Rate 54.79 %
Expected payoff -4.61
Gross Profit 679.38
Gross Loss -1545.82
Total Net Profit -866.44
-100%
-50%
0%
50%
100%
AUD/USD Jan 2025 - Jul 2025
0.42
Total Trades 582
Won Trades 276
Lost trades 306
Win Rate 47.42 %
Expected payoff -5.79
Gross Profit 2397.20
Gross Loss -5768.80
Total Net Profit -3371.60
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.26
Total Trades 610
Won Trades 270
Lost trades 340
Win Rate 44.26 %
Expected payoff -7.32
Gross Profit 1583.76
Gross Loss -6047.68
Total Net Profit -4463.92
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.20
Total Trades 717
Won Trades 265
Lost trades 452
Win Rate 36.96 %
Expected payoff -9.01
Gross Profit 1648.44
Gross Loss -8112.17
Total Net Profit -6463.73
-100%
-50%
0%
50%
100%
EUR/USD Jan 2025 - Jul 2025
0.01
Total Trades 116
Won Trades 69
Lost trades 47
Win Rate 59.48 %
Expected payoff -837.46
Gross Profit 627.00
Gross Loss -97772.30
Total Net Profit -97145.30
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.00
Total Trades 22
Won Trades 12
Lost trades 10
Win Rate 54.55 %
Expected payoff -4794.25
Gross Profit 110.40
Gross Loss -105583.80
Total Net Profit -105473.40
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.00
Total Trades 41
Won Trades 24
Lost trades 17
Win Rate 58.54 %
Expected payoff -2567.96
Gross Profit 201.10
Gross Loss -105487.60
Total Net Profit -105286.50
-100%
-50%
0%
50%
100%

Comments