Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
GBP/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
2
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
25.00
Gross Profit
50.00
Gross Loss
0.00
Total Net Profit
50.00
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
11.00 %
Total Trades
11
Won Trades
2
Lost trades
9
Win Rate
0.18 %
Expected payoff
-36.36
Gross Profit
50.00
Gross Loss
-450.00
Total Net Profit
-400.00
-100%
-50%
0%
50%
100%
arttrader_v1_5
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//
// Arthur Matteson's Trading Machine, version 1.5
// EA written in MQL4 for MetaTrader4 on 9/13/2006
// Meant for EUR/USD on the hourly timeframe (H1)
//
//
// These parameters give a 43.5% profit on "Every tick" for EUR/USD
// from 7/13/2006 to 9/12/2006 (MT4 release 197, H1 timeframe):
//
//#define NUM_LOTS 1.0
//#define EMA_SPEED 11.0
//#define BIG_JUMP 30.0
//#define DOUBLE_JUMP 55.0
//#define STOP_LOSS 20.0
//#define EMERGENCY_LOSS 50.0
//#define TAKE_PROFIT 25.0
//#define SLOPE_SMALL 5.0
//#define SLOPE_LARGE 8.0
//#define MINUTES_BEGIN 25.0
//#define MINUTES_END 25.0
//#define SLIP_BEGIN 0.0
//#define SLIP_END 0.0
//#define MIN_VOLUME 0.0
//#define SLIPPAGE 3.0
//#define ADJUST 1.0
//
// Variables that can be changed outside the program code, even optimized
extern double NUM_LOTS=1.0; // How many lots to deal with (may be less than one)
extern double EMA_SPEED=11.0; // The period for the averager
extern double BIG_JUMP=30.0; // Check for too-big candlesticks (avoid them)
extern double DOUBLE_JUMP=55.0; // Check for pairs of big candlesticks
extern double STOP_LOSS=20.0; // A smart stop-loss
extern double EMERGENCY_LOSS=50.0; // The trade's stop loss in case of program error
extern double TAKE_PROFIT=25.0; // The trade's take profit
extern double SLOPE_SMALL=5.0; // The minimum EMA slope to enter a trade
extern double SLOPE_LARGE=8.0; // The maximum EMA slope to enter a trade
extern double MINUTES_BEGIN=25.0; // Wait this long to determine candlestick lows/highs
extern double MINUTES_END=25.0; // Wait this long to determine candlestick lows/highs
extern double SLIP_BEGIN=0.0; // An allowance between the close and low/high price
extern double SLIP_END=0.0; // An allowance between the close and low/high price
extern double MIN_VOLUME=0.0; // If the previous volume is not above this, exit the trade
extern double SLIPPAGE=3.0; // This is for the OrderSend command
extern double ADJUST=1.0; // A strange but functional imaginary spread adjustment
int start()
{
int i, ticket;
double ema_old, ema_new, ema_slope;
double begin_buy_chance, begin_sell_chance;
double end_buy_chance, end_sell_chance;
static double open_price;
begin_buy_chance=0; begin_sell_chance=0;
end_buy_chance=0; end_sell_chance=0; ticket=0;
// Find the existing order, if there is one
if(OrdersTotal()>0) {
if(OrderType()==OP_BUY) {
// If ticket=+1, this means a long order is in progress
ticket=1;
}
if(OrderType()==OP_SELL) {
// If ticket=-1, this means a short order is in progress
ticket=-1;
}
}
// Find the exponentially-weighted average, and its derivative
ema_old=iMA(NULL, PERIOD_H1, EMA_SPEED, 0, MODE_EMA, PRICE_OPEN, 1);
ema_new=iMA(NULL, PERIOD_H1, EMA_SPEED, 0, MODE_EMA, PRICE_OPEN, 0);
ema_slope=(ema_new-ema_old)/Point;
// Are conditions correct to go long?
if(ema_slope>=SLOPE_SMALL) {
if(ema_slope<=SLOPE_LARGE) {
if((Minute()>MINUTES_BEGIN)&&(Close[0]<=Open[0])&&(Close[0]<=Low[0]+(SLIP_BEGIN*Point))) {
begin_buy_chance=1;
}
}
}
// Are conditions correct to go short?
if(ema_slope<=-SLOPE_SMALL) {
if(ema_slope>=-SLOPE_LARGE) {
if((Minute()>MINUTES_BEGIN)&&(Close[0]>=Open[0])&&(Close[0]>=High[0]-(SLIP_BEGIN*Point))) {
begin_sell_chance=1;
}
}
}
// Was there a sudden jump? Ignore it...
if((MathAbs(Open[1]-Open[0])/Point)>=BIG_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[2]-Open[1])/Point)>=BIG_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[3]-Open[2])/Point)>=BIG_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[4]-Open[3])/Point)>=BIG_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[5]-Open[4])/Point)>=BIG_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[2]-Open[0])/Point)>=DOUBLE_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[3]-Open[1])/Point)>=DOUBLE_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[4]-Open[2])/Point)>=DOUBLE_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
if((MathAbs(Open[5]-Open[3])/Point)>=DOUBLE_JUMP) {
begin_buy_chance=0;
begin_sell_chance=0;
}
// Implement a stop-loss
if(ticket>0) {
if(((Close[0]-open_price)/Point)<=-STOP_LOSS) {
if((Minute()>MINUTES_END)&&(Close[0]>=Open[0])&&(Close[0]>=High[0]-(SLIP_END*Point))) {
end_buy_chance=1;
}
}
}
// Implement a stop-loss
if(ticket<0) {
if(((open_price-Close[0])/Point)<=-STOP_LOSS) {
if((Minute()>MINUTES_END)&&(Close[0]<=Open[0])&&(Close[0]<=Low[0]+(SLIP_END*Point))) {
end_sell_chance=1;
}
}
}
// Prevent duplicate orders
if(ticket>0) begin_buy_chance=0;
if(ticket<0) begin_sell_chance=0;
// Was there no volume last time? If so, end the trade...
if(Volume[1]<=MIN_VOLUME) {
if(ticket>0) end_buy_chance=1;
if(ticket<0) end_sell_chance=1;
}
// Was a long-exit signaled?
if(end_buy_chance>=1) {
ticket=0;
OrderClose(OrderTicket(), NUM_LOTS, Bid, SLIPPAGE, Teal);
}
// Was a short-exit signaled?
if(end_sell_chance>=1) {
ticket=0;
OrderClose(OrderTicket(), NUM_LOTS, Ask, SLIPPAGE, BlueViolet);
}
// Was a long-enter signaled?
if(begin_buy_chance>=1) {
ticket=OrderSend(Symbol(), OP_BUY, NUM_LOTS, Ask, SLIPPAGE, Ask-EMERGENCY_LOSS*Point, Ask+TAKE_PROFIT*Point, "Long", 16384, 0, Lime);
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
open_price=Open[0]-(ADJUST*Point)+(Bid-Ask);
}
// Was a short-enter signaled?
if(begin_sell_chance>=1) {
ticket=OrderSend(Symbol(), OP_SELL, NUM_LOTS, Bid, SLIPPAGE, Bid+EMERGENCY_LOSS*Point, Bid-TAKE_PROFIT*Point, "Short", 16384, 0, Red);
OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES);
open_price=Open[0]+(ADJUST*Point)+(Ask-Bid);
}
return(0);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---