كود PHP:
#property copyright "Idea by Supaplex Programing by waddah attar"
#property link "waddahattar@hotmail.com"
//خصائص الاكسبيرت
extern int TakeProfit=80;
extern int StopLoss=80;
extern double FirstLots=0.1;
extern bool OpenBuy=true;
extern int LotsDouble=2;
extern int MagicNumber = 2008;
int Ticket1,Ticket2;
int hour;
extern int StartTime = 0 ;
extern int EndTime = 23;
int t1,t2,gT1,gT2;
int handle;
int init()
{
Comment("Waddah Attar Supaplex");
return(0);
}
int deinit()
{
Comment("");
return(0);
}
int start()
{
hour = TimeHour(CurTime());
Procces_1();
return(0);
}
//****************************************************************************************************************
// الوظيفة الخاصة بفتح عقد الشراء مع مضاعفة إن اقتضى الأمر
void OpenBUYOrder(double Lots,int Magic)
{
double sl,tp;
sl=Ask-StopLoss*Point;
tp=Ask+TakeProfit*Point;
if (Lots==FirstLots && hour>=StartTime && hour<=EndTime)
{
Ticket1=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,tp,"",Magic,0,Green);
if(Ticket1>0)
{
gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+StopLoss*Point,sl-TakeProfit*Point,"",Magic,0,Green);
gT2=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+StopLoss*Point,sl-(TakeProfit*Point),"",Magic,0,Green);
}
else
{
Alert("خطأ شراء "," Err = ",GetLastError()," Price = ",Ask," Lots = ",Lots);
}
}
}
// الوظيفة الخاصة بفتح عقد البيع مع مضاعفة إن اقتضى الأمر
void OpenSELLOrder(double Lots,int Magic)
{
double sl,tp;
sl=Bid+StopLoss*Point;
tp=Bid-TakeProfit*Point;
if (Lots==FirstLots && hour>=StartTime && hour<=EndTime)
{
Ticket1=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,tp,"",Magic,0,Red);
if(Ticket1>0)
{
gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots,sl,3,sl-StopLoss*Point,sl+TakeProfit*Point,"",Magic,0,Green);
gT2=OrderSend(Symbol(),OP_BUYSTOP,Lots,sl,3,sl-StopLoss*Point,sl+(TakeProfit*Point),"",Magic,0,Green);
}
else
{
Alert("خطأ بيع "," Err = ",GetLastError()," Price = ",Bid," Lots = ",Lots);
}
}
}
// الوظيفة الرئيسية
int Procces_1()
{
double slot,ssl,stp,bw;
// في حال لا يوجد صفقات حالية وكان هناك صفقات معلقة فاحذفها لأنه لا داعي لها
if (MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==2)
{
DeletePendingOrders(MagicNumber);
return(0);
}
// في حال لا يوجد صفقات حالية أو صفقات معلقة فقم بفتح صفقة بيع أو صفقة شراء حسب رغبة المستخدم
if (MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==0 && hour>=StartTime && hour<=EndTime)
{
if (OpenBuy)
{
OpenBUYOrder(FirstLots,MagicNumber);
}
else
{
OpenSELLOrder(FirstLots,MagicNumber);
}
return(0);
}
// في حال تم فتح صفقة بيع أو شراء يجب وضع صفقات معلقة معاكسة لها نوعا واتجاها
if (MyRealOrdersTotal(MagicNumber)==2 && MyPendingOrdersTotal(MagicNumber)==0)
{
OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
slot=OrderLots()*LotsDouble;
ssl=OrderStopLoss();
stp=OrderTakeProfit();
if (OrderType()==OP_BUY)
{
gT1=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+StopLoss*Point,ssl-TakeProfit*Point,"",MagicNumber,0,Green);
gT2=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+StopLoss*Point,ssl