شكرا على ردك أخي XPNET ،
و أتمنى أن نلمس هذه الأرباح على أرض الواقع وليس فقط على الديمو.
و الحقيقه أني لا أستطيع التقليل من شأنك لما أحبه فيك من أفكار منيره وخير لأخوانك،
وعساكم دائما على القوه.
Printable View
شكرا على ردك أخي XPNET ،
و أتمنى أن نلمس هذه الأرباح على أرض الواقع وليس فقط على الديمو.
و الحقيقه أني لا أستطيع التقليل من شأنك لما أحبه فيك من أفكار منيره وخير لأخوانك،
وعساكم دائما على القوه.
شكرا لك اخي الكريم
ولكن الاكسبيرت لا يعمل عندي على برامج ميتا (كراون فوركس + al trade)
ولا ادري اين المشكلة ، من الاكسبيرت او من برامج الميتا مع العلم ان لدي الكثير من الاكسبيرتات تعمل على هذه البرامج
الرجاء ابلاغي ما اعدادات الاكسبيرت وما برنامج الميتا الذي اشتغل عليه
استاذ وضاح ..
ماهى اخر اخبار التعديلات على الاكسبيرت
وانا مثلك يعطينى اشارة خطا واتوقع السبب من ان نضام الرافعه والعقود مختلف عن بقية عائلة التريدر
وبصراحه هذه اول تجربه لى على الاكسبيرتات وكنت قد طلبت منك أخ وجدى ملف اكسل كى استعمله فى حساب هذه العمليات اما الان فاقول:drive1: ضع القياده للاكسبيرت وتمتع بوقت دافئ مع العائله :0031:
تحية طيبة اخي الكريم استاذ وضاح
هل يمكن اضافة خاصية الدخول وبداية عمل الاكسبيرت عند وصول السعر عند منطقة محددةمسبقا سواء بيع اوشراء
لك كل الود وسلمت اخي العزيز:eh_s(7):
جزاكم الله إخواني علىالمجهود الأكثر من الرائع بارك الله لكم إخواني بس أنا كنت عايز أسالكم المفروض الحساب المناسب يكون كام عشان يشتغل عليه الأسكريبت بارك الله فيكم بإعدادات الأخ
xpnet
تعديل وتطوير جديد على كود الاكسبيرت
أضفت له تقنية جديدة تجبره على فتح الأوردرات المعلقة مهما تعثر السيرفر في الاستجابة له .
هو الآن سيظل يحاول حتى ينجح وعندما ينجح في فتح الصفقة ينتقل لما بعدها وهكذا .
هذا هو الكود الجديد :
انتظروا التعديلات والتطويرات الجديدةكود PHP:
#property copyright "Idea by Supaplex Programing by waddah attar"
#property link "[email protected]"
//خصائص الاكسبيرت
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 t1,t2,gT1,gT2;
int handle;
int init()
{
Comment("Waddah Attar Supaplex");
return(0);
}
int deinit()
{
Comment("");
return(0);
}
int start()
{
Procces_1();
return(0);
}
//****************************************************************************************************************
// الوظيفة الخاصة بفتح عقد الشراء مع مضاعفة إن اقتضى الأمر
void OpenBUYOrder(double Lots,int Magic)
{
double sl,tp;
sl=Ask-StopLoss*Point;
tp=Ask+TakeProfit*Point;
if (Lots==FirstLots)
{
Ticket1=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,tp,"",Magic,0,Green);
if(Ticket1>0)
{
gT1=0;
while(gT1==0)
{
Sleep(5000);
gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+StopLoss*Point,sl-TakeProfit*Point,"",Magic,0,Green);
Sleep(5000);
}
gT2=0;
while(gT2==0)
{
Sleep(5000);
gT2=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+StopLoss*Point,sl-(TakeProfit*Point),"",Magic,0,Green);
Sleep(5000);
}
}
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)
{
Ticket1=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,tp,"",Magic,0,Red);
if(Ticket1>0)
{
gT1=0;
while(gT1==0)
{
Sleep(5000);
gT1=OrderSend(Symbol(),OP_BUYSTOP,Lots,sl,3,sl-StopLoss*Point,sl+TakeProfit*Point,"",Magic,0,Green);
Sleep(5000);
}
gT1=0;
while(gT2==0)
{
Sleep(5000);
gT2=OrderSend(Symbol(),OP_BUYSTOP,Lots,sl,3,sl-StopLoss*Point,sl+(TakeProfit*Point),"",Magic,0,Green);
Sleep(5000);
}
}
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)
{
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=0;
while(gT1==0)
{
Sleep(5000);
gT1=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+StopLoss*Point,ssl-TakeProfit*Point,"",MagicNumber,0,Green);
Sleep(5000);
}
gT2=0;
while(gT2==0)
{
Sleep(5000);
gT2=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+StopLoss*Point,ssl-(TakeProfit*Point),"",MagicNumber,0,Green);
Sleep(5000);
}
}
if (OrderType()==OP_SELL)
{
gT1=0;
while(gT1==0)
{
Sleep(5000);
gT1=OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,ssl-StopLoss*Point,ssl+TakeProfit*Point,"",MagicNumber,0,Green);
Sleep(5000);
}
gT2=0;
while(gT2==0)
{
Sleep(5000);
gT2=OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,ssl-StopLoss*Point,ssl+(TakeProfit*Point),"",MagicNumber,0,Green);
Sleep(5000);
}
}
}
return(0);
}
// وظيفة لحساب عدد الصفقات الحالية
int MyRealOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
t1=-1;
t2=-1;
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
if (t1==-1)
{
t1=OrderTicket();
}
else
{
if (t2==-1)
{
t2=OrderTicket();
}
}
c++;
}
}
return(c);
}
// وظيفة لحساب عدد الصفقات المعلقة فقط
int MyPendingOrdersTotal(int Magic)
{
int c=0;
int total = OrdersTotal();
for (int cnt = 0 ; cnt < total ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP))
{
c++;
}
}
return(c);
}
// وظيفة لحذف الصفقات المعلقة
int DeletePendingOrders(int Magic)
{
int total = OrdersTotal();
for (int cnt = total - 1; cnt >= 0; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
مشكور أستاذنا وضاح على الرد جزاك الله خيرآ بس أخي وضاح حتى لو ققلليلنا من قيمة اللوت شويه
هل هينفع نقلل من قيمة الرصيد مشكور أستاذي وضاح تاني على ردك ربنا يبارك فيك أخي يعني سبحان الله الواحد مش عارف يقلك إيه أخي:inlove: