Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
0.00 %
Total Trades
3
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-576.67
Gross Profit
0.00
Gross Loss
-1730.00
Total Net Profit
-1730.00
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
60.00 %
Total Trades
4
Won Trades
2
Lost trades
2
Win Rate
0.50 %
Expected payoff
-78.14
Gross Profit
472.80
Gross Loss
-785.38
Total Net Profit
-312.58
-100%
-50%
0%
50%
100%
NZD/USD
Oct 2024 - Jan 2025
112.00 %
Total Trades
7
Won Trades
4
Lost trades
3
Win Rate
0.57 %
Expected payoff
39.98
Gross Profit
2647.84
Gross Loss
-2367.95
Total Net Profit
279.89
-100%
-50%
0%
50%
100%
Emily_v4
/*
Created by Alejandro Galindo http://www.ealcactus.com
And Kalenzo http://www.fxservice.eu
And modified by Cocoracas
*/
extern int MaxTrades = 20;
extern int Pips = 5;
extern double TakeProfit = 40;
extern double TrailingStop = 20;
extern double InitialStop = 250;
extern string Note1 = "TF 1M";
extern int MACDTimeFrame = 0;
int SecureProfit = 10;
int AccountProtection = 1;
int OrdersToProtect = 19;
int ReverseCondition = 0;
double FirstOrderLots=0.1;
int OrdersOpened = 0;
int cnt = 0;
double lots = 0.1;
int slippage = 5;
double stoploss = 0;
double takeprofit = 0;
double bprice = 0;
double sprice = 0;
double lotsi = 0;
int type = 0;
int state = 0;
bool EnableTrading = true;
double openprice = 0;
int PreviousOrders = 0;
double Profit = 0;
int LastTicket = 0;
int LastType = 0;
double LastClosePrice = 0;
double LastLots = 0;
double PipValue = 0;
string text2 = "";
string text = "";
double lotstmp;
double trade;
double trade1;
int trendtype;
//---- input parameters
extern int RSIOMA = 14;
extern int RSIOMA_MODE = MODE_EMA;
extern int RSIOMA_PRICE = PRICE_CLOSE;
extern int Ma_RSIOMA = 21,
Ma_RSIOMA_MODE = MODE_EMA;
extern int BuyTrigger = 80;
extern int SellTrigger = 20;
extern int MainTrendLong = 50;
extern int MainTrendShort = 50;
double RSIBuffer[];
double PosBuffer[];
double NegBuffer[];
double bdn[],bup[];
double sdn[],sup[];
double marsioma[];
//---- buffers
string short_name;
double rel,rel1,negative,positive;
int i;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
double rel,rel1,negative,positive;
//----
if(Bars<=RSIOMA) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=RSIOMA;i++) RSIBuffer[Bars-i]=0.0;
//----
i=Bars-RSIOMA-1;
int ma = i;
if(counted_bars>=RSIOMA) i=Bars-counted_bars-1;
while(i>=0)
{
double sumn=0.0,sump=0.0;
if(i==Bars-RSIOMA-1)
{
int k=Bars-2;
//---- initial accumulation
while(k>=i)
{
double cma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,k);
double pma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,k+1);
rel=cma-pma;
if(rel>0) sump+=rel;
else sumn-=rel;
k--;
}
positive=sump/RSIOMA;
negative=sumn/RSIOMA;
}
else
{
//---- smoothed moving average
double ccma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,i);
double ppma = iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,i+1);
rel=ccma-ppma;
if(rel>0) sump=rel;
else sumn=-rel;
positive=(PosBuffer[i+1]*(RSIOMA-1)+sump)/RSIOMA;
negative=(NegBuffer[i+1]*(RSIOMA-1)+sumn)/RSIOMA;
}
// Comment(rel);
PosBuffer[i]=positive;
NegBuffer[i]=negative;
if(negative==0.0) RSIBuffer[i]=0.0;
else
{
RSIBuffer[i]=100.0-100.0/(1+positive/negative);
bdn[i] = 0;
bup[i] = 0;
sdn[i] = 0;
sup[i] = 0;
if(RSIBuffer[i]>MainTrendLong)
bup[i] = -10;
if(RSIBuffer[i]<MainTrendShort)
bdn[i] = -10;
if(RSIBuffer[i]<20 && RSIBuffer[i]>RSIBuffer[i+1])
sup[i] = -10;
if(RSIBuffer[i]>80 && RSIBuffer[i]<RSIBuffer[i+1])
sdn[i] = -10;
}
i--;
}
while(ma>=0)
{
marsioma[ma] = iMAOnArray(RSIBuffer,0,Ma_RSIOMA,0,Ma_RSIOMA_MODE,ma);
ma--;
}
//Comment(rel);
FirstOrderLots = AccountBalance()/1000;
lotsi = FirstOrderLots;
if (lotsi > 100.0) lotsi = 100;
if (lotsi<0.01) lotsi=0.1;
string tripo;
if (rel > 0) tripo = "compra";
if (rel < 0) tripo = "vende";
OrdersOpened = 0;
Comment("Tipo de Operación = ",tripo,"\nSi haces las operaciones manualmente, no inviertas en la primera operación más de ; ",AccountBalance()/4000," Lotes");
for (cnt = 0; cnt < OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol()) OrdersOpened++;
}
PipValue=MarketInfo(Symbol(),MODE_TICKVALUE);
if (PipValue == 0.0) PipValue = 5;
if (PreviousOrders > OrdersOpened)
{
for (cnt = OrdersTotal(); cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
type = OrderType();
if (OrderSymbol() == Symbol())
{
// if (type == OP_BUY) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue);
// if (type == OP_SELL) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red);
//return(0);
}
}
}
PreviousOrders = OrdersOpened;
if (OrdersOpened >= MaxTrades) EnableTrading = false; else EnableTrading = true;
if (openprice == 0.0)
{
for (cnt = 0; cnt < OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
type = OrderType();
if (OrderSymbol() == Symbol())
{
openprice = OrderOpenPrice();
if (type == OP_BUY) state = 2;
if (type == OP_SELL) state = 1;
}
}
}
//double ma34 = iMA(NULL,PERIOD_M1,2,0,MODE_EMA,PRICE_CLOSE,0);
//double ma89 = iMA(NULL,PERIOD_M1,5,0,MODE_EMA,PRICE_CLOSE,0);
//double sarCurrent = iSAR(NULL,PERIOD_M5,0.009,0.2,0);
//double sarPrevious = iSAR(NULL,PERIOD_M5,0.009,0.2,1);
double macd = iMACD(NULL,0,5,13,1,PRICE_CLOSE,MODE_MAIN,0);
if (OrdersOpened < 1)
{
state = 3;
if (rel > 0) state = 2;
if (rel < 0) state = 1;
if (ReverseCondition == 1)
{
if (state == 1)
{
state = 2;
}
else
{
if (state == 2)
{
state = 1;
}
}
}
}
for (cnt = OrdersTotal(); cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol())
{
if (OrderType() == OP_SELL)
{
if (TrailingStop > 0.0)
{
if (OrderOpenPrice() - Ask >= (TrailingStop + Pips) * Point)
{
if (OrderStopLoss() > Ask + Point * TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask + Point * TrailingStop,OrderClosePrice() - TakeProfit * Point - TrailingStop * Point,800,Purple);
return(0);
}
}
}
}
if (OrderType() == OP_BUY)
{
if (TrailingStop > 0.0)
{
if (Bid - OrderOpenPrice() >= (TrailingStop + Pips) * Point)
{
if (OrderStopLoss() < Bid - Point * TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid - Point * TrailingStop,OrderClosePrice() + TakeProfit * Point + TrailingStop * Point,800,Yellow);
return(0);
}
}
}
}
}
}
Profit = 0;
LastTicket = 0;
LastType = 0;
LastClosePrice = 0;
LastLots = 0;
for (cnt = 0; cnt < OrdersTotal(); cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol())
{
LastTicket = OrderTicket();
if (OrderType() == OP_BUY) LastType = 0;
if (OrderType() == OP_SELL) LastType = 1;
LastClosePrice = OrderClosePrice();
LastLots = OrderLots();
if (LastType == 0)
{
if (OrderClosePrice() < OrderOpenPrice()) Profit -= (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
if (OrderClosePrice() > OrderOpenPrice()) Profit += (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
}
if (LastType == 1)
{
if (OrderClosePrice() > OrderOpenPrice()) Profit -= (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
if (OrderClosePrice() < OrderOpenPrice()) Profit += (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
}
}
}
Profit = Profit * PipValue;
text = "Profit: $" + DoubleToStr(Profit,2) + " +/-";
/*
if (LastType == 0 && state == 1)
{
OrderClose(LastTicket,LastLots,LastClosePrice,slippage,Yellow);
EnableTrading = false;
return(0);
}
if (LastType == 1 && state == 2)
{
OrderClose(LastTicket,LastLots,LastClosePrice,slippage,Yellow);
EnableTrading = false;
return(0);
}
*/
/*
if (AccountEquity()/AccountBalance()<=0.60)
{
OrderClose(LastTicket,LastLots,LastClosePrice,slippage,Yellow);
EnableTrading = false;
return(0);
}
*/
//if ((OrdersOpened >= MaxTrades - OrdersToProtect) && (AccountProtection == 1))
// {
//if (Profit >= SecureProfit)
if (OrdersTotal()>=8)
{
for (cnt = OrdersTotal(); cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
type = OrderType();
if (OrderSymbol() == Symbol())
{
if (type == OP_BUY) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue);
if (type == OP_SELL) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red);
//return(0);
}
}
}
if (!IsTesting())
{
if (state == 3)
text2 = "No conditions to open trades";
else
text2 = " ";
}
if ((state == 1) && EnableTrading)
{
if ((Bid - openprice >= Pips * Point) || (OrdersOpened < 1))
{
sprice = Bid;
openprice = 0;
if (TakeProfit == 0.0)
takeprofit = 0;
else
takeprofit = sprice - TakeProfit * Point;
if (InitialStop == 0.0)
stoploss = 0;
else
stoploss = sprice + InitialStop * Point;
if (OrdersOpened != 0)
{
lots = lotsi;
for (cnt = 1; cnt <= OrdersOpened; cnt++)
{
if (MaxTrades>12) { lots=NormalizeDouble(lots*1.5,2); }
else { lots=NormalizeDouble(lots*2,2); }
}
}
else
{
lots = lotsi;
}
if (lots > 100.0) lots = 100;
OrderSend(Symbol(),OP_SELL,lots,sprice,slippage,stoploss,takeprofit,0,0,0,Red);
return(0);
}
}
if ((state == 2) && EnableTrading)
{
if ((openprice - Ask >= Pips * Point) || (OrdersOpened < 1))
{
bprice = Ask;
openprice = 0;
if (TakeProfit == 0.0) takeprofit = 0; else takeprofit = bprice + TakeProfit * Point;
if (InitialStop == 0.0) stoploss = 0; else stoploss = bprice - InitialStop * Point;
if (OrdersOpened != 0)
{
lots = lotsi;
for (cnt = 1; cnt <= OrdersOpened; cnt++)
{
if (MaxTrades>12) { lots=NormalizeDouble(lots*1.5,2); }
else { lots=NormalizeDouble(lots*2,2); }
}
}
else
{
lots = lotsi;
}
if (lots > 100.0) lots = 100;
OrderSend(Symbol(),OP_BUY,lots,bprice,slippage,stoploss,takeprofit,0,0,0,Blue);
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
---