Orders Execution
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
122.00 %
Total Trades
115
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
2.20
Gross Profit
1389.25
Gross Loss
-1136.03
Total Net Profit
253.22
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
29.00 %
Total Trades
166
Won Trades
89
Lost trades
77
Win Rate
0.54 %
Expected payoff
-29.57
Gross Profit
1970.38
Gross Loss
-6879.28
Total Net Profit
-4908.90
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
54.00 %
Total Trades
102
Won Trades
59
Lost trades
43
Win Rate
0.58 %
Expected payoff
-10.48
Gross Profit
1250.72
Gross Loss
-2319.70
Total Net Profit
-1068.98
-100%
-50%
0%
50%
100%
HlopMaster 2.1
#property copyright "FORTRADER.RU, Þðèé, ftyuriy@gmail.com, modified by Evgeniy Trofimov"
#property link "http://FORTRADER.RU, Price"
//+------------------------------------------------------------------+
extern int pips=250;
extern int profitpips=250;
extern double Lots=0.01;
extern double LimitLot=20.00;
extern int time=0; //1 - âêëþ÷åíî, 0 - âûêëþ÷åíî.
extern int starttime = 7;
extern int stoptime = 17;
//+------------------------------------------------------------------+
static datetime LastTime;
static int Slippage=30;
//+------------------------------------------------------------------+
int timecontrol() {
if ( ( (Hour()>=0 && Hour()<=stoptime-1) || (Hour()>=starttime && Hour()<=23)) && starttime>stoptime) {
return(1);
}
if ( (Hour()>=starttime && Hour()<=stoptime-1) && starttime<stoptime) {
return(1);
}
if(time==0){ return(1);}
return(0);
}//timecontrol()
//+------------------------------------------------------------------+
int SL=0;
int TP=0;
int err;
int start() {
if(LastTime==Time[0]) return(0);
LastTime=Time[0];
if(timecontrol()==1) {
if(!OrdersExist()) {
err=OpenNewOrders();
}else{
TrailStopOrders();
}
if(CountPos(0)==0 && CountPos(1)==0 && ChStopPosLimitSumm()<2){
_DeleteOrder();
}
if(ChStopPosLimitSumm()<1){
if(GetMaxLot()*2>LimitLot){
_DeleteOrder();
CloseAllPozitions();
} else {
DopOrder(GetMaxLot()*2);
}
}
err=CloseManager();
}
return(0);
}//start()
//+------------------------------------------------------------------+
double op,sl,tp;
int OpenNewOrders(){
int err;
op=Ask-pips*Point;if(SL>0){sl=Ask;}else{sl=0;}if(TP>0){tp=op-TP*Point;}else{tp=0;}
err=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"",0,0,Red);
if(err<0){
Print("OrderSend()- Îøèáêà OP_SELLSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);
LastTime=Time[1];
}
op=Bid+pips*Point;if(SL>0){sl=Bid;}else{sl=0;}if(TP>0){tp=op+TP*Point;}else{tp=0;}
err=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"",0,0,Red);
if(err<0){
Print("OrderSend()- Îøèáêà OP_BUYSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());return(-1);
LastTime=Time[1];
}
return(err);
}//OpenNewOrders()
//+------------------------------------------------------------------+
int TrailStopOrders() {
int i;bool err;
for(i=1; i<=OrdersTotal(); i++) {
if(OrderSelect(i-1,SELECT_BY_POS)==true) {
if( OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && (OrderOpenPrice()-Bid)>pips*Point) {
err=OrderModify(OrderTicket(),Bid+pips*Point,OrderStopLoss(),OrderTakeProfit(),0,Green);
if(err==false){
LastTime=Time[1];
return(-1);
}
}//if(OrderType()==OP_BUYSTOP
}//if(OrderSelect(i-1,SEL
if(OrderSelect(i-1,SELECT_BY_POS)==true) {
if(OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && (Ask-OrderOpenPrice())>pips*Point) {
err=OrderModify(OrderTicket(),Ask-pips*Point,OrderStopLoss(),OrderTakeProfit(),0,Green);
if(err==false){
LastTime=Time[1];
return(-1);
}
}//if(OrderType()==OP_SELLSTOP
}//if(OrderSelect(i-1,
}// for( i=1; i<=O
return(0);
}//TrailStopOrders()
//+------------------------------------------------------------------+
int CountPos(int type) {
int i,b,s;
for( i=1; i<=OrdersTotal(); i++) {
if(OrderSelect(i-1,SELECT_BY_POS)==true) {
if(OrderType()==OP_BUY && OrderSymbol()==Symbol()){b=b+1;}
if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){s=s+1;}
}
}
if(type==0){return(s);}
if(type==1){return(b);}
}//CountPos()
//+------------------------------------------------------------------+
int ChStopPosLimitSumm() {
int i,z;
for( i=1; i<=OrdersTotal(); i++) {
if(OrderSelect(i-1,SELECT_BY_POS)==true) {
if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP ){z=z+1;}
}
}
return(z);
}//ChStopPosLimitSumm()
//+------------------------------------------------------------------+
int _DeleteOrder() {
//Óäàëåíèå âñåõ îòëîæåííûõ îðäåðîâ
for(int i=1; i<=OrdersTotal(); i++) {
if(OrderSelect(i-1,SELECT_BY_POS)==true) {
if(OrderType()>3 && OrderSymbol()==Symbol()) {
OrderDelete(OrderTicket());
}//if
}//if
}//Next i
return(0);
}//_DeleteOrder()
//+------------------------------------------------------------------+
int CloseManager() {
//Çàêðûòèå âñåõ ïîçèöèé è îòëîæåííûõ îðäåðîâ,
//åñëè â ñäåëêå ñ ìàêñèìàëüíûì ëîòîì âåëè÷èíà
//ïðîôèòíûõ ïóíêòîâ äîñòèãëà óêàçàííîé ãðàíèöû
int err;
double maxlot=GetMaxLot();
for(int i=1; i<=OrdersTotal(); i++) {
if(OrderSelect(i-1,SELECT_BY_POS)) {
if(OrderSymbol()==Symbol()) {
if(OrderLots()==maxlot) {
if(OrderType()==OP_SELL && ((OrderOpenPrice()-Ask)>profitpips*Point)) {
_DeleteOrder();
CloseAllPozitions();
}//if
if(OrderType()==OP_BUY && ((Bid-OrderOpenPrice())>profitpips*Point)) {
_DeleteOrder();
CloseAllPozitions();
}//if
}//if(OrderLots()==maxlot)
}//if(OrderSymbol()==Symbol())
}//if
}//Next i
return(err);
}//CloseManager()
//+------------------------------------------------------------------+
double GetMaxLot() {
//Ôóíêöèÿ âîçâðàùàåò ðàçìåð ìàêñèìàëüíîãî ëîòà,
//íàéäåííîãî ñðåäè îòêðûòûõ ïîçèöèé
int i; double maxlot;
for(i=1; i<=OrdersTotal(); i++) {
if(OrderSelect(i-1,SELECT_BY_POS)) {
if(OrderType()<2 && OrderSymbol()==Symbol()) {
if(maxlot<OrderLots()) {
maxlot=OrderLots();
}
}
}
}
return(maxlot);
}//GetMaxLot()
//+------------------------------------------------------------------+
int GetLastTypePos() {
//Ôóíêöèÿ âîçâðàùàåò òèï ïîñëåäíåé îòêðûòîé ïîçèöèè
int i; datetime dt; int type;
for( i=1; i<=OrdersTotal(); i++) {
if(OrderSelect(i-1,SELECT_BY_POS)==true) {
if(OrderType()<2 && OrderSymbol()==Symbol()) {
if(dt<OrderOpenTime()){
dt=OrderOpenTime();
type=OrderType();
}
}
}//
}//Next i
return(type);
}//GetLastTypePos()
//+------------------------------------------------------------------+
int DopOrder(double Lots) {
//Ôóíêöèÿ âûñòàâëÿåò îòëîæåííûé îðäåð, íà ïðîäàæó,
//åñëè ïîñëåäíÿÿ îòêðûòàÿ ñäåëêà - ïîêóïàåò
//è íàîáîðîò
int type=GetLastTypePos();
if(type==OP_SELL){
op=Bid+pips*Point;
if(SL>0){sl=Bid;} else {sl=0;}
if(TP>0){tp=op+TP*Point;} else {tp=0;}
err=OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"FORTRADER.RU",0,0,Red);
if(err<0){
LastTime=Time[1];
Print("OrderSend()- Îøèáêà OP_BUYSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());
return(-1);
}
} else if(type==OP_BUY) {
op=Ask-pips*Point;
if(SL>0){sl=Ask;} else {sl=0;}
if(TP>0){tp=op-TP*Point;} else {tp=0;}
err=OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(op,Digits),3,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"FORTRADER.RU",0,0,Red);
if(err<0){
LastTime=Time[1];
Print("OrderSend()- Îøèáêà OP_SELLSTOP. op "+op+" sl "+sl+" tp "+tp+" "+GetLastError());
return(-1);
}
}
return(0);
}//DopOrder()
//+------------------------------------------------------------------+
int CloseAllPozitions() {
double PriceClose;
int total = OrdersTotal();
for (int i = total-1; i >= 0; i--) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol()) {
if(OrderType()==OP_BUY) {
PriceClose=Bid;
} else if(OrderType()==OP_SELL) {
PriceClose=Ask;
}
if(!OrderClose(OrderTicket(),OrderLots(),PriceClose,Slippage)) {
Print("Ñòàâêà ",OrderTicket()," íå çàêðûâàåòñÿ ïî ïðè÷èíå îøèáêè ¹ ",GetLastError());
LastTime=Time[1];
}
} // Åñëè ñâîé
} // Next i
return(0);
}//CloseAllPozitions()
//+------------------------------------------------------------------+
bool OrdersExist() {
//Ôóíêöèÿ âîçâðàùàåò true, åñëè êîëè÷åñòâî îðäåðîâ íà òåêóùåì èíñòðóìåíòå > 0
int total = OrdersTotal();
for (int i = 0; i < total; i++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
return(true);
}
}
return(false);
}//OpenLots()
//+------------------------------------------------------------------+
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
---