Orders Execution
Indicators Used
1
Views
0
Downloads
0
Favorites
Profitability Reports
GBP/USD
Oct 2024 - Jan 2025
64.00 %
Total Trades
79
Won Trades
24
Lost trades
55
Win Rate
0.30 %
Expected payoff
-9.73
Gross Profit
1392.60
Gross Loss
-2161.20
Total Net Profit
-768.60
-100%
-50%
0%
50%
100%
MultiPairWPRtrails
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+-----------------------------------------+
//|GH.mq4 WPR for Multi Pair |
//|Copyright © 2005, Gary Hensley |
//+-----------------------------------------+
//
// Modifications
// -------------
// DATE MOD # DESCRIPTION
// ---------- -------- ---------------------------------------------------------------
// 01 Jul 2005 1 GaryH: Converted Original M3 version of MultiPairWPR script.
#property copyright "WPR for Multi Pair, Copyright © 2005, Gary Hensley"
//#property link "http://www.metaquotes.net/"
#define MAGICMA 20050610
//---- input parameters
extern int UsePct=0;
extern int MaxLots=100;
extern int TrailingStop=20;
extern int ProfitTarget=100;
extern int Slippage=3;
//---- global variables
int bsi=0;
int dir=0;
int vTrig=0;
int openorders=0;
string pair;
double vSL=0,vTP=0;
int dummy=0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
pair = Symbol();
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Calculate open positions |
//+------------------------------------------------------------------+
int GetCurrentOrders()
{
//---- calc open OrderSelect
openorders=0;
dir=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
//if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
if(OrderSymbol()==Symbol())
{
openorders+=1;
if(OrderType()==OP_BUY) dir=1;
if(OrderType()==OP_SELL) dir=-1;
}
}
}
//+------------------------------------------------------------------+
//| Calculate Lot Sizes |
//+------------------------------------------------------------------+
int LotCalc(double Risk)
{
int vLots=0;
if (UsePct >0 && Risk>0) vLots=MathFloor(AccountBalance()*(UsePct/100)/((Risk/MarketInfo (Symbol(), MODE_POINT))*10));
if (UsePct >0 && Risk==0) vLots = MathFloor(AccountBalance()*(UsePct/100)/1000);
if (vLots>MaxLots) vLots=MaxLots;
if (vLots<1) vLots=1;
vLots=0.1;
return(vLots);
}
//+------------------------------------------------------------------+
//| Close Open Position |
//+------------------------------------------------------------------+
int CloseTrade()
{
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
//if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,White);
}
}
}
//+------------------------------------------------------------------+
//| Open Trade Position |
//+------------------------------------------------------------------+
int OpenTrade()
{
// int vLots=LotCalc(0);
double vLots=0.1;
if (bsi>0) OrderSend(Symbol(),OP_BUY,vLots,Ask,3,0,0,0,0,Blue);
if (bsi<0) OrderSend(Symbol(),OP_SELL,vLots,Bid,3,0,0,0,0,Red);
}
//+------------------------------------------------------------------+
//| Buy/Sell Indicator |
//+------------------------------------------------------------------+
int CalcBSI()
{
//---- calc current indicators
int GU_Trig=1,EU_Trig=1,UC_Trig=1,UJ_Trig=1;
if (iWPR("GBPUSD",0,14,0)<-50) GU_Trig=-1;
if (iWPR("EURUSD",0,14,0)<-50) EU_Trig=-1;
if (iWPR("USDCHF",0,14,0)<-50) UC_Trig=-1;
if (iWPR("USDJPY",0,14,0)<-50) UJ_Trig=-1;
vTrig=GU_Trig+EU_Trig-UC_Trig-UJ_Trig;
bsi=0;
if (vTrig>2) bsi=1;
if (vTrig<-2) bsi=-1;
if (pair>"USD") bsi=bsi*(-1);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
// if (Hour()<7) return(0);
GetCurrentOrders();
CalcBSI();
Comment("Dir: ",dir,"\nBSI: ",bsi,"\nTrig: ",vTrig);
HandleOpenTrades();
//---- exit trades
if (openorders!=0) {
if ((bsi>0) && (dir<0)) CloseTrade();
if ((bsi<0) && (dir>0)) CloseTrade();
}
//---- open trades
else {
if (bsi!=0) OpenTrade();
}
}
void HandleOpenTrades()
{
for (int i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderType() == OP_BUY )
{
if( dummy !=0)
{
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage);
return(0);
}
else
{
if (TrailingStop > 0)
{
if (Ask - OrderOpenPrice() > TrailingStop * Point)
{
if (OrderStopLoss() < Ask - TrailingStop * Point)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Ask - TrailingStop * Point, Ask + ProfitTarget * Point, 0);
return(0);
}
}
}
}
}
if (OrderType() == OP_SELL )
{
if( dummy !=0)
{
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage);
return(0);
}
else
{
if (TrailingStop > 0)
{
if (OrderOpenPrice() - Bid > TrailingStop * Point)
{
if (OrderStopLoss() > Bid + TrailingStop * Point)
{
OrderModify(OrderTicket(), OrderOpenPrice(), Bid + TrailingStop * Point, Bid - ProfitTarget * Point, 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
---