النتائج 1 إلى 2 من 2
- 14-12-2017, 04:54 AM #1
طلب إكسبيرت من مستر دولار أو فيلسوف البادية مشابه لهذا الإكسبيرت
بسم الله الرحمان الرحيم
السلام عليكم ورحمة الله وبركاته
أريد إكسبيرت مشابه للإكسبيرت المرفق أو تصحيح الأخطاء الموجودة في الإكسبيرت المرفق وأعتقد لا يمكن تصحيحها لأنه مغلق الكود لذلك أفضل عمل إكسبيرت جديد
الفكرة :
بكل بساطة نضام سوبلكس المعروف يعني بيع شراء بيع شراء ...........
لكن أريد الهذف والستوب واللوت متدرج Level بحيث أعدل القيم على راحتي يعني بكل بساطة إكسبيرت سوبلكس مفصل كل صفقة لها هذف وستوب ولوت خاص بها
ما هي الأخطاء الموجودة في الإكسبيرت المرفق ؟
عند تفعيل خيار trailingstopzero يظهر خطأ في أحد الصفقات وهذا يزعج البروكر ويطالب بغلق الإكسبيرت
لو كان ممكن عمل إكسبيرت مفتوح الكود وبكون واضح وبسيط حتى أستطيع أن أضيف عليه أو أعدل فيه في المستقبل لأني ناوي أضيف عليه خصائص أكثر
ما هو خيار trailingstopzero ؟
هو عبارة عن خيار TRUE/FALSE عند تفعيله يتحرك الستوب كلما تحرك السعر نحو الهذف ويبقى محافظا على عدد نقط الستوب لوز يعني بكل بساطة هو trailingstop يتبع السعر من نقطته يعني لا يقفز لنقطة الدخول كتتبع الربح العادي لااااااااااااااااااااا
بل يبدأ يشتغل من مكانه ويطارد السعر من مكانه دون إنتظار ولا يقفز لنقطة الدخول ممكن تشغل الخيار حتى تفهم طريقة عمله لكن في أحد الصفقات يحدث فيها مشكل ويظهر خطأ 130
كمساعدة مني هذه مصفوفة اللوتات ولكن لا أتوفر على مصفوفة الهذف الستوب
المتغيرات الخارجية
كود PHP:input double Lots =0.05,
Lots_1=0.1,
Lots_2=0.14,
Lots_3=0.18,
Lots_4=0.22,
Lots_5=0.26,
Lots_6=0.33,
Lots_7=0.44,
Lots_8=0.58,
Lots_9=0.78,
Lots_10=1.04,
Lots_11=1.38,
Lots_12=1.45,
Lots_13=1.53,
Lots_14=1.64,
Lots_15=1.78,
Lots_16=2.04,
Lots_17=2.38,
Lots_18=2.45,
Lots_19=2.53,
Lots_20=2.64;
كود PHP:double chain[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
كود PHP:int LEVEL()
{
int c;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
comment=OrderComment();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo)
{
StringReplace(comment,"[sl]","");
c=StrToInteger(comment);
return(c);
}
}
return(c);
}
كود PHP:void SellOrder()
{
chain[1]=Lots_1;
chain[2]=Lots_2;
chain[3]=Lots_3;
chain[4]=Lots_4;
chain[5]=Lots_5;
chain[6]=Lots_6;
chain[7]=Lots_7;
chain[8]=Lots_8;
chain[9]=Lots_9;
chain[10]=Lots_10;
chain[11]=Lots_11;
chain[12]=Lots_12;
chain[13]=Lots_13;
chain[14]=Lots_14;
chain[15]=Lots_15;
chain[16]=Lots_16;
chain[17]=Lots_17;
chain[18]=Lots_18;
chain[19]=Lots_19;
chain[20]=Lots_20;
double NewLots,TP,SL;
string comment;
if(LastOrder("Profit")<0)
{
NewLots=chain[LEVEL()+1];
comment=DoubleToStr(LEVEL()+1,0);
}
if(LastOrder("Profit")>=0){NewLots=Lots;comment="0";}
if(Stoploss!=0){SL=Bid+Stoploss*point;}else SL=0;
if(Takeprofit!=0){TP=Bid-Takeprofit*point;}else TP=0;
tk=OrderSend(Symbol(),OP_SELL,NewLots,NormalizeDouble(Bid,Digits),5*Q,SL,TP,comment,MagicNo,0,Red);
}
void BuyOrder()
{
chain[1]=Lots_1;
chain[2]=Lots_2;
chain[3]=Lots_3;
chain[4]=Lots_4;
chain[5]=Lots_5;
chain[6]=Lots_6;
chain[7]=Lots_7;
chain[8]=Lots_8;
chain[9]=Lots_9;
chain[10]=Lots_10;
chain[11]=Lots_11;
chain[12]=Lots_12;
chain[13]=Lots_13;
chain[14]=Lots_14;
chain[15]=Lots_15;
chain[16]=Lots_16;
chain[17]=Lots_17;
chain[18]=Lots_18;
chain[19]=Lots_19;
chain[20]=Lots_20;
double NewLots,TP,SL;
string comment;
if(LastOrder("Profit")<0)
{
NewLots=chain[LEVEL()+1];
comment=DoubleToStr(LEVEL()+1,0);
}
if(LastOrder("Profit")>=0){NewLots=Lots;comment="0";}
if(Stoploss!=0){SL=Ask-Stoploss*point;}else SL=0;
if(Takeprofit!=0){TP=Ask+Takeprofit*point;}else TP=0;
tk=OrderSend(Symbol(),OP_BUY,NewLots,NormalizeDouble(Ask,Digits),5*Q,SL,TP,comment,MagicNo,0,Blue);
}
رجاءا برمجة إكسبيرت مشابه للمرفق مع إصلاح الخطأ
جزاكم الله عنا خيرا
- 17-12-2017, 01:35 AM #2
هل من مساعد