لكن قمت بعمل فورورد تست على حساب ديمو ولم يفتح أي عملية
يقوم فقط بإعطاء تنبيه صوتي عند تحقق الشرط
Printable View
أستاذنا الكبير أسامة
كيف ممكن نخلي الاكسبيرت يعرف انه تم اغلاق الصفقة عن طريق ضرب التريلنج ستوب
وبارك الله بك أخي الكريم
السلام عليكم ورحمه الله
اتمنى ان تكون بخير اخ اسامه
عندي سؤاليين:
1-لماذا عند عمل باك تست لفتره طويله مثلا من 2005 الى 2009 يوقف الاكسبيرت بالرغم من ان الرصيد كافي ولم يظهر اي خطاء للاكسييرت في journal وكذلك تم ضبط عدد الشمعات في الشارت الى اقصى حد مثلا 99999999.
2-لتفترض عند عمل باك تست لفتره مثلا من 2005 الى 2008 ربحت 5000 وعند عمل الباك تيست بالتجزئه كل عام على حده اي 2005 لوحده وكذلك 2006 وحيدا وكذلك 2007 و2008 منفصله . لماذا لم احصل الى نفس الربح قد يزيد اوينقص ؟
وعليكم السلام ورحمة الله وبركاته
في هذه الحاله يجب أن تضع شرط
لأنك بهذه الحاله الإكسبرت ما زال لم يفتح اي صفقة لكن هل معنى هذا أنه لم يحدث أي تقاطعات من قبل بالعكس هناك مئات التقاطعات التي حدثت من قبلكود PHP:
FakeOpened()>Orders||LastOpenedOrder()==0
أما إذا أردت حساب التقاطعات من بداية تفعيل الإكسبرت
فقم بتعريف متغير خارج الداله start مثلا
وبداخل init عند بداية عمل الإكسبرت سوف يجعلكود PHP:
datetime FirstTime;
ثم سوف تكون الداله الخاصة بحساب آخر صفقة مفتوحهكود PHP:
FirstTime=Time[0];
في هذه الحاله إذا لم تكن هناك صفقات مفتوحه بعد فسوف تعود بقيمة توقيت تفعيل الإكسبرت على الشارتكود PHP:
datetime LastOpenedOrder(){
for(int i=OrdersHistoryTotal();i>0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
return(OrderOpenTime());
}
}
return(FirstTime);
}
إذا أعطى تنبيه صوتي فإن الشروط تتحقق لكن غالبا يحدث خطأ عند محاولة فتح الصفقه وأعتقد السبب هو إستخدام خاصية إدارة المال جرب تعطيلها
وللتأكد أيضا من الخطأ راجع خانة Experts و خانة Journal عندما يعطي التنبيه ومن رقم الخطأ الذي يظهر يمكنك معرفة نوع الخطأ من
http://docs.mql4.com/constants/errors
يمكنك عمل دالة تقارن إذا الصفقة أغلقت أقل من الهدف الرئيسي فهذا يعني أنها أغلقت على التريلينج ستوب
ويمكنك إستخدام الداله GlobalVariableSet لحفظ الهدف الرئيسي بحيث مثلا بمجرد فتح الصفقه سوف تجعل كمثال
ثم عمل الداله يكونكود PHP:
OrderSend(Symbol(),OP_SELL,newLot,Bid,3,SL,TP,"EA",MagicNumber,0,Red);
GlobalVariableSet("SellTP",TP); OrderSend(Symbol(),OP_SELL,newLot,Bid,3,SL,TP,"EA",MagicNumber,0,Red);
GlobalVariableSet("SellTP",TP);
كود PHP:
bool SellClosed(){
for(int i=OrdersHistoryTotal();i>0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderClosePrice()!=GlobalVariableGet("SellTP"))return(false);
}
}
return(true);
}
ليس شرط أن يتوقف الإكسبرت سواء الفتره طويله أو قصيره غالبا السبب أن البيانات التاريخيه ناقصه لكن يمكن عمل باك تست حتى من سنه 2001 إلى 2012 طالما أن البيانات التاريخيه لديك
السؤال الثاني طبعا إذا كنت تعتمد على خاصية إدارة المال فلن يكون نفس الربح لأن حجم اللوت سيختلف لكن إذا قمت بعمل باك تست كل سنه على حده بنفس حجم اللوت فقد تجد الإختلاف بسيط لأن مثلا بداية فتح الصفقه قد يختلف في بعض الإكسبرتات مثلا أن الإكسبرت لا يدخل أكثر من صفقه في نفس الوقت ففي نهاية عام 2005 كان هناك صفقه مفتوحه لذلك لم يفتح الصفقه الجديده في بداية عام 2006 وهكذا إختلفت الصفقات
لكن إذا جربت قم بجمع الخساره + الربح لكل سنه على حده فسوف تجد أن الربح تقريبا متساوي إلا في بعض الحالات كما ذكرت
الأخ المحترم : أ . أسامه - مستر دولار
السلام عليكم ورحمة الله وبركاته
فضلا وتكرما منك لا أمرا
مرفق المؤشر المستخدم فى موضوع المتاجره الزمنيه السعريه للدكتور الفاضل حماده
أريد تعديل المؤشر عن طريق أن نحذف منه المتغيرين التاليين
Lines Every
Factor Number
ونضيف بدلا منهما متغير واحد فقط وليكن إسمه
Price
,وتظل بقيه المتغيرات كما هى
حيث سنضع فى هذا المتغير السعر الذى إرتد منه السعر ويقوم المؤشر- بحساب الزاويه ورسمها كما كان يفعل المؤشر الأصلى - عن طريق المعادله التاليه :
1- لو كانت قيمه المتغير is_this_the_low_price = False
(SQRT(The_high_or_low_price)-SQRT(Price))* 180
where "the_high_or_low_price"
هو المتغير الموجود بالمؤشر بالفعل
price
هو المتغير الذى سوف نضيفه بدلا من المتغيرين الذين سوف نحذفهما
2- لو كانت قيمه المتغير is_this_the_low_price = True
(SQRT(Price)-SQRT(The_high_or_low_price))* 180
مرفق صوره للتوضيح أكثر
شكرا مقدما
حبيبى أستاذ اسامه
فتحت موضوع لهذا المؤشر على الرابط
https://forum.arabictrader.com/t142893.html
برجاء متابعتك
شكرا مقدما
أستاذ أسامة
you 've a new message
:eh_s(7):