تمام نفس النتيجة لأن في بداية التشغيل وقبل الصفقات يكونو متساويين ثم يختلف الرقمين بعد الصفقات ، حتعدل نفس الكود في قائمة Start
كود PHP:if(AccountEquity()>=aEquity) // { aEquity=AccountEquity()*1.1; CloseAll }
Printable View
بارك الله تعالى فيك استاذى الكريم
انا الان اجربها وهقولك على المفيد
وشكرا على السرعه فى الرد :eh_s(7):
تقبل ودى حبيبى
نجحت ... :015: :drive1:
ماشاء الله تبارك الله
بارك الله تعالى فيك استاذى
جزاك الله تعالى خيراا على ماتقدمه من مساعدات لجميع الاخوة هنا انت والاستاذ اسامه مستر دولار
تقبل ودى استاذى الكريم جميل
السلام عليكم و رحمة الله و بركاته
عندي استفسار لو سمحتم
الان لو الواحد عنده اكسبيرت نسية الصفقات الرابحه الى الخاسره ،لنفترض 1 الى 2،يعني بيربح مره و بيخسر مرتين ،و لنفترض انه دخوله للصفقات بستوب و هدف معين حسب شروط معينه
هل من الممكن برمجة هدا الاكسبيرت كالتالي
ان يدخل بلوت اولي معين و بعدين لما يخسر المره الاولى يدخل بمضاعفه و لما يخسر المره التانيه يضاعف مره تانيه ،حتى يحقق الهدف ،هدا كله على فرض انه الاكسبيرت بينجح مره و يخسر مرتين ،و لما يصادف انه خسر مرتين ورا بعض،برجع الاكسبيرت من اول و جديد ،يدخل على اساس اللوت الاول
فكرتي من هدا السؤال لو انه ممكن يصير هدا الشي برمجيا ،ما اعتقد انه في اكسبيرت معتدل ما بيجيب لصاحبه التارجت الشهري
ان شاء الله اني قدرت اوصل السؤال صح
و اسف على ازعاجكم
و االله يوفق الجميع
السلام عليكم ..
عودة مرة اخري اخي واستاذي جميل ..
وما زلت عالقا مع الشموع ..
بالنسبة للشراء مثلا ..
اريد ان اجعل الاستوب هو بداية الشمعة السابقة .. وبهذا يكون الاستوب متحرك فكل شمعة صاعدة يتحرك الاستوب الي
بداية الشمعة المنتهية
وهنا اعتقد اننا سنتطرق الي الامر OrderModify والتي لا اعلم كيفية استخدامها .. وياريت حضرتك تدلني علي موضوع يشرح هذا الامر
ولكن اولا ارجو ان تصحح لي هل سنعرف متغير للاغلاق ثم سنقارنه في الدالة استارت بـ open1 ؟؟
ام سنعرف الاستوب ثم نساويه بـ open1 مباشرة وبصورة بسيطة ؟؟
وجزاك الله كل خير
وعليكم السلام عليكم و رحمة الله و بركاته
نعم فكرة المضاعفات معروفه ومبرمجه بأكثر من فكرة في إكسبرتات كثيره
بالنسبه للطريقه التي تريدها فسوف تقوم بعمل دالة لمعرفة آخر عدد صفقات خاسره متتاليه
مثال
ثم تقوم بعمل دالة لمعرفة حجم لوت آخر صفقهكود PHP:int LostOrdersNum()
{
int Lost;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderProfit()<0)Lost++;
else return(Lost);
}
}
return(Lost);
}
وسوف تضع في شروط الدخولكود PHP:double LastOrderLot()
{
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
return(OrderLots());
}
}
return(0);
}
فإذا كانت عدد الصفقات الخاسره 2 سوف يبدأ باللوت الإبتدائي Lots أما إذا كان عدد الصفقات الخاسره 1 فسوف يضاعف بحجم اللوت التاليكود PHP:if(LostOrdersNum()==2||LostOrdersNum()==0)NewLot=Lots;
else if(LostOrdersNum()>0)NewLot=LastOrderLot()*2;
نعم سوف تستخدم الداله OrderModify
الفكره في أنك ستمر على كل صفقه مفتوحه وتقارن هل الأستوب لها يساوي إفتتاح الشمعه السابقه أم لا فإذا لم تكن تساويها تقوم بعمل مودفاي للداله ووضع الاستوب الجديد
مثال
في البداية قمت بالبحث عن الصفقات المفتوحه ثم إذا كانت الصفقة شراء سوف يقارن أولا هل الأستوب لوز للصفقه لا يساوي إفتتاح الشمعه السابقه حتى إذا كانت تساويها لا يقوم بتعديل الأمر بدون سببكود PHP:oid Modify_SL_BY_Open()
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
double SL=OrderStopLoss();int ticket=OrderTicket();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(SL!=Open[1]&&Bid>Open[1])
{
OrderModify(ticket,OrderOpenPrice(),SL,OrderTakeProfit(),0);
}
}
if(OrderType()==OP_SELL)
{
if(SL!=Open[1]&&Ask<Open[1])
{
OrderModify(ticket,OrderOpenPrice(),SL,OrderTakeProfit(),0);
}
}
}
}
}
ثم يقارن هل السعر أكبر من الأستوب لوز في حالة الشراء فيقوم بعمل مودفاي للأمر ويعدل الأستوب لوز
والعكس بالنسبه لأمر البيع
السلام عليكم ..
اساتذتي الاجلاء ..
عندي يظهر خطأ ..
end_of_progrsm\'
unbalanced left parenthesis
مش عارف ايه الخطأ واي قوس يتحدث عنه ؟؟