Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
28.00 %
Total Trades
2350
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-3.63
Gross Profit
3374.10
Gross Loss
-11897.50
Total Net Profit
-8523.40
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
22.00 %
Total Trades
2054
Won Trades
628
Lost trades
1426
Win Rate
0.31 %
Expected payoff
-4.65
Gross Profit
2629.90
Gross Loss
-12181.30
Total Net Profit
-9551.40
-100%
-50%
0%
50%
100%
Executer_AC
//+------------------------------------------------------------------+
//| Executer_AC.mq4 |
//| Copyright © 2006, Alex Sidd (Executer) |
//| mailto:work_st@mail.ru |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Äàííûé ñîâåòíèê íàïèñàí íà îñíîâå ñîâåòíèêà MACD Sample. |
//+------------------------------------------------------------------+
extern double TakeProfit = 120; //ïðîôèò
extern double Lots = 0.9; //êîë-âî âûñòàâëÿåìûõ ëîòîâ
extern double TrailingStop = 30; //òðåéëèíã ñòîï
extern double StopLoss = 70;
extern double DecreaseFactor = 80;
extern double MaximumRisk = 0.014;
extern double MaximumLots = 100;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double GetSizeLot() //îïòèìèçàöèÿ ëîòîâ
{
double Lot = Lots;
int cycle;
int prof = 0;
int orders = HistoryTotal(); // history orders total
int losses = 0; // number of losses orders without a break
int vinn = 0;
int i = orders;
//---- select lot size
Lot = NormalizeDouble(AccountFreeMargin()*MaximumRisk / 100, 1);
//----
if(AccountFreeMargin() <= 14)
DecreaseFactor = 14;
//----
if(AccountFreeMargin() > 10000)
DecreaseFactor = 60;
//----
if(DecreaseFactor > 0 && orders > DecreaseFactor)
{
//----
for(cycle = 1; cycle < DecreaseFactor; cycle++)
{
i--;
//----
if(OrderSelect(i, SELECT_BY_TICKET, MODE_HISTORY) == false)
{
Print("Error in history!");
break;
}
//----
if(OrderCloseTime()>0)
{
prof = prof + OrderProfit();
if(OrderProfit() <= 0 )
losses++;
else
vinn++;
}
}
if(prof <= 0 && losses > vinn)
Lot = 0.1;
if(prof <=0 && vinn > losses)
Lot = Lot - (0.1*losses);
if(prof > 0 && losses > vinn)
{
Lot = Lot + (0.1*NormalizeDouble(vinn / 4, 0.1));
}
if(prof > 0 && losses <= vinn )
{
Lot = Lot + (0.1*NormalizeDouble(vinn / 2, 0.1));
}
}
if(AccountFreeMargin() < 300 || Lot < 0.1)
Lot = 0.1;
if(Lot*1275 >= AccountFreeMargin())
Lot = NormalizeDouble(AccountFreeMargin()*MaximumRisk / 100, 1);
if(MaximumLots != 0 && Lot > MaximumLots)
Lot = MaximumLots;
if(DecreaseFactor > orders)
Lot = Lots;
return(Lot);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double ACCur, ACPrev, ACPrev2, ACPrev3;
int cnt, ticket, total;
// iAC - îñöèëëÿòîð óñêîðåíèÿ-çàìåäëåíèÿ.
// Ñèíòàêñèñ: iAC( shift )
// Ïàðàìåòð: shift - ñìåùåíèå îòíîñèòåëüíî òåêóùåãî áàðà (êîëè÷åñòâî ïåðèîäîâ
// íàçàä), îòêóäà íóæíî áðàòü äàííûå.
if(Bars < 100)
{
Print("Áàðîâ ìåíüøå 100");
return(0);
}
if(TakeProfit < 10)
{
Print("TakeProfit ìåíüøå ÷åì 10");
return(0); // check TakeProfit
}
ACCur = iAC(NULL, 0, 1);
ACPrev = iAC(NULL, 0, 2);
ACPrev2 = iAC(NULL, 0, 3);
ACPrev3 = iAC(NULL, 0, 4);
total = OrdersTotal(); // ïðîâåðÿåì åñòü ëè îòêðûòûå ïîçèöèè
if(total < 1)
{
if(AccountFreeMargin() < (500*Lots)) // ïðîâåðÿåì äåíåæêè íà ñ÷åòó
{
Print("Äåíåã ïî÷òè íåò, îñòàëîñü âñåãî: ", AccountFreeMargin());
return(0);
}
// ïðîâåðÿåì îòêðûòèå ïîçèöèè íà ïîêóïêó
if(ACCur > 0 && ACPrev > 0)
{
// ïðîâåðÿåì âîçìîæíîñòü îòêðûòèÿ íà ïîêóïêó
if(ACCur > ACPrev && ACPrev > ACPrev2)
{
OrderSend(Symbol(), OP_BUY, GetSizeLot(), Ask, 3, Ask - StopLoss*Point,
Ask + TakeProfit*Point, "AC expert", 16384, 0, Green);
return(0);
}
// ïðîâåðÿåì âîçìîæíîñòü îòêðûòèÿ íà ïðîäàæó
if(ACCur < ACPrev && ACPrev < ACPrev2 && ACPrev2 < ACPrev3)
{
OrderSend(Symbol(), OP_SELL, GetSizeLot(), Bid, 3, Bid + StopLoss*Point,
Bid - TakeProfit*Point, "AC expert", 16384, 0, Red);
return(0);
}
}
if(ACCur < 0 && ACPrev < 0)
{
// ïðîâåðÿåì âîçìîæíîñòü îòêðûòèÿ íà ïîêóïêó
if(ACCur > ACPrev && ACPrev > ACPrev2 && ACPrev2 > ACPrev3)
{
OrderSend(Symbol(), OP_BUY, GetSizeLot(), Ask, 3, Ask - StopLoss*Point,
Ask + TakeProfit*Point, "AC expert", 16384, 0, Green);
return(0);
}
// ïðîâåðÿåì âîçìîæíîñòü îòêðûòèÿ íà ïðîäàæó
if(ACCur < ACPrev && ACPrev < ACPrev2)
{
OrderSend(Symbol(), OP_SELL, GetSizeLot(), Bid, 3, Bid + StopLoss*Point,
Bid - TakeProfit*Point, "AC expert", 16384, 0, Red);
return(0);
}
}
if(ACCur > 0 && ACPrev < 0)
{
OrderSend(Symbol(), OP_BUY, GetSizeLot(), Ask, 3, Ask - StopLoss*Point,
Ask + TakeProfit*Point, "AC expert", 16384, 0, Green);
return(0);
}
if(ACCur < 0 && ACPrev > 0)
{
OrderSend(Symbol(), OP_SELL, GetSizeLot(), Bid, 3, Bid + StopLoss*Point,
Bid - TakeProfit*Point, "AC expert", 16384, 0, Red);
return(0);
}
return(0);
}
for(cnt = 0; cnt < total; cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && // ïðîâåðêà îòêðûòîé ïîçèöèè
OrderSymbol() == Symbol()) // ïðîâåðêà ñ íàøåãî ëè îíà ãðàôèêà
{
if(OrderType() == OP_BUY) // åñëè îòêðûòà ïîçèöèÿ íà ïîêóïêó
{
// íàäî ëè åå çàêðûòü?
if(ACCur < ACPrev)
{
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet); // çàêðûëè
return(0); // ñâàëèâàåì
}
// íóæíî ëè äâèãàòü òðåéëèíã ñòîï
if(TrailingStop > 0)
{
if(Bid - OrderOpenPrice() > Point*TrailingStop)
{
if(OrderStopLoss() < Bid - Point*TrailingStop)
{
OrderModify(OrderTicket(), OrderOpenPrice(),
Bid - Point*TrailingStop, OrderTakeProfit(),
0, Green);
return(0);
}
}
}
}
else // åñëè ýòà ïîçèöèÿ íà ïðîäàæó
{
// íàäî ëè çàêðûòü?
if(ACCur > ACPrev)
{
OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet); // çàêðûëè
return(0); // âûõîä
}
// íóæîí ëè òðåéëèíãñòîïèíã
if(TrailingStop > 0)
{
if((OrderOpenPrice() - Ask) > (Point*TrailingStop))
{
if((OrderStopLoss() > (Ask + Point*TrailingStop)) ||
(OrderStopLoss() == 0))
{
OrderModify(OrderTicket(), OrderOpenPrice(),
Ask + Point*TrailingStop, OrderTakeProfit(),
0, Red);
return(0);
}
}
}
}
}
}
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
---