Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
GBP/USD
Oct 2024 - Jan 2025
54.00 %
Total Trades
105
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-9.32
Gross Profit
1148.40
Gross Loss
-2126.80
Total Net Profit
-978.40
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
49.00 %
Total Trades
115
Won Trades
27
Lost trades
88
Win Rate
0.23 %
Expected payoff
-5.65
Gross Profit
628.60
Gross Loss
-1278.90
Total Net Profit
-650.30
-100%
-50%
0%
50%
100%
2MA
#property copyright "Copyright © 2005-2006, RickD"
#property link "http://e2e-fx.net"
#include <stdlib.mqh>
#include <stderror.mqh>
#define major 1
#define minor 0
extern double Lots = 0.1;
extern int Slippage = 3;
extern int FastP = 5;
extern int SlowP = 20;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void init () {
}
void deinit() {
}
void start() {
if (!IsTesting()) Comment("Version: ", major, ".", minor);
double FastMA = iMA(NULL, 0, FastP, 0, MODE_EMA, PRICE_OPEN, 0);
double SlowMA = iMA(NULL, 0, SlowP, 0, MODE_EMA, PRICE_OPEN, 0);
int BuyCnt = 0;
int SellCnt = 0;
int cnt = OrdersTotal();
for (int i = 0; i < cnt; i++) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
int type = OrderType();
if (type == OP_BUY) BuyCnt++;
if (type == OP_SELL) SellCnt++;
}
double price, sl, tp;
if (FastMA > SlowMA) {
CloseOrders(OP_SELL);
if (BuyCnt == 0) {
price = Ask;
sl = 0;
tp = 0;
Buy(Symbol(), Lots, price, Slippage, sl, tp, 0);
}
}
if (FastMA < SlowMA) {
CloseOrders(OP_BUY);
if (SellCnt == 0) {
price = Bid;
sl = 0;
tp = 0;
Sell(Symbol(), Lots, price, Slippage, sl, tp, 0);
}
}
}
void CloseOrders(int type) {
int cnt = OrdersTotal();
for (int i=cnt-1; i>=0; i--) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
int type2 = OrderType();
if (type != type2) continue;
if (type == OP_BUY) CloseOrder(OrderTicket(), OrderLots(), Bid, Slippage);
if (type == OP_SELL) CloseOrder(OrderTicket(), OrderLots(), Ask, Slippage);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int SleepOk = 2000;
int SleepErr = 6000;
int Buy(string symbol, double lot, double price, int slip, double sl, double tp, int magic, string comment="") {
RefreshRates();
int dig = MarketInfo(symbol, MODE_DIGITS);
price = NormalizeDouble(price, dig);
sl = NormalizeDouble(sl, dig);
tp = NormalizeDouble(tp, dig);
string _lot = DoubleToStr(lot, 1);
string _price = DoubleToStr(price, dig);
string _sl = DoubleToStr(sl, dig);
string _tp = DoubleToStr(tp, dig);
Print("Buy \"", symbol, "\", ", _lot, ", ", _price, ", ", slip, ", ", _sl, ", ", _tp, ", ", magic, ", \"", comment, "\"");
int res = OrderSend(symbol, OP_BUY, lot, price, slip, sl, tp, comment, magic);
if (res >= 0) {
Sleep(SleepOk);
return (res);
}
int code = GetLastError();
Print("Error opening BUY order: ", ErrorDescription(code), " (", code, ")");
Sleep(SleepErr);
return (-1);
}
int Sell(string symbol, double lot, double price, int slip, double sl, double tp, int magic, string comment="") {
RefreshRates();
int dig = MarketInfo(symbol, MODE_DIGITS);
price = NormalizeDouble(price, dig);
sl = NormalizeDouble(sl, dig);
tp = NormalizeDouble(tp, dig);
string _lot = DoubleToStr(lot, 1);
string _price = DoubleToStr(price, dig);
string _sl = DoubleToStr(sl, dig);
string _tp = DoubleToStr(tp, dig);
Print("Sell \"", symbol, "\", ", _lot, ", ", _price, ", ", slip, ", ", _sl, ", ", _tp, ", ", magic, ", \"", comment, "\"");
int res = OrderSend(symbol, OP_SELL, lot, price, slip, sl, tp, comment, magic);
if (res >= 0) {
Sleep(SleepOk);
return (res);
}
int code = GetLastError();
Print("Error opening SELL order: ", ErrorDescription(code), " (", code, ")");
Sleep(SleepErr);
return (-1);
}
bool CloseOrder(int ticket, double lot, double price, int slip) {
RefreshRates();
int dig = MarketInfo(OrderSymbol(), MODE_DIGITS);
string _lot = DoubleToStr(lot, 1);
string _price = DoubleToStr(price, dig);
Print("CloseOrder ", ticket, ", ", _lot, ", ", _price, ", ", slip);
bool res = OrderClose(ticket, lot, price, slip);
if (res) {
Sleep(SleepOk);
return (res);
}
int code = GetLastError();
Print("CloseOrder failed: ", ErrorDescription(code), " (", code, ")");
Sleep(SleepErr);
return (false);
}
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
---