Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
59.00 %
Total Trades
325
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-0.20
Gross Profit
95.18
Gross Loss
-160.65
Total Net Profit
-65.47
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
62.00 %
Total Trades
666
Won Trades
146
Lost trades
520
Win Rate
0.22 %
Expected payoff
-0.18
Gross Profit
201.48
Gross Loss
-322.40
Total Net Profit
-120.92
-100%
-50%
0%
50%
100%
Kloss_
//+------------------------------------------------------------------+
//| Kloss_.mq4 |
//| Copyright © 2007, Tinytjan |
//| tinytjan@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Tinytjan"
#property link "tinytjan@mail.ru"
#define STUPID 0x60BE57
extern string Lots_Desc = "if 0 dynamic lot is applied";
extern double Lots = 0;
extern string RiskPercentage_Desc = "actual only of Lots == 0, percentage of the risk for opening order";
extern int RiskPercentage = 0;
extern int Slippage = 2;
extern string Target_Desc = "Take Profit -- none if 0";
extern int Target = 152;
extern string Loss_Desc = "Stop Loss -- none if 0";
extern int Loss = 48;
extern int MA = 1;
extern int CCI = 10;
extern int StochasticK = 5;
extern int StochasticD = 3;
extern int StochasticS = 3;
extern string CCIDiffer_Desc = "CCIDiffer and -CCIDiffer are signal levels";
extern int CCIDiffer = 120;
extern string StochDiffer_Desc = "50 + StochDiffer and 50 - StochDiffer are signal levels";
extern int StochDiffer = 20;
extern string MaxOrders_Desc = "no limit if 0";
extern int MaxOrders = 3;
double LotsToBid;
string symbol;
void CloseBuys(int MagicNumber, int Slippage)
{
for(int i = 0; i < OrdersTotal(); i++)
{
// already closed
if(OrderSelect(i, SELECT_BY_POS) == false) continue;
// not current symbol
if(OrderSymbol() != Symbol()) continue;
// order was opened in another way
if(OrderMagicNumber() != MagicNumber) continue;
if(OrderType() == OP_BUY)
{
if(OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Blue))
{
i--;
}
RefreshRates();
}
}
}
void CloseSells(int MagicNumber, int Slippage)
{
for(int i = 0; i < OrdersTotal(); i++)
{
// already closed
if(OrderSelect(i, SELECT_BY_POS) == false) continue;
// not current symbol
if(OrderSymbol() != Symbol()) continue;
// order was opened in another way
if(OrderMagicNumber() != MagicNumber) continue;
if(OrderType() == OP_SELL)
{
if (OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Red))
{
i--;
}
RefreshRates();
}
}
}
int GetOrdersCount(int MagicNumber, int Type)
{
int count = 0;
for(int i = 0; i < OrdersTotal(); i++)
{
// already closed
if(OrderSelect(i, SELECT_BY_POS) == false) continue;
// not current symbol
if(OrderSymbol() != Symbol()) continue;
// order was opened in another way
if(OrderMagicNumber() != MagicNumber) continue;
if(OrderType() == Type)
{
count++;
}
}
return (count);
}
double GetLotsToBid(int RiskPercentage)
{
double margin = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
double minLot = MarketInfo(Symbol(), MODE_MINLOT);
double maxLot = MarketInfo(Symbol(), MODE_MAXLOT);
double account = AccountFreeMargin();
double percentage = account*RiskPercentage/100;
double lots = MathRound(10*percentage/margin)/10;
if(lots < minLot)
{
lots = minLot;
}
if(lots > maxLot)
{
lots = maxLot;
}
return (lots);
}
void OpenBuy()
{
double TP = 0;
if (Target > 0)
{
TP = Bid + Target*Point;
}
double SL = 0;
if (Loss > 0)
{
SL = Bid - Loss*Point;
}
if (Lots == 0) LotsToBid = GetLotsToBid(RiskPercentage);
OrderSend(Symbol(), OP_BUY, LotsToBid, Ask, Slippage, SL, TP, NULL, STUPID, 0, Blue);
}
void OpenSell()
{
double TP = 0;
if (Target > 0)
{
TP = Ask - Target*Point;
}
double SL = 0;
if (Loss > 0)
{
SL = Ask + Loss*Point;
}
if (Lots == 0) LotsToBid = GetLotsToBid(RiskPercentage);
OrderSend(Symbol(), OP_SELL, LotsToBid, Bid, Slippage, SL, TP, NULL, STUPID, 0, Red);
}
void Check()
{
double ma = iMA(symbol, 0, MA, 0, MODE_LWMA, PRICE_TYPICAL, 5);
double cci = iCCI(symbol, 0, CCI, PRICE_WEIGHTED, 0);
double stoch = iStochastic(symbol, 0, StochasticK, StochasticD, StochasticS, MODE_SMA, 0, MODE_MAIN, 0);
if (cci < -CCIDiffer && stoch < 50 - StochDiffer && Open[1] > ma)
{
if (GetOrdersCount(STUPID, OP_SELL) > 0)
{
CloseSells(STUPID, Slippage);
return;
}
if (GetOrdersCount(STUPID, OP_BUY) < MaxOrders || MaxOrders == 0)
{
OpenBuy();
}
}
if (cci > CCIDiffer && stoch > 50 + StochDiffer && Close[1] < ma)
{
if (GetOrdersCount(STUPID, OP_BUY) > 0)
{
CloseBuys(STUPID, Slippage);
return;
}
if (GetOrdersCount(STUPID, OP_SELL) < MaxOrders || MaxOrders == 0)
{
OpenSell();
}
}
}
int init()
{
LotsToBid = Lots;
symbol = Symbol();
}
datetime LastTime = 0;
int start()
{
if (LastTime == 0)
{
LastTime = TimeCurrent();
return (0);
}
// Trading only when tick is opening
//if (TimeCurrent() - LastTime > 20)
{
// Check for open new orders and close current ones
Check();
LastTime = TimeCurrent();
}
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
---