breadandbutter

Download script
Author: Ron Thompson
Profit factor:
3.76

This automated trading script is designed to execute trades on the 4-hour chart by monitoring the relationship between three specific Exponential Moving Averages (EMAs). The logic focuses on identifying momentum shifts and trend reversals through "crossovers"—the points where these moving averages intersect.

Core Trading Logic

The system identifies entry opportunities by watching how shorter-term price trends interact with a long-term baseline. Specifically, it monitors a fast-moving average (15 periods) and a slow-moving average (100 periods).

Entry Conditions:

  • Buy Signal: A new "Buy" position is opened when the short-term moving average crosses from below to above the long-term 100-period moving average. This indicates that upward momentum is becoming stronger than the long-term trend.
  • Sell Signal: A new "Sell" position is opened when the short-term moving average crosses from above to below the long-term 100-period moving average. This indicates that downward momentum is taking over the long-term trend.

Trade Management and Execution

The script includes automated protocols to manage active trades and ensure capital safety:

  • Automated Order Handling: Whenever a crossover occurs, the script first identifies any existing open positions for the current currency pair. It automatically closes these previous positions before opening a new one in the direction of the latest signal. This ensures that the system is always aligned with the most recent trend.
  • Risk Parameters: The script allows for the manual configuration of trade volume (Lots), as well as specific "Take Profit" and "Stop Loss" levels. These act as safety nets to automatically secure profits or limit potential losses at predetermined price points.
  • Safety Checks: Before attempting to execute any trades, the system performs two vital checks:
    1. Margin Check: It verifies that the account has sufficient available funds to cover the required trade volume.
    2. Data Verification: It ensures there is enough historical price data (at least 100 bars) available on the chart to perform the necessary calculations accurately.
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
Moving average indicator
14 Views
1 Downloads
0 Favorites
breadandbutter
/*-----------------------------+
|			       |
| Shared by www.Aptrafx.com    |
|			       |
+------------------------------*/

//+------------------------------------------+
//| 3MA Expert
//+------------------------------------------+


/*

Ok its on a 4 hr chart, 
3 emas 100, 15, 2

Enter a position when emaF and emaS 
both cross through the 100ema (thats it!!)

ok the exit, i feel this needs a little work, 
but at the moment it is as follows

Exit half your position when 2ema cross through 15ema, 
close all of your positon when emaF crosses back through emaS.

*/



#property copyright "Ron Thompson"
#property link      "http://www.lightpatch.com/forex"

// User Input
extern double        Lots = 1.0 ;
extern int     TakeProfit = 0   ;
extern int       StopLoss = 0   ;

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


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

int init()
  {
   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 emaF, emaM, emaS;
   double PemaF, PemaM, PemaS;
   
   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];

   // 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;}           
   

   // Hourly chart
   // 3 WMA's 5/10/15
   // ADX (14)
   
   emaM= iMA(Symbol(),PERIOD_H4, 15,0,PRICE_OPEN,MODE_EMA,0);
   emaS= iMA(Symbol(),PERIOD_H4,100,0,PRICE_OPEN,MODE_EMA,0);
   
   PemaM=iMA(Symbol(),PERIOD_H4, 15,0,PRICE_OPEN,MODE_EMA,1);
   PemaS=iMA(Symbol(),PERIOD_H4,100,0,PRICE_OPEN,MODE_EMA,1);
   
   if (PemaM<emaS && emaM>emaS) { rising=true;  cross=true; Print("p=",PemaM," c=",emaM," s=",emaS);}
   if (PemaM>emaS && emaM<emaS) { falling=true; cross=true; Print("p=",PemaM," c=",emaM," s=",emaS);}

   // close then open orders based on cross
   if (cross)
     {
      // Close ALL the open orders 
      for(cnt=OrdersTotal();cnt>=0;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);}
           }
        }
      // 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);

      return(0);
     }
     
   return(0);
  }


Profitability Reports

PERFORMANCE BY SYMBOL

Expected payoff

Average expected payoff across the available backtests for each symbol.

