Orders Execution
0
Views
0
Downloads
0
Favorites
Profitability Reports
AUD/USD
Oct 2024 - Jan 2025
10.00 %
Total Trades
187
Won Trades
0
Lost trades
0
Win Rate
0.00 %
Expected payoff
-48.35
Gross Profit
994.30
Gross Loss
-10035.40
Total Net Profit
-9041.10
-100%
-50%
0%
50%
100%
GBP/USD
Oct 2024 - Jan 2025
28.00 %
Total Trades
626
Won Trades
329
Lost trades
297
Win Rate
0.53 %
Expected payoff
-12.69
Gross Profit
3121.40
Gross Loss
-11063.40
Total Net Profit
-7942.00
-100%
-50%
0%
50%
100%
EA_supercharger 2
//+------------------------------------------------------------------+
//| Scalping Minachi.mq4 |
//| |
//| |
//| |
//|
//|Run pada TF M5
//|Editor: E_PNG |
//|Release Date: 22 Jan 2009 11:30PM
//| |
//+------------------------------------------------------------------+
#property copyright " Copyright © 2005 Alejandro Galindo - FAB4X"
#property link " Copyright © 2005 Alejandro Galindo - FAB4X INTL"
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| Common External variables |
//+------------------------------------------------------------------+
extern double Lots = 0.1;
extern double StopLoss = 0;
extern double StopLossOnTenth = 0;
extern bool Use_Auto_TakeProfit = true;
extern double TakeProfit = 0;
extern double TrailingStop = 5.00;
//+------------------------------------------------------------------+
//| External variables |
//+------------------------------------------------------------------+
extern double MaxTrades = 10;
extern double Pips = 20;
extern double SecureProfit = 10;
extern double AccountProtection = 1;
extern double OrderstoProtect = 3;
extern double ReverseCondition = 0;
extern double EURUSDPipValue = 10;
extern double GBPUSDPipValue = 10;
extern double USDCHFPipValue = 7.94;
extern double USDJPYPipValue = 9.03;
extern double mm = 0;
extern double risk = 12;
extern double AccountisNormal = 1;
extern double TimeZoneofData = 0;
//+------------------------------------------------------------------+
//| Global variables |
//+------------------------------------------------------------------+
double OpenOrders = 0;
int cnt = 0;
double slippage = 5;
double sl = 0;
double tp = 0;
double BuyPrice = 0;
double SellPrice = 0;
double lotsi = 0;
double mylotsi = 0;
double mode = 0;
double MyOrderType=0;
bool ContinueOpening = true;
double LastPrice = 0;
double PreviousOpenOrders = 0;
double Profit = 0;
double LastTicket = 0;
double LastType = 0;
double LastClosePrice = 0;
double LastLots = 0;
double Pivot = 0;
double PipValue = 0;
bool Reversed = true;
string text = "";
string text2 = "";
double myl = 0;
double myh = 0;
double myC = 0;
double myO = 0;
double mypivot = 0;
double Today = 0;
double RefDate = 0;
double LastBarOfDay = 0;
double FirstBarOfDay = 0;
double Loop = 0;
double myyh = 0;
double myyl = 0;
double myyc = 0;
double p = 0;
double flp = 0;
double feh = 0;
double fel = 0;
double ph = 0;
double pl = 0;
double gap = 0;
bool SetObjectText(string name, string text, string font, int size, color Acolor)
{
return(ObjectSetText(name, text, size, font, Acolor));
}
bool MoveObject(string name, int type, datetime Atime, double Aprice, datetime Atime2 = 0, double Aprice2 = 0, color Acolor = CLR_NONE, int Aweight = 0, int Astyle = 0)
{
if (ObjectFind(name) != -1) {
int OType = ObjectType(name);
if ((OType == OBJ_VLINE) ||
(OType == OBJ_HLINE) ||
(OType == OBJ_TRENDBYANGLE) ||
(OType == OBJ_TEXT) ||
(OType == OBJ_ARROW) ||
(OType == OBJ_LABEL)) {
return(ObjectMove(name, 0, Atime, Aprice));
}
if ((OType == OBJ_GANNLINE) ||
(OType == OBJ_GANNFAN) ||
(OType == OBJ_GANNGRID) ||
(OType == OBJ_FIBO) ||
(OType == OBJ_FIBOTIMES) ||
(OType == OBJ_FIBOFAN) ||
(OType == OBJ_FIBOARC) ||
(OType == OBJ_RECTANGLE) ||
(OType == OBJ_ELLIPSE) ||
(OType == OBJ_CYCLES) ||
(OType == OBJ_TREND) ||
(OType == OBJ_STDDEVCHANNEL) ||
(OType == OBJ_REGRESSION)) {
return(ObjectMove(name, 0, Atime, Aprice) && ObjectMove(name, 1, Atime2, Aprice2));
}
}
else {
return(ObjectCreate(name, type, 0, Atime, Aprice, Atime2, Aprice2, 0, 0) && ObjectSet(name, OBJPROP_COLOR, Acolor));
}
}
//+------------------------------------------------------------------+
//| Initialization |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
int start()
{
//+------------------------------------------------------------------+
//| Local variables |
//+------------------------------------------------------------------+
TakeProfit = TakeProfit;
StopLoss = StopLoss;
if (OrdersTotal() == 9) StopLoss = StopLossOnTenth;
if(Use_Auto_TakeProfit) {
int total = OrdersTotal();
// if (total >=0 && total <3) {TakeProfit = 10;}
// if (total >=3 && total <6) {TakeProfit = 20;}
if (total ==1) {TakeProfit = 20;}
if (total ==2) {TakeProfit = 20;}
if (total ==3) {TakeProfit = 25;}
if (total ==4) {TakeProfit = 30;}
if (total ==5) {TakeProfit = 40;}
if (total ==6) {TakeProfit = 50;}
if (total ==7) {TakeProfit = 60;}
if (total ==8) {TakeProfit = 70;}
if (total ==9) {TakeProfit = 80;}
if (total ==10) {TakeProfit = 90;}
}
if( AccountisNormal == 1 ) {
if( mm != 0 ) lotsi = MathCeil(AccountBalance() * risk / 10000) /10 ; else lotsi = Lots;
}
else {
if( mm != 0 ) lotsi = MathCeil(AccountBalance() * risk / 10000) /100 ; else lotsi = Lots;
}
if( lotsi < 0.01 ) lotsi=0.01;
if( lotsi > 100 ) lotsi = 100;
OpenOrders = 0;
for( cnt = 0; cnt < OrdersTotal(); cnt++ ) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol() == Symbol() ) OpenOrders++;
}
myh = High[0];
myl = Low[0];
myC = Close[0];
myO = Open[0];
myyh = High[1];
myyl = Low[1];
myyc = Close[1];
p = (myyh + myyl + myyc + myO) / 4;
ph = (myyh + myh + myyc + myO) / 4;
pl = (myyl + myl + myyc + myO) / 4;
flp = (myh + myl + myC) / 3;
gap = MathAbs(p - flp) / Point;
MoveObject("P",OBJ_HLINE,Time[0],p,Time[0],p,Gold,1,STYLE_SOLID);
SetObjectText("P_txt","Pivot Zone","Arial",7,White);
MoveObject("P_txt",OBJ_TEXT,Time[0],p,Time[0],p,White);
if( Ask > p && Ask > flp ) {
MoveObject("FLP",OBJ_HLINE,Time[0],flp,Time[0],flp,LimeGreen,1,STYLE_SOLID);
SetObjectText("FLP_txt","Floating Trend Direction - LONG","Arial",7,White);
MoveObject("FLP_txt",OBJ_TEXT,Time[0],flp,Time[0],flp,White);
Comment("Account: ",AccountNumber()," - ",AccountName(),"'#10'LastPrice=",LastPrice," Previous open orders=",PreviousOpenOrders,"'#10'Continue opening=",ContinueOpening," OrderType=",MyOrderType,"'#10'",text2," Balance: ",DoubleToStr(AccountBalance(),2),"'#10'Lots=",lotsi,"'#10'",text,"Trend Bias -- LONG");
}
if( Bid < p && Bid < flp ) {
MoveObject("FLP",OBJ_HLINE,Time[0],flp,Time[0],flp,Red,1,STYLE_SOLID);
SetObjectText("FLP_txt","Floating Trend Direction - SHORT","Arial",7,White);
MoveObject("FLP_txt",OBJ_TEXT,Time[0],flp,Time[0],flp,White);
Comment("Account: ",AccountNumber()," - ",AccountName(),"'#10'LastPrice=",LastPrice," Previous open orders=",PreviousOpenOrders,"'#10'Continue opening=",ContinueOpening," OrderType=",MyOrderType,"'#10'",text2," Balance: ",DoubleToStr(AccountBalance(),2),"'#10'Lots=",lotsi,"'#10'",text,"Trend Bias -- SHORT");
}
PipValue = 5;
if (Symbol()== "EURUSDm") PipValue = EURUSDPipValue;
if (Symbol()== "GBPUSDm") PipValue = GBPUSDPipValue;
if (Symbol()== "USDJPYm") PipValue = USDJPYPipValue;
if (Symbol()== "USDCHFm") PipValue = USDCHFPipValue;
if( PreviousOpenOrders > OpenOrders ) {
for( cnt = OrdersTotal()-1; cnt >= 0; cnt-- ) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
mode = OrderType();
if( OrderSymbol() == Symbol() ) {
if( mode == OP_BUY ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue);
if( mode == OP_SELL ) OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red);
return(0);
}
}
}
PreviousOpenOrders = OpenOrders;
if( OpenOrders >= MaxTrades ) ContinueOpening = False ; else ContinueOpening = True;
if( LastPrice == 0 ) {
for( cnt = 0; cnt < OrdersTotal(); cnt++ ) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol() == Symbol() ) {
LastPrice = OrderOpenPrice();
if(OrderType()==OP_BUY) MyOrderType=2;
if(OrderType()==OP_SELL) MyOrderType=1;
}
}
}
if( OpenOrders < 1 ) MyOrderType=0;
if( OpenOrders < 1 && Bid < p && Bid < flp && gap >= 7 ) {
LastPrice = 0;
MyOrderType=1;
}
if( OpenOrders < 1 && Ask > p && Ask > flp && gap >= 7 ) {
LastPrice = 0;
MyOrderType=2;
}
for( cnt = OrdersTotal()-1; cnt >= 0; cnt-- ) {
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if( OrderSymbol() == Symbol() && Reversed == False ) {
if( OrderType() == OP_SELL ) {
if( TrailingStop > 0 ) {
if( OrderOpenPrice() - Ask >= TrailingStop * Point + Pips * Point ) {
if( OrderStopLoss() > Ask + Point * TrailingStop || OrderStopLoss() == 0 ) {
OrderModify(OrderTicket(),OrderOpenPrice(),Ask + Point * TrailingStop,OrderClosePrice() - TakeProfit * Point - TrailingStop * Point,0,Purple);
return(0);
}
}
}
}
if( OrderType() == OP_BUY ) {
if( TrailingStop > 0 ) {
if( Bid - OrderOpenPrice() >= TrailingStop * Point + Pips * Point ) {
if( OrderStopLoss() < Bid - Point * TrailingStop ) {
OrderModify(OrderTicket(),OrderOpenPrice(),Bid - Point * TrailingStop,OrderClosePrice() + TakeProfit * Point + TrailingStop * Point,0,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 = Profit - (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
}
if( OrderClosePrice() > OrderOpenPrice() ) {
Profit = Profit + (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
}
}
if( LastType == 1 ) {
if( OrderClosePrice() > OrderOpenPrice() ) {
Profit = Profit - (OrderClosePrice() - OrderOpenPrice()) * OrderLots() / Point;
}
if( OrderClosePrice() < OrderOpenPrice() ) {
Profit = Profit + (OrderOpenPrice() - OrderClosePrice()) * OrderLots() / Point;
}
}
}
}
Profit = Profit * PipValue;
text2 = "Profit: $" + DoubleToStr(Profit,2) + " +/- ";
if( OpenOrders >= MaxTrades - OrderstoProtect && AccountProtection == 1 ) {
if( MyOrderType == 2 && Bid == tp ) {
OrderClose(LastTicket,LastLots,LastClosePrice,slippage,Yellow);
ContinueOpening = False;
return(0);
}
if( MyOrderType == 1 && Ask == tp ) {
OrderClose(LastTicket,LastLots,LastClosePrice,slippage,Yellow);
ContinueOpening = False;
return(0);
}
}
if( MyOrderType == 1 && ContinueOpening ) {
if( Bid - LastPrice >= Pips * Point || OpenOrders < 1 ) {
SellPrice = Bid;
LastPrice = 0;
if( TakeProfit == 0 ) tp = 0 ; else tp = SellPrice - TakeProfit * Point;
if( StopLoss == 0 ) sl = 0 ; else sl = SellPrice + StopLoss * Point;
if( OpenOrders != 0 ) {
mylotsi = lotsi;
for(cnt =0;cnt <OpenOrders;cnt ++) {
if( MaxTrades > 12 ) mylotsi = NormalizeDouble(mylotsi + lotsi,2) ; else mylotsi = NormalizeDouble(mylotsi + lotsi,2);
}
}
else {
mylotsi = lotsi;
}
if( mylotsi > 100 ) mylotsi = 100;
OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,sl,tp,"",0,0,Red);
return(0);
}
}
if( MyOrderType == 2 && ContinueOpening ) {
if( LastPrice - Ask >= Pips * Point || OpenOrders < 1 ) {
BuyPrice = Ask;
LastPrice = 0;
if( TakeProfit == 0 ) tp = 0 ; else tp = BuyPrice + TakeProfit * Point;
if( StopLoss == 0 ) sl = 0 ; else sl = BuyPrice - StopLoss * Point;
if( OpenOrders != 0 ) {
mylotsi = lotsi;
for(cnt =0;cnt <OpenOrders;cnt ++) {
if( MaxTrades > 12 ) mylotsi = NormalizeDouble(mylotsi + lotsi,2) ; else mylotsi = NormalizeDouble(mylotsi + lotsi,2);
}
}
else {
mylotsi = lotsi;
}
if( mylotsi > 100 ) mylotsi = 100;
OrderSend(Symbol(),OP_BUY,mylotsi,BuyPrice,slippage,sl,tp,"",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
---