Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
38.00 %
Total Trades
31
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-45.84
Gross Profit
857.00
Gross Loss
-2278.00
Total Net Profit
-1421.00
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
68.00 %
Total Trades
47
Won Trades
21
Lost trades
26
Win Rate
0.45 %
Expected payoff
-18.82
Gross Profit
1900.50
Gross Loss
-2785.00
Total Net Profit
-884.50
-100%
-50%
0%
50%
100%
TrueSort_1100
//+------------------------------------------------------------------+
//| TrueSort_1100.mq4 |
//| TrueSort(v 1.1.00)|
//| MaxBau |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MaxBau"
#property link ""
extern double lots = 0.1;
extern double risk = 5; //%
extern int stloss = 90; //ñòîï-ëîññ
extern int tprofit = 270; //òåéê-ïðîôèò
extern int magicnum = 10000;
double ma_10[3], ma_20[3], ma_50[3], ma_100[3], ma_200[3];
int ord_tsort;
int prevtime = 0;
int tsort = 0;
double eq_lot2()
{
lots=NormalizeDouble(AccountBalance() * risk / 100 / 1000, 2);
double Min_Lot = MarketInfo(Symbol(), MODE_MINLOT);
if (lots == 0) lots = Min_Lot;
return(lots);
}
int init()
{
eq_lot2();
return(0);
}
int deinit()
{
return(0);
}
void setstopbuy(int otc)
{
OrderSelect (otc, SELECT_BY_TICKET);
if (OrderType() == OP_BUY)
{
if (OrderStopLoss() < OrderOpenPrice())
{
if (NormalizeDouble((Bid-OrderOpenPrice())/Point,Digits) > stloss)
OrderModify (otc, OrderOpenPrice(), Bid-stloss*Point, Bid+tprofit*Point, 0);
}
else
if (OrderStopLoss() > OrderOpenPrice())
{
if (NormalizeDouble((Bid-OrderStopLoss())/Point,Digits) > stloss)
OrderModify (otc, OrderOpenPrice(), Bid-stloss*Point, Bid+tprofit*Point, 0);
}
}
}
void setstopsell(int otc)
{
OrderSelect (otc, SELECT_BY_TICKET);
if (OrderType() == OP_BUY)
{
if (OrderStopLoss() > OrderOpenPrice())
{
if (NormalizeDouble((OrderOpenPrice()-Ask)/Point,Digits) > stloss)
OrderModify (otc, OrderOpenPrice(), Ask+stloss*Point, Ask-tprofit*Point, 0);
}
else
if (OrderStopLoss() < OrderOpenPrice())
{
if (NormalizeDouble((OrderStopLoss()-Ask)/Point,Digits) > stloss)
OrderModify (otc, OrderOpenPrice(), Ask+stloss*Point, Ask-tprofit*Point, 0);
}
}
}
void checkopenedorders ()
{
tsort = 0;
int i, n, otp, magn, otc;
n = 0;
int ordstotal = OrdersTotal();
for (i = 0; i < ordstotal; i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
otp = OrderType();
magn = OrderMagicNumber();
otc = OrderTicket();
if (magn == magicnum)
{
ord_tsort = otc;
if (otp == OP_BUY)
{
tsort = 1;
setstopbuy(ord_tsort);
}
else
if (otp == OP_SELL)
{
tsort = -1;
setstopsell(ord_tsort);
}
}
}
}
void do_it (int dimens)
{
if (NormalizeDouble(AccountFreeMargin() / AccountBalance(), 2) < 0.2) return;
int n, or;
switch (dimens)
{
case 1:
n = 0;
ord_tsort = 0;
while (n < 1000 && ord_tsort == 0)
{
ord_tsort = OrderSend (Symbol(), OP_BUY, lots, Ask, 3, ma_50[0], Bid+tprofit*Point, "Ïðàâèëüíûé ïîðÿäîê", magicnum, 0, Red);
n++;
}
break;
case -1:
n = 0;
ord_tsort = 0;
while (n < 1000 && ord_tsort == 0)
{
ord_tsort = OrderSend (Symbol(), OP_SELL, lots, Bid, 3, ma_50[0], Ask-tprofit*Point, "Ïðàâèëüíûé ïîðÿäîê", magicnum, 0, Red);
n++;
}
break;
}
}
void eq_MA()
{
for (int i = 0; i < 5; 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;
}
bool to_buy()
{
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 (iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0) > 20)
return (true);
return (false);
}
bool to_sell ()
{
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 (iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0) > 20)
return (true);
return (false);
}
void check_buyclose ()
{
bool cl;
int n;
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])
{
OrderSelect (ord_tsort, SELECT_BY_TICKET);
n = 0;
cl = false;
while (n < 1000 && cl == false)
{
cl = OrderClose (ord_tsort, OrderLots(), Bid, 3, Blue);
n++;
}
}
return;
}
void check_sellclose ()
{
bool cl;
int n;
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])
{
OrderSelect (ord_tsort, SELECT_BY_TICKET);
n = 0;
cl = false;
while (n < 1000 && cl == false)
{
cl = OrderClose (ord_tsort, OrderLots(), Ask, 3, Blue);
n++;
}
}
return;
}
void sistem_2()
{
eq_MA();
switch (tsort)
{
case 0:
if (to_buy()==true)
{
do_it(1);
}
else
if (to_sell()==true) do_it(-1);
break;
case 1:
check_buyclose();
break;
case -1:
check_sellclose();
break;
}
return;
}
int start()
{
checkopenedorders ();
if(Time[0] == prevtime)
return(0);
prevtime = Time[0];
sistem_2();
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
---