Positive Negative
33 reports
USD/CAD Oct 2024 - Jan 2025
83.17
Total Trades 4
Won Trades 1
Lost trades 3
Win Rate 25.00 %
Expected payoff 1394.35
Gross Profit 5645.27
Gross Loss -67.88
Total Net Profit 5577.39
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
20.42
Total Trades 8
Won Trades 2
Lost trades 6
Win Rate 25.00 %
Expected payoff 682.25
Gross Profit 5739.00
Gross Loss -281.00
Total Net Profit 5458.00
-100%
-50%
0%
50%
100%
AUD/USD Oct 2025 - Feb 2026
4.77
Total Trades 32
Won Trades 9
Lost trades 23
Win Rate 28.13 %
Expected payoff 126.78
Gross Profit 5133.00
Gross Loss -1076.00
Total Net Profit 4057.00
-100%
-50%
0%
50%
100%
USD/CHF Jan 2025 - Jul 2025
2.82
Total Trades 32
Won Trades 12
Lost trades 20
Win Rate 37.50 %
Expected payoff 269.22
Gross Profit 13337.98
Gross Loss -4722.93
Total Net Profit 8615.05
-100%
-50%
0%
50%
100%
GBP/AUD Oct 2025 - Feb 2026
1.58
Total Trades 75
Won Trades 22
Lost trades 53
Win Rate 29.33 %
Expected payoff 48.59
Gross Profit 9886.69
Gross Loss -6242.38
Total Net Profit 3644.31
-100%
-50%
0%
50%
100%
EUR/USD Jan 2025 - Jul 2025
1.50
Total Trades 52
Won Trades 14
Lost trades 38
Win Rate 26.92 %
Expected payoff 83.65
Gross Profit 13123.00
Gross Loss -8773.00
Total Net Profit 4350.00
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.89
Total Trades 20
Won Trades 8
Lost trades 12
Win Rate 40.00 %
Expected payoff -22.17
Gross Profit 3457.01
Gross Loss -3900.34
Total Net Profit -443.33
-100%
-50%
0%
50%
100%
GBP/AUD Jul 2025 - Sep 2025
0.77
Total Trades 40
Won Trades 20
Lost trades 20
Win Rate 50.00 %
Expected payoff -25.56
Gross Profit 3464.03
Gross Loss -4486.51
Total Net Profit -1022.48
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.68
Total Trades 24
Won Trades 9
Lost trades 15
Win Rate 37.50 %
Expected payoff -26.08
Gross Profit 1301.00
Gross Loss -1927.00
Total Net Profit -626.00
-100%
-50%
0%
50%
100%
EUR/USD Oct 2025 - Feb 2026
0.63
Total Trades 128
Won Trades 46
Lost trades 82
Win Rate 35.94 %
Expected payoff -18.18
Gross Profit 3931.00
Gross Loss -6258.00
Total Net Profit -2327.00
-100%
-50%
0%
50%
100%
USD/CAD Jan 2025 - Jul 2025
0.62
Total Trades 48
Won Trades 12
Lost trades 36
Win Rate 25.00 %
Expected payoff -50.30
Gross Profit 3980.88
Gross Loss -6395.42
Total Net Profit -2414.54
-100%
-50%
0%
50%
100%
GBP/USD Jan 2025 - Jul 2025
0.60
Total Trades 52
Won Trades 17
Lost trades 35
Win Rate 32.69 %
Expected payoff -105.88
Gross Profit 8426.00
Gross Loss -13932.00
Total Net Profit -5506.00
-100%
-50%
0%
50%
100%
AUD/USD Jul 2025 - Sep 2025
0.60
Total Trades 48
Won Trades 18
Lost trades 30
Win Rate 37.50 %
Expected payoff -20.04
Gross Profit 1457.00
Gross Loss -2419.00
Total Net Profit -962.00
-100%
-50%
0%
50%
100%
USD/JPY Jan 2025 - Jul 2025
0.58
Total Trades 64
Won Trades 24
Lost trades 40
Win Rate 37.50 %
Expected payoff -92.12
Gross Profit 8070.11
Gross Loss -13965.74
Total Net Profit -5895.63
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.48
Total Trades 28
Won Trades 14
Lost trades 14
Win Rate 50.00 %
Expected payoff -67.17
Gross Profit 1749.25
Gross Loss -3629.94
Total Net Profit -1880.69
-100%
-50%
0%
50%
100%
GBP/CAD Jan 2025 - Jul 2025
0.47
Total Trades 64
Won Trades 10
Lost trades 54
Win Rate 15.63 %
Expected payoff -92.05
Gross Profit 5124.26
Gross Loss -11015.54
Total Net Profit -5891.28
-100%
-50%
0%
50%
100%
AUD/USD Jan 2025 - Jul 2025
0.44
Total Trades 92
Won Trades 31
Lost trades 61
Win Rate 33.70 %
Expected payoff -64.73
Gross Profit 4625.00
Gross Loss -10580.00
Total Net Profit -5955.00
-100%
-50%
0%
50%
100%
USD/JPY Jul 2025 - Sep 2025
0.33
Total Trades 136
Won Trades 57
Lost trades 79
Win Rate 41.91 %
Expected payoff -54.02
Gross Profit 3588.01
Gross Loss -10935.20
Total Net Profit -7347.19
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
0.32
Total Trades 40
Won Trades 22
Lost trades 18
Win Rate 55.00 %
Expected payoff -94.95
Gross Profit 1753.00
Gross Loss -5551.00
Total Net Profit -3798.00
-100%
-50%
0%
50%
100%
USD/JPY Jul 2025 - Sep 2025
0.30
Total Trades 68
Won Trades 31
Lost trades 37
Win Rate 45.59 %
Expected payoff -99.86
Gross Profit 2914.52
Gross Loss -9704.97
Total Net Profit -6790.45
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.28
Total Trades 32
Won Trades 12
Lost trades 20
Win Rate 37.50 %
Expected payoff -127.11
Gross Profit 1597.58
Gross Loss -5665.00
Total Net Profit -4067.42
-100%
-50%
0%
50%
100%
GBP/USD Jul 2025 - Sep 2025
0.25
Total Trades 80
Won Trades 34
Lost trades 46
Win Rate 42.50 %
Expected payoff -65.97
Gross Profit 1741.00
Gross Loss -7019.00
Total Net Profit -5278.00
-100%
-50%
0%
50%
100%
USD/CHF Jul 2025 - Sep 2025
0.24
Total Trades 64
Won Trades 23
Lost trades 41
Win Rate 35.94 %
Expected payoff -76.63
Gross Profit 1555.74
Gross Loss -6459.77
Total Net Profit -4904.03
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.20
Total Trades 80
Won Trades 25
Lost trades 55
Win Rate 31.25 %
Expected payoff -94.34
Gross Profit 1908.00
Gross Loss -9455.00
Total Net Profit -7547.00
-100%
-50%
0%
50%
100%
EUR/USD Jul 2025 - Sep 2025
0.19
Total Trades 40
Won Trades 10
Lost trades 30
Win Rate 25.00 %
Expected payoff -172.67
Gross Profit 1604.00
Gross Loss -8511.00
Total Net Profit -6907.00
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.19
Total Trades 48
Won Trades 18
Lost trades 30
Win Rate 37.50 %
Expected payoff -62.98
Gross Profit 688.69
Gross Loss -3711.77
Total Net Profit -3023.08
-100%
-50%
0%
50%
100%
USD/CAD Jul 2025 - Sep 2025
0.18
Total Trades 24
Won Trades 7
Lost trades 17
Win Rate 29.17 %
Expected payoff -113.60
Gross Profit 603.69
Gross Loss -3330.14
Total Net Profit -2726.45
-100%
-50%
0%
50%
100%
GBP/CAD Oct 2025 - Feb 2026
0.18
Total Trades 110
Won Trades 24
Lost trades 86
Win Rate 21.82 %
Expected payoff -87.50
Gross Profit 2122.78
Gross Loss -11747.80
Total Net Profit -9625.02
-100%
-50%
0%
50%
100%
GBP/CAD Jul 2025 - Sep 2025
0.16
Total Trades 56
Won Trades 9
Lost trades 47
Win Rate 16.07 %
Expected payoff -120.32
Gross Profit 1253.31
Gross Loss -7991.15
Total Net Profit -6737.84
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
0.15
Total Trades 64
Won Trades 22
Lost trades 42
Win Rate 34.38 %
Expected payoff -66.19
Gross Profit 758.00
Gross Loss -4994.00
Total Net Profit -4236.00
-100%
-50%
0%
50%
100%
NZD/USD Jul 2025 - Sep 2025
0.11
Total Trades 32
Won Trades 10
Lost trades 22
Win Rate 31.25 %
Expected payoff -115.38
Gross Profit 473.00
Gross Loss -4165.00
Total Net Profit -3692.00
-100%
-50%
0%
50%
100%
NZD/USD Jan 2025 - Jul 2025
0.08
Total Trades 48
Won Trades 18
Lost trades 30
Win Rate 37.50 %
Expected payoff -204.71
Gross Profit 856.00
Gross Loss -10682.00
Total Net Profit -9826.00
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
0.00
Total Trades 0
Won Trades 0
Lost trades 0
Win Rate 0.0 %
Expected payoff 0.00
Gross Profit 0.00
Gross Loss 0.00
Total Net Profit 0.00
-100%
-50%
0%
50%
100%

Comments