Author: Ron Thompson
Profit factor:
0.58

This script is designed to automatically trade on the Forex market using the MetaTrader platform. It looks at the price fluctuations of a currency pair and tries to make profitable trades based on a specific indicator. Here's the breakdown:

  1. Initial Setup: The script starts by defining some settings that the user can adjust. These settings include:

    • Lots: The amount of currency to trade in each transaction. Think of it as the size of the bet.
    • TakeProfit: The amount of profit, in points, the script aims to make on each trade. When the price reaches this level, the trade is automatically closed, securing the profit.
    • StopLoss: The maximum amount of loss, in points, the script is willing to accept on each trade. If the price moves against the trade and hits this level, the trade is automatically closed to limit losses.
    • Interval: a bar (period) counter to increment order count.
    • myCCI: this variable is the period length for the CCI indicator.
  2. Checking Conditions Before Trading: Before placing any trades, the script performs some checks:

    • Sufficient Funds: It verifies that the trading account has enough available money to cover the potential cost of the trade.
    • Sufficient Data: It ensures that there is enough historical price data available to make informed decisions.
    • Bar Movement: It determines if the price has moved since the last time the script checked, to avoid redundant calculations.
  3. Calculating Profit and Loss Levels: The script calculates the TakeProfit and StopLoss price levels based on the current market price and the user-defined settings. These levels determine when a trade will be automatically closed for profit or to prevent further losses.

  4. CCI Indicator: The script employs the Commodity Channel Index (CCI) indicator, which is a tool used to identify overbought or oversold conditions in the market. In this code, CCI is used to find crossing points.

  5. Making Trading Decisions Based on Indicator Crossings: This is the heart of the script's logic. It looks for points where the CCI crosses above or below zero.

    • Rising Cross: When the CCI crosses above zero, it's interpreted as a potential buy signal.
    • Falling Cross: When the CCI crosses below zero, it's interpreted as a potential sell signal.
  6. Opening and Closing Trades:

    • Closing Existing Orders: When a CCI cross occurs, the script first closes any existing open trades for that currency pair.
    • Opening New Orders: Based on whether the cross is rising or falling, the script opens a new buy or sell order, respectively. It also sets the TakeProfit and StopLoss levels for the new trade.
  7. Pyramiding

    • Pyramiding: If the current order is already open, more orders are created after some price intervals. This creates layers of new orders when the trend is already in place.

