Author: Ron Thompson
Profit factor:
0.60

This script is designed to automatically trade in the Forex market using the MetaTrader platform. It's based on a strategy that uses a technical indicator called the Commodity Channel Index, or CCI, to identify potential buying and selling opportunities. Here?s a breakdown of how it works:

  1. Setup: The script starts by defining some user-adjustable settings. These include the amount of currency to trade per transaction ("Lots"), the profit target ("TakeProfit"), the acceptable loss level ("StopLoss"), and how frequently to add to a position ("Interval").

  2. Initialization: When the script starts, it sets the "Interval" variable based on user input.

  3. Trading Logic: The core of the script continuously checks for new trading opportunities with each new price movement.

    • Monitoring the CCI: The script watches the CCI, which is calculated based on the market's price. It specifically looks for instances when the CCI crosses the zero line. Crossing above zero is interpreted as a potential buy signal, and crossing below zero is seen as a potential sell signal.

    • Closing Existing Trades: When a CCI crossover occurs, the script first closes any existing trades for the currency pair it is monitoring. It closes all trades to start fresh.

    • Opening New Trades: After closing existing trades, the script opens a new trade based on the direction of the CCI crossover. If the CCI crossed above zero, it opens a buy order. If the CCI crossed below zero, it opens a sell order. These trades are automatically set with a target profit and a stop-loss level, based on the user-defined settings.

    • Adding to Winning Trades (Pyramiding): The script also has a feature to add to existing winning trades. If a trade is already open, it will wait for a specified number of price movements (defined by the "Interval" setting). If the price continues to move in a favorable direction, the script will open another trade in the same direction, thereby increasing the size of the position. It will reset the timer when it opens another trade.

  4. Risk Management: The script also includes some basic risk management features. It checks if there is enough money in the account to place a trade. If the account has insufficient funds, the script will stop trading and display a message.

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
14 Views
0 Downloads
0 Favorites
zzz004b
/*-----------------------------+
|			       |
| 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;


// 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,30,PRICE_OPEN,0);
   cCI1=iCCI(Symbol(),0,30,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/JPY Jan 2025 - Jul 2025
0.93
Total Trades 290
Won Trades 206
Lost trades 84
Win Rate 71.03 %
Expected payoff -0.36
Gross Profit 1276.73
Gross Loss -1380.23
Total Net Profit -103.50
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.88
Total Trades 204
Won Trades 121
Lost trades 83
Win Rate 59.31 %
Expected payoff -0.53
Gross Profit 768.89
Gross Loss -876.57
Total Net Profit -107.68
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
0.84
Total Trades 278
Won Trades 153
Lost trades 125
Win Rate 55.04 %
Expected payoff -0.91
Gross Profit 1285.70
Gross Loss -1539.00
Total Net Profit -253.30
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.84
Total Trades 620
Won Trades 302
Lost trades 318
Win Rate 48.71 %
Expected payoff -0.69
Gross Profit 2281.90
Gross Loss -2707.60
Total Net Profit -425.70
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.83
Total Trades 550
Won Trades 292
Lost trades 258
Win Rate 53.09 %
Expected payoff -1.11
Gross Profit 3025.94
Gross Loss -3637.01
Total Net Profit -611.07
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.81
Total Trades 225
Won Trades 133
Lost trades 92
Win Rate 59.11 %
Expected payoff -1.12
Gross Profit 1081.20
Gross Loss -1332.70
Total Net Profit -251.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 254
Lost trades 205
Win Rate 55.34 %
Expected payoff -1.71
Gross Profit 2256.40
Gross Loss -3042.20
Total Net Profit -785.80
-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.73
Total Trades 421
Won Trades 238
Lost trades 183
Win Rate 56.53 %
Expected payoff -2.19
Gross Profit 2480.37
Gross Loss -3402.62
Total Net Profit -922.25
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.71
Total Trades 232
Won Trades 127
Lost trades 105
Win Rate 54.74 %
Expected payoff -2.45
Gross Profit 1390.47
Gross Loss -1959.74
Total Net Profit -569.27
-100%
-50%
0%
50%
100%
USD/JPY Jul 2025 - Sep 2025
0.70
Total Trades 131
Won Trades 80
Lost trades 51
Win Rate 61.07 %
Expected payoff -1.64
Gross Profit 500.69
Gross Loss -715.94
Total Net Profit -215.25
-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%
GBP/USD Jul 2025 - Sep 2025
0.68
Total Trades 164
Won Trades 99
Lost trades 65
Win Rate 60.37 %
Expected payoff -2.57
Gross Profit 897.00
Gross Loss -1318.40
Total Net Profit -421.40
-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 426
Won Trades 260
Lost trades 166
Win Rate 61.03 %
Expected payoff -2.18
Gross Profit 1676.95
Gross Loss -2605.43
Total Net Profit -928.48
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
0.63
Total Trades 429
Won Trades 237
Lost trades 192
Win Rate 55.24 %
Expected payoff -2.92
Gross Profit 2097.30
Gross Loss -3348.80
Total Net Profit -1251.50
-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.64
Gross Profit 665.91
Gross Loss -1299.47
Total Net Profit -633.56
-100%
-50%
0%
50%
100%
GBP/CAD Jan 2025 - Jul 2025
0.50
Total Trades 354
Won Trades 202
Lost trades 152
Win Rate 57.06 %
Expected payoff -3.77
Gross Profit 1337.99
Gross Loss -2673.74
Total Net Profit -1335.75
-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.23
Gross Loss -2980.10
Total Net Profit -1588.87
-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.86
Gross Loss -1250.47
Total Net Profit -667.61
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.45
Total Trades 187
Won Trades 103
Lost trades 84
Win Rate 55.08 %
Expected payoff -4.43
Gross Profit 685.26
Gross Loss -1514.12
Total Net Profit -828.86
-100%
-50%
0%
50%
100%
AUD/USD Jan 2025 - Jul 2025
0.43
Total Trades 579
Won Trades 277
Lost trades 302
Win Rate 47.84 %
Expected payoff -5.54
Gross Profit 2409.70
Gross Loss -5614.90
Total Net Profit -3205.20
-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.54
Gross Profit 626.80
Gross Loss -97781.70
Total Net Profit -97154.90
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.00
Total Trades 22
Won Trades 11
Lost trades 11
Win Rate 50.00 %
Expected payoff -4795.13
Gross Profit 101.20
Gross Loss -105594.10
Total Net Profit -105492.90
-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.91
Gross Profit 201.40
Gross Loss -105485.90
Total Net Profit -105284.50
-100%
-50%
0%
50%
100%

Comments