Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
17.00 %
Total Trades
27
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-14.49
Gross Profit
78.50
Gross Loss
-469.60
Total Net Profit
-391.10
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
87.00 %
Total Trades
43
Won Trades
31
Lost trades
12
Win Rate
0.72 %
Expected payoff
-1.27
Gross Profit
349.00
Gross Loss
-403.40
Total Net Profit
-54.40
-100%
-50%
0%
50%
100%
TrueSort_1001
//+------------------------------------------------------------------+
//| TrueSort_1001.mq4 |
//| TrueSort(v 1.0.01)|
//| MaxBau |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MaxBau"
#property link ""
extern double lots = 0.1;
extern int stloss = 100;
extern int magicnum = 5000;
double level_10, level_10_old;
double ma_10[4], ma_20[4], ma_50[4], ma_100[4], ma_200[4];
double ma_10c, ma_20c, ma_50c, ma_100c, ma_200c;
int my_order;
int w_m = 0;
int init()
{
return(0);
}
int deinit()
{
return(0);
}
void setstopbuy()
{
OrderSelect (my_order, SELECT_BY_TICKET);
if (OrderStopLoss() < OrderOpenPrice())
{
if (NormalizeDouble((Bid-OrderOpenPrice())/Point,Digits) > stloss)
OrderModify (my_order, OrderOpenPrice(), Bid-stloss*Point, 0, 0, Red);
}
else
if (OrderStopLoss() > OrderOpenPrice())
{
if (NormalizeDouble((Bid-OrderStopLoss())/Point,Digits) > stloss)
OrderModify (my_order, OrderOpenPrice(), Bid-stloss*Point, 0, 0, Red);
}
}
void setstopsell()
{
OrderSelect (my_order, SELECT_BY_TICKET);
if (OrderStopLoss() > OrderOpenPrice())
{
if (NormalizeDouble((OrderOpenPrice()-Ask)/Point,Digits) > stloss)
OrderModify (my_order, OrderOpenPrice(), Ask+stloss*Point, 0, 0, Red);
}
else
if (OrderStopLoss() < OrderOpenPrice())
{
if (NormalizeDouble((OrderStopLoss()-Ask)/Point,Digits) > stloss)
OrderModify (my_order, OrderOpenPrice(), Ask+stloss*Point, 0, 0, Red);
}
}
void checkopenedorders ()
{
my_order = 0;
w_m = 0;
int ordstotal = OrdersTotal();
for (int i = 0; i < ordstotal; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderMagicNumber() == magicnum)
{
my_order = OrderTicket();
if (OrderType() == OP_BUY)
{
w_m = 1;
setstopbuy();
}
if (OrderType() == OP_SELL)
{
w_m = 2;
setstopsell();
}
}
}
}
void eq_level()
{
level_10 = iMA (NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, 1);
return;
}
bool isChanges ()
{
double res = 0;
res = NormalizeDouble (level_10,Digits) - NormalizeDouble (level_10_old,Digits) ;
if (res != 0)
{
return (true);
}
else return (false);
}
void saveparam ()
{
level_10_old = level_10;
return;
}
/*
void eq_mas_5()
{
ma_10 = iMA (NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, 3);
ma_20 = iMA (NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 3);
ma_50 = iMA (NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, 3);
ma_100 = iMA (NULL, 0, 100, 0, MODE_SMA, PRICE_CLOSE, 3);
ma_200 = iMA (NULL, 0, 200, 0, MODE_SMA, PRICE_CLOSE, 3);
return;
}
*/
void eq_mas()
{
for (int i = 0; i < 3; i++)
{
ma_10[i] = iMA (NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, i+1);
ma_20[i] = iMA (NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, i+1);
ma_50[i] = iMA (NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, i+1);
ma_100[i] = iMA (NULL, 0, 100, 0, MODE_SMA, PRICE_CLOSE, i+1);
ma_200[i] = iMA (NULL, 0, 200, 0, MODE_SMA, PRICE_CLOSE, i+1);
}
return;
}
void eq_mas_0()
{
ma_10c = iMA (NULL, 0, 10, 0, MODE_SMA, PRICE_CLOSE, 0);
ma_20c = iMA (NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE, 0);
ma_50c = iMA (NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE, 0);
ma_100c = iMA (NULL, 0, 100, 0, MODE_SMA, PRICE_CLOSE, 0);
ma_200c = iMA (NULL, 0, 200, 0, MODE_SMA, PRICE_CLOSE, 0);
return;
}
bool check_buy ()
{
//eq_mas_0 ();
//if (ma_10 > ma_20 && ma_20 > ma_50 && ma_50 > ma_100 && ma_100 > ma_200)
// if (ma_10c > ma_20c && ma_20c > ma_50c && ma_50c > ma_100c && ma_100c > ma_200c)
if (ma_10[0] > ma_20[0] && ma_20[0] > ma_50[0] && ma_50[0] > ma_100[0] && ma_100[0] > ma_200[0])
if (ma_10[1] > ma_20[1] && ma_20[1] > ma_50[1] && ma_50[1] > ma_100[1] && ma_100[1] > ma_200[1])
if (ma_10[2] > ma_20[2] && ma_20[2] > ma_50[2] && ma_50[2] > ma_100[2] && ma_100[2] > ma_200[2])
if (iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0) > 25 && iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0) > iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,1))
return (true);
return (false);
}
bool check_sell ()
{
//eq_mas_0 ();
//if (ma_10 < ma_20 && ma_20 < ma_50 && ma_50 < ma_100 && ma_100 < ma_200)
// if (ma_10c < ma_20c && ma_20c < ma_50c && ma_50c < ma_100c && ma_100c < ma_200c)
if (ma_10[0] < ma_20[0] && ma_20[0] < ma_50[0] && ma_50[0] < ma_100[0] && ma_100[0] < ma_200[0])
if (ma_10[1] < ma_20[1] && ma_20[1] < ma_50[1] && ma_50[1] < ma_100[1] && ma_100[1] < ma_200[1])
if (ma_10[2] < ma_20[2] && ma_20[2] < ma_50[2] && ma_50[2] < ma_100[2] && ma_100[2] < ma_200[2])
if (iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0) > 25 && iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0) > iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,1))
return (true);
return (false);
}
void do_it (int workmode)
{
switch (workmode)
{
case 0:
my_order = OrderSend (Symbol(), OP_BUY, lots, Ask, 3, ma_100c, 0, "My order", magicnum, 0, Red);
break;
case 1:
my_order = OrderSend (Symbol(), OP_SELL, lots, Bid, 3, ma_100c, 0, "My order", magicnum, 0, Red);
break;
}
return;
}
void checkforclose ()
{
eq_mas_0();
switch (w_m)
{
case 1:
if (ma_10c <= ma_20c || ma_20c <= ma_50c || ma_50c <= ma_100c || ma_100c <= ma_200c)
OrderClose (my_order, lots, Bid, 3, Blue);
break;
case 2:
if (ma_10c >= ma_20c || ma_20c >= ma_50c || ma_50c >= ma_100c || ma_100c >= ma_200c)
OrderClose (my_order, lots, Ask, 3, Blue);
break;
}
return;
}
int start()
{
checkopenedorders ();
eq_level();
if (isChanges() == false) return(0);
saveparam();
eq_mas();
if (w_m == 0)
{
if (check_buy() == true) do_it (0);
if (check_sell() == true) do_it (1);
}
else checkforclose ();
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
---