Price Data Components
Orders Execution
Indicators Used
0
Views
0
Downloads
0
Favorites
Your_Lucky_EURGBP_rdb_v1
//+------------------------------------------------------------------+
//| Your_Lucky_EURGBP_rdb_v1.mq4 |
//| rahman_DGBeta |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "rahman_DGBeta (_rdb_)"
#property link "abdulrahman_maros@yahoo.com"
//salam salut saya untuk semua mql coder...
//EA ini berasal dari MyLuckyPro V.0.4p... seorang teman meminta saya untuk memperbaikinya...
//menambahkan filter dan meng optimasi supaya menghasilkan profit yang lebih dengan drowdown yang relatif aman...
//selain versi EURGBP ini masih banyak versi lain yang siap kami share kepada teman-teman semua...
//mohon kiranya jika anda menggunakan script ini... jangan menghapus baris permintaan donasi... salam coder... semoga sukses...
//--------ANTI SERAKAH--------
extern string Original_EA = "MyLuckyPro V.0.4p";
extern string LasEdit_by = "_rdb_ : 30 Nopember 2008";
extern string Balance_Info = "Bila sudah tercapai ROBOT berhenti, INGAT JANGAN serakah";
extern double TargetBalance = 3000000;
extern string AutoStop_Info = "AutoStop=false, tidak buka posisi baru, posisi yg lama tetap di maintain";
extern bool AutoStop = false;
//--------TradingTime--------
extern string Time_Info = "Jam Trading waktu Server";
extern int OpenHour = 20; //19
extern int CloseHour = 4;
//int CloseHour2 = 1;
extern string MM_Info = "Kalau MM=true, isi risk berapa persen yg mau di pake.";
extern bool MM = true; // pake MM
extern int Risk = 50; // persentase MM
extern string Lots_Info = "Kalau MM=false, isi Lots yg mau di pake.";
extern double Lots = 1; // kalo 'MM=false' pake lot
string MaxLots_Info = "Maximum dan Minimum Lot, nggak bisa lebih dari ini.";
extern double MaxLots = 100;
extern double MinLots = 0.1;
string LotsDigit_Info = "LotsDigit=0, maka akan ambil dari system";
extern int LotsDigit = 2;
extern int Slippage = 2;
extern string Trade_Info = "TP=TakeProfit, disarankan sedikit saja";
extern int TP = 7; // jangan besar-besar
extern string SL1_Info = "SL1=StopLoss bukan jam trading";
extern int SL1 = 22; //19 // SL kalau jam close
extern string SL2_Info = "SL2=StopLoss jam trading";
extern int SL2 = 32; //31 // SL kalau jam trading
extern int FractalRange = 32;
extern int ATR_Level = 15;
extern int PriceFromFractal = 7;
extern string HiddenTP_Info = "Bila true, maka TP tidak di set";
extern bool HiddenTP = true;
//----------------------------------------------------------------------------
extern string Filter_Info = "Filter untuk buka posisi";
extern int SignalFilter = 5;
extern int MaxTrades = 5;
extern int MaxTradePerBar = 2; //3
extern int MaxTradePerPosition = 3;
extern int IMA_PERIOD = 11;
extern int Magic = 11111;
extern string email_YM = "abdulrahman_maros@yahoo.com";
extern string Need_Donation = "Abdul Rahman";
extern string Bank = "BCA : 7990026640";
extern string LibertyReserve = "U7067895";
//----------------------------------------------------------------------------
int TradePerBar = 0;
//----------------------------------------------------------------------------
double Last_BUY_OpenPrice = 0;
double Last_SELL_OpenPrice = 0;
int BarCount = -1;
extern bool Time_Opened_Protection = TRUE;
int LimitTime_1 = 60;
int pips_1 = 3; //3;
int LimitTime_2 = 140;
int pips_2 = 2; //2;
int LimitTime_3 = 170;
int pips_3 = 0; //0;
int LimitTime_4 = 200;
int pips_4 = 1; //1;
int LimitTime_5 = 240;
int pips_5 = 4; //4;
double LastUpFractal,LastDownFractal,TimeOfLastDownFractal,TimeOfLastUpFractal;
double LastUpFractal_H1,LastDownFractal_H1,TimeOfLastDownFractal_H1,TimeOfLastUpFractal_H1;
int FractalEnvelope=0;
int FractalEnvelope_H1=0;
double midFractal=0;
int CurrentATR=0;
double mypoint = 0.0;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
if(1==2 || 3==4 && 5==6) return (0);
if(7==8 || 9==10 && 11==12) return (0);
return(0);
}
int start()
{
if(AutoStop==true)
{
CloseAll();
return(0);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
mypoint=0;
if (Digits == 5 || Digits == 3) {mypoint=10*Point;} else {mypoint=Point;}
//mypoint=(MarketInfo(Symbol(),MODE_POINT));
for(int a=1;a<Bars;a++){
if(iFractals(NULL, PERIOD_M15, MODE_UPPER,a)!=0){
LastUpFractal=iFractals(NULL, PERIOD_M15, MODE_UPPER,a);
TimeOfLastUpFractal=Time[a];
break;
}//end if
}//end for
for(int s=1;s<Bars;s++){
if(iFractals(NULL, PERIOD_M15, MODE_LOWER,s)!=0){
LastDownFractal=iFractals(NULL, PERIOD_M15, MODE_LOWER,s);
TimeOfLastDownFractal=Time[s];
break;
}//end if
}//end for
for(int v=1;v<Bars;v++){
if(iFractals(NULL, PERIOD_H1, MODE_UPPER,v)!=0){
LastUpFractal_H1=iFractals(NULL, PERIOD_H1, MODE_UPPER,v);
TimeOfLastUpFractal_H1=Time[v];
break;
}//end if
}//end for
for(int w=1;w<Bars;w++){
if(iFractals(NULL, PERIOD_H1, MODE_LOWER,w)!=0){
LastDownFractal_H1=iFractals(NULL, PERIOD_H1, MODE_LOWER,w);
TimeOfLastDownFractal_H1=Time[s];
break;
}//end if
}//end for
//ObjectDelete("Fractal Fibo Retracement");
//ObjectCreate("Fractal Fibo Retracement",OBJ_FIBO,0,TimeOfLastUpFractal,LastUpFractal,TimeOfLastDownFractal,LastDownFractal);
FractalEnvelope=MathRound((LastUpFractal-LastDownFractal)/mypoint);
FractalEnvelope_H1=MathRound((LastUpFractal_H1-LastDownFractal_H1)/mypoint);
midFractal=0;
midFractal=(LastUpFractal-((LastUpFractal-LastDownFractal)/2));
CurrentATR=MathRound(iATR(Symbol(), PERIOD_M15,4,0)/mypoint);
bool FractalIsInsideEnvelope=false;
if(Close[0]<=LastUpFractal_H1 && Close[0]>=LastDownFractal_H1){
FractalIsInsideEnvelope=true;
}//end if
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (Time_Opened_Protection == TRUE) {
for (int j = 0; j < OrdersTotal(); j++) {
OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY && (OrderMagicNumber() == Magic)) {
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_1 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_2 && Bid >= OrderOpenPrice() + pips_1 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Orange);
Print("Prot. Level 1 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_2 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_3 && Bid >= OrderOpenPrice() + pips_2 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Orange);
Print("Prot. Level 2 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_3 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_4 && Bid >= OrderOpenPrice() - pips_3 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Orange);
Print("Prot. Level 3 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_4 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_5 && Bid >= OrderOpenPrice() - pips_4 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Orange);
Print("Prot. Level 4 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_5 && Bid >= OrderOpenPrice() - pips_5 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Orange);
Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (DayOfWeek() == 5 && Hour()>=19) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Orange);
Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (OrderType() == OP_SELL && (OrderMagicNumber() == Magic)) {
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_1 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_2 && Ask <= OrderOpenPrice() - pips_1 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Orange);
Print("Prot. Level 1 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_2 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_3 && Ask <= OrderOpenPrice() - pips_2 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Orange);
Print("Prot. Level 2 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_3 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_4 && Ask <= OrderOpenPrice() + pips_3 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Orange);
Print("Prot. Level 3 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_4 && TimeCurrent() - OrderOpenTime() < 60 * LimitTime_5 && Ask <= OrderOpenPrice() + pips_4 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Orange);
Print("Prot. Level 4 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (TimeCurrent() - OrderOpenTime() > 60 * LimitTime_5 && Ask <= OrderOpenPrice() + pips_5 * mypoint) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Orange);
Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
if (DayOfWeek() == 5 && Hour()>=19) {
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, Orange);
Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), 4) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
" Profit : $ " + DoubleToStr(OrderProfit(), 2));
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Filter ANTI SERAKAH..
if(TargetBalance>0 && AccountEquity() >= TargetBalance)
{
ForceCloseAll();
return(0);
}
int BUY_OpenPosition = 0;
int SELL_OpenPosition = 0;
int TOTAL_OpenPosition = 0;
int Ticket = -1;
int cnt = 0;
for (cnt = 0; cnt < OrdersTotal(); cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderCloseTime()==0)
{
TOTAL_OpenPosition++;
if (OrderType() == OP_BUY)
{
BUY_OpenPosition++;
Last_BUY_OpenPrice = OrderOpenPrice();
}
if (OrderType() == OP_SELL)
{
SELL_OpenPosition++;
Last_SELL_OpenPrice = OrderOpenPrice();
}
}
}
if (Tradetime()==1)
{
if (Tradetime2()==1)
Comment("\nYour_Lucky_EURGBP_rdb_v1",
"\nIstirahat Dulu... Senin Pagi,Siang & Malam dan Jumat Siang & Malam (WIB)",
"\n\nMulai Trading Jam = ", OpenHour,
"\nSelesai Trading Jam = ", CloseHour,
"\nSekarang Jam = ", Hour(),
"\n\nL O T S = " + DoubleToStr(GetLots(),2),
"\nB A L A N C E = " + DoubleToStr(AccountBalance(),2),
"\nE Q U I T Y = " + DoubleToStr(AccountEquity(),2),
//saya salut dengan teman-teman coder...
//saya hanya orang pelosok yang tidak berpeluang trading karena keterbatasan dana
//karena itu... saya memutuskan untuk mengoprek/membuat EA dan indi untuk digunakan para trader...
//mohon kiranya jika anda menggunakan script ini... jangan menghapus kalimat dibawah... salam coder... semoga sukses...
"\n\n\nEA ini FREE dan terus dikembangkan...",
"\nAnda dapat konsultasi/diskusi untuk cara penggunaan ataupun pengembangannya",
"\nsebagai wujud partisipasi anda dalam mendukung berlanjutnya kreatifitas kami...",
"\ndiharapkan bantuan berupa donasi seikhlasnya...",
"\n\nhubungi : abdulrahman_maros@yahoo.com",
"\nAbdul Rahman ==> BCA : 7990026640 / LR : U7067895"
);
else
{
Comment("\nYour_Lucky_EURGBP_rdb_v1",
"\nIstirahat Dulu... Senin Pagi,Siang & Malam dan Jumat Siang & Malam (WIB)",
"\n\nMulai Trading Jam = ", OpenHour,
"\nSelesai Trading Jam = ", CloseHour,
"\nSekarang Jam = ", Hour(),
"\n\nL O T S = " + DoubleToStr(GetLots(),2),
"\nB A L A N C E = " + DoubleToStr(AccountBalance(),2),
"\nE Q U I T Y = " + DoubleToStr(AccountEquity(),2),
//saya salut dengan teman-teman coder...
//saya hanya orang pelosok yang tidak berpeluang trading karena keterbatasan dana
//karena itu... saya memutuskan untuk mengoprek/membuat EA dan indi untuk digunakan para trader...
//mohon kiranya jika anda menggunakan script ini... jangan menghapus kalimat dibawah... salam coder... semoga sukses...
"\n\n\nEA ini FREE dan terus dikembangkan...",
"\nAnda dapat konsultasi/diskusi untuk cara penggunaan ataupun pengembangannya",
"\nsebagai wujud partisipasi anda dalam mendukung berlanjutnya kreatifitas kami...",
"\ndiharapkan bantuan berupa donasi seikhlasnya...",
"\n\nhubungi : abdulrahman_maros@yahoo.com",
"\nAbdul Rahman ==> BCA : 7990026640 / LR : U7067895"
);
if(TOTAL_OpenPosition <= MaxTrades)
{
if(BarCount != Bars)
{
TradePerBar = 0;
BarCount = Bars;
}
RefreshRates();
if ((SELL_OpenPosition <= MaxTradePerPosition) && FractalIsInsideEnvelope && (TradePerBar <= MaxTradePerBar) && ((Ask - Last_SELL_OpenPrice >= SignalFilter * mypoint) || SELL_OpenPosition < 1 && Ask>=midFractal+(PriceFromFractal*mypoint)) && GetSignal(OP_SELL)==1)
{
if(AccountFreeMarginCheck(Symbol(),OP_SELL,GetLots())<=0 || GetLastError()==134)
{
Print("Bro, udah nggak punya Margin lagi nih, nggak bisa OP...");
}
else
{
if(HiddenTP==true)
Ticket = OrderSend(Symbol(),OP_SELL,GetLots(),Bid,Slippage,Bid + SL2 * mypoint,0,"MyLucky"+Symbol(),Magic,0,Red);
else
Ticket = OrderSend(Symbol(),OP_SELL,GetLots(),Bid,Slippage,Bid + SL2 * mypoint,Bid - TP * mypoint,"MyLucky"+Symbol(),Magic,0,Red);
if (Ticket > 0) TradePerBar++;
}
}
if ((BUY_OpenPosition <= MaxTradePerPosition) && FractalIsInsideEnvelope && (TradePerBar <= MaxTradePerBar) && ((Last_BUY_OpenPrice - Bid >= SignalFilter * mypoint ) || BUY_OpenPosition < 1 && Bid<=midFractal-(PriceFromFractal*mypoint)) && GetSignal(OP_BUY)==1)
{
if(AccountFreeMarginCheck(Symbol(),OP_BUY,GetLots())<=0 || GetLastError()==134)
{
Print("Bro, udah nggak punya Margin lagi nih, nggak bisa OP...");
}
else
{
if(HiddenTP==true)
Ticket = OrderSend(Symbol(),OP_BUY,GetLots(),Ask,Slippage,Ask - SL2 * mypoint, 0,"MyLucky"+Symbol(),Magic,0,Blue);
else
Ticket = OrderSend(Symbol(),OP_BUY,GetLots(),Ask,Slippage,Ask - SL2 * mypoint, Ask + TP * mypoint,"MyLucky"+Symbol(),Magic,0,Blue);
if (Ticket > 0) TradePerBar++;
}
}
}
}
}
else
Comment("\nYour_Lucky_EURGBP_rdb_v1",
"\nIstirahat Dulu... Senin Pagi,Siang & Malam dan Jumat Siang & Malam (WIB)",
"\n\nMulai Trading Jam = ", OpenHour,
"\nSelesai Trading Jam = ", CloseHour,
"\nSekarang Jam = ", Hour(),
"\n\nL O T S = " + DoubleToStr(GetLots(),2),
"\nB A L A N C E = " + DoubleToStr(AccountBalance(),2),
"\nE Q U I T Y = " + DoubleToStr(AccountEquity(),2),
//saya salut dengan teman-teman coder...
//saya hanya orang pelosok yang tidak berpeluang trading karena keterbatasan dana
//karena itu... saya memutuskan untuk mengoprek/membuat EA dan indi untuk digunakan para trader...
//mohon kiranya jika anda menggunakan script ini... jangan menghapus kalimat dibawah... salam coder... semoga sukses...
"\n\n\nEA ini FREE dan terus dikembangkan...",
"\nAnda dapat konsultasi/diskusi untuk cara penggunaan ataupun pengembangannya",
"\nsebagai wujud partisipasi anda dalam mendukung berlanjutnya kreatifitas kami...",
"\ndiharapkan bantuan berupa donasi seikhlasnya...",
"\n\nhubungi : abdulrahman_maros@yahoo.com",
"\nAbdul Rahman ==> BCA : 7990026640 / LR : U7067895"
);
CloseAll();
return(0);
}
//-----------------------------------------------------------------------------
int GetSignal(int OP)
{
int signal=0;
if (OP==OP_BUY)
{
if(iClose(Symbol(),0,0)<iMA(Symbol(),0,IMA_PERIOD,0,MODE_SMA,PRICE_OPEN,0)) signal=1;
}
else if (OP==OP_SELL)
{
if(iClose(Symbol(),0,0)>iMA(Symbol(),0,IMA_PERIOD,0,MODE_SMA,PRICE_OPEN,0)) signal=1;
}
return(signal);
}
//-----------------------------------------------------------------------------
void CloseAll()
{
for (int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderCloseTime()==0)
{
if (SecurProfit()==1)
{
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
}
else
{
if (Tradetime() == 0)
{
if((OrderType()==OP_BUY) && (((OrderOpenPrice()-Ask)/mypoint) > SL1))
OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
if((OrderType()==OP_SELL) && (((Bid-OrderOpenPrice())/mypoint) > SL1))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
}
else
{
if((OrderType()==OP_BUY) && (((OrderOpenPrice()-Ask)/mypoint) > SL2))
OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
if((OrderType()==OP_SELL) && (((Bid-OrderOpenPrice())/mypoint) > SL2))
OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
}
}
}
}
}
//-----------------------------------------------------------------------------
void ForceCloseAll()
{
for (int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderCloseTime()==0)
{
if(OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,Blue);
if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
}
}
}
//-----------------------------------------------------------------------------
int Tradetime()
{
int TradingTime=0;
if (Hour() <= CloseHour || Hour() >= OpenHour)
TradingTime=1;
return(TradingTime);
}
//-----------------------------------------------------------------------------
int Tradetime2()
{
int TradingTime=0;
if ((DayOfWeek() == 1 && Hour() <= OpenHour) || (DayOfWeek() == 5 && Hour() >= CloseHour))
TradingTime=1;
return(TradingTime);
}
//-----------------------------------------------------------------------------
double GetLots()
{
double lots,MD,RM,FMM,MinLots,LotSize; int lotsdigit;
LotSize = MarketInfo(Symbol(), MODE_LOTSIZE);
MD = NormalizeDouble(MarketInfo(Symbol(), MODE_LOTSTEP), 2);
RM = NormalizeDouble(MarketInfo(Symbol(), MODE_MARGINREQUIRED), 4);
FMM = (RM+5)*100;
if(LotsDigit==0)
{
if (MD==0.01) lotsdigit=2;
else lotsdigit=1;
LotsDigit=lotsdigit;
}
//if (MM==true) lots = NormalizeDouble(AccountFreeMargin()/(FMM/Risk)-0.05,LotsDigit);
if (MM==true) lots = NormalizeDouble((AccountFreeMargin()*Risk/LotSize)/MaxTrades,LotsDigit);
else lots=Lots;
MinLots=NormalizeDouble(MarketInfo(Symbol(),MODE_MINLOT),2);
//if (LotsDigit == 2) MinLots = 0.01;
if (lots < MinLots) lots = MinLots;
if (lots > MaxLots) lots = MaxLots;
return (lots);
}
//-----------------------------------------------------------------------------
double TickValue()
{
double tv;
tv = NormalizeDouble(MarketInfo(Symbol(), MODE_TICKVALUE), 4);
return(tv);
}
//-----------------------------------------------------------------------------
int SecurProfit()
{
int sp=0;
if (OrderProfit()>(TickValue()*GetLots()*TP)) sp=1;
return(sp);
}
//-----------------------------------------------------------------------------
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
---