In essence, this script is a simple automated trading system that uses the CCI indicator to identify potential buying and selling opportunities, automatically opening and closing trades based on pre-defined rules and risk management settings.

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
zzz006
/*-----------------------------+
|			       |
| 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=28;


// 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;
      return(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

AUD/USD Jan 2025 - Jul 2025
1.20
Total Trades 380
Won Trades 225
Lost trades 155
Win Rate 59.21 %
Expected payoff 0.90
Gross Profit 2032.60
Gross Loss -1689.90
Total Net Profit 342.70
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
1.07
Total Trades 205
Won Trades 125
Lost trades 80
Win Rate 60.98 %
Expected payoff 0.26
Gross Profit 785.84
Gross Loss -733.06
Total Net Profit 52.78
-100%
-50%
0%
50%
100%
USD/CAD Oct 2024 - Jan 2025
1.02
Total Trades 212
Won Trades 131
Lost trades 81
Win Rate 61.79 %
Expected payoff 0.09
Gross Profit 829.84
Gross Loss -811.42
Total Net Profit 18.42
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
1.01
Total Trades 217
Won Trades 115
Lost trades 102
Win Rate 53.00 %
Expected payoff 0.06
Gross Profit 1017.20
Gross Loss -1004.30
Total Net Profit 12.90
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.99
Total Trades 199
Won Trades 107
Lost trades 92
Win Rate 53.77 %
Expected payoff -0.06
Gross Profit 1193.02
Gross Loss -1204.40
Total Net Profit -11.38
-100%
-50%
0%
50%
100%
USD/JPY Jan 2025 - Jul 2025
0.95
Total Trades 314
Won Trades 223
Lost trades 91
Win Rate 71.02 %
Expected payoff -0.25
Gross Profit 1381.34
Gross Loss -1458.65
Total Net Profit -77.31
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.78
Total Trades 654
Won Trades 318
Lost trades 336
Win Rate 48.62 %
Expected payoff -1.01
Gross Profit 2350.60
Gross Loss -3008.30
Total Net Profit -657.70
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.76
Total Trades 614
Won Trades 327
Lost trades 287
Win Rate 53.26 %
Expected payoff -1.73
Gross Profit 3340.78
Gross Loss -4403.10
Total Net Profit -1062.32
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
0.75
Total Trades 419
Won Trades 218
Lost trades 201
Win Rate 52.03 %
Expected payoff -1.48
Gross Profit 1907.20
Gross Loss -2527.00
Total Net Profit -619.80
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
0.73
Total Trades 618
Won Trades 328
Lost trades 290
Win Rate 53.07 %
Expected payoff -1.49
Gross Profit 2488.50
Gross Loss -3408.80
Total Net Profit -920.30
-100%
-50%
0%
50%
100%
USD/JPY Jul 2025 - Sep 2025
0.71
Total Trades 368
Won Trades 208
Lost trades 160
Win Rate 56.52 %
Expected payoff -1.41
Gross Profit 1267.48
Gross Loss -1786.62
Total Net Profit -519.14
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
0.69
Total Trades 220
Won Trades 133
Lost trades 87
Win Rate 60.45 %
Expected payoff -2.38
Gross Profit 1161.90
Gross Loss -1685.70
Total Net Profit -523.80
-100%
-50%
0%
50%
100%
USD/CHF Jan 2025 - Jul 2025
0.64
Total Trades 464
Won Trades 247
Lost trades 217
Win Rate 53.23 %
Expected payoff -3.16
Gross Profit 2569.81
Gross Loss -4037.38
Total Net Profit -1467.57
-100%
-50%
0%
50%
100%
AUD/USD Oct 2024 - Jan 2025
0.63
Total Trades 234
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -2.80
Gross Profit 1138.20
Gross Loss -1792.90
Total Net Profit -654.70
-100%
-50%
0%
50%
100%
GBP/USD Jan 2025 - Jul 2025
0.63
Total Trades 378
Won Trades 218
Lost trades 160
Win Rate 57.67 %
Expected payoff -3.08
Gross Profit 1978.00
Gross Loss -3144.00
Total Net Profit -1166.00
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
0.63
Total Trades 176
Won Trades 98
Lost trades 78
Win Rate 55.68 %
Expected payoff -2.96
Gross Profit 874.60
Gross Loss -1396.20
Total Net Profit -521.60
-100%
-50%
0%
50%
100%
USD/CAD Jan 2025 - Jul 2025
0.58
Total Trades 440
Won Trades 257
Lost trades 183
Win Rate 58.41 %
Expected payoff -2.68
Gross Profit 1658.37
Gross Loss -2836.56
Total Net Profit -1178.19
-100%
-50%
0%
50%
100%
GBP/CAD Oct 2024 - Jan 2025
0.57
Total Trades 191
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -3.12
Gross Profit 784.90
Gross Loss -1380.56
Total Net Profit -595.66
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.57
Total Trades 601
Won Trades 299
Lost trades 302
Win Rate 49.75 %
Expected payoff -2.18
Gross Profit 1740.43
Gross Loss -3052.16
Total Net Profit -1311.73
-100%
-50%
0%
50%
100%
NZD/USD Jan 2025 - Jul 2025
0.56
Total Trades 517
Won Trades 264
Lost trades 253
Win Rate 51.06 %
Expected payoff -3.57
Gross Profit 2327.70
Gross Loss -4172.50
Total Net Profit -1844.80
-100%
-50%
0%
50%
100%
GBP/AUD Jan 2025 - Jul 2025
0.47
Total Trades 393
Won Trades 239
Lost trades 154
Win Rate 60.81 %
Expected payoff -4.08
Gross Profit 1436.24
Gross Loss -3040.15
Total Net Profit -1603.91
-100%
-50%
0%
50%
100%
GBP/CAD Jan 2025 - Jul 2025
0.45
Total Trades 391
Won Trades 213
Lost trades 178
Win Rate 54.48 %
Expected payoff -4.34
Gross Profit 1411.85
Gross Loss -3110.49
Total Net Profit -1698.64
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.34
Total Trades 198
Won Trades 112
Lost trades 86
Win Rate 56.57 %
Expected payoff -6.72
Gross Profit 679.80
Gross Loss -2011.16
Total Net Profit -1331.36
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.31
Total Trades 208
Won Trades 112
Lost trades 96
Win Rate 53.85 %
Expected payoff -7.71
Gross Profit 731.25
Gross Loss -2335.87
Total Net Profit -1604.62
-100%
-50%
0%
50%
100%
USD/JPY Jul 2025 - Sep 2025
0.29
Total Trades 193
Won Trades 108
Lost trades 85
Win Rate 55.96 %
Expected payoff -8.74
Gross Profit 675.28
Gross Loss -2362.29
Total Net Profit -1687.01
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.27
Total Trades 597
Won Trades 266
Lost trades 331
Win Rate 44.56 %
Expected payoff -6.93
Gross Profit 1558.36
Gross Loss -5694.76
Total Net Profit -4136.40
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.26
Total Trades 321
Won Trades 121
Lost trades 200
Win Rate 37.69 %
Expected payoff -8.80
Gross Profit 1015.40
Gross Loss -3840.40
Total Net Profit -2825.00
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.19
Total Trades 712
Won Trades 254
Lost trades 458
Win Rate 35.67 %
Expected payoff -9.25
Gross Profit 1573.51
Gross Loss -8161.13
Total Net Profit -6587.62
-100%
-50%
0%
50%
100%
EUR/USD Jan 2025 - Jul 2025
0.01
Total Trades 123
Won Trades 77
Lost trades 46
Win Rate 62.60 %
Expected payoff -790.43
Gross Profit 686.80
Gross Loss -97909.70
Total Net Profit -97222.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.41
Gross Profit 101.20
Gross Loss -105600.20
Total Net Profit -105499.00
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.00
Total Trades 56
Won Trades 35
Lost trades 21
Win Rate 62.50 %
Expected payoff -1880.21
Gross Profit 296.20
Gross Loss -105587.90
Total Net Profit -105291.70
-100%
-50%
0%
50%
100%

Comments