رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
الاستاذ مستر دولار حفظه الله
لاحظت في الاكسبرت انه يجب علي ان اغير قمية Distance_BuyOrder لتتفق مع السبريد الخاص بكل عملة واضيف عليها واحد لكني وجدت انها عملية صعب حسابها يدويا
فحاولت ان استفيد من الامر MarketInfo للحصول على قيمة السبريد واضيف عليها قيمة Distance_BuyOrder الموجودة في الاعدادات وهي واحد
وذلك من خلال الامر التالي ولكن كلما اعمل كومبايل تاتيني رسالة الخطأ التالية
MarketInfo initialization expected مع اني نسختها من الhelp يعني مافيهاش اخطاء املائية فاين ممكن ان يكون الخطأ
http://m002.maktoob.com/alfrasha/ups...909/493945.gif
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة محمد بن حامد
الاستاذ مستر دولار حفظه الله
لاحظت في الاكسبرت انه يجب علي ان اغير قمية Distance_BuyOrder لتتفق مع السبريد الخاص بكل عملة واضيف عليها واحد لكني وجدت انها عملية صعب حسابها يدويا
فحاولت ان استفيد من الامر MarketInfo للحصول على قيمة السبريد واضيف عليها قيمة Distance_BuyOrder الموجودة في الاعدادات وهي واحد
وذلك من خلال الامر التالي ولكن كلما اعمل كومبايل تاتيني رسالة الخطأ التالية
MarketInfo initialization expected مع اني نسختها من الhelp يعني مافيهاش اخطاء املائية فاين ممكن ان يكون الخطأ
http://m002.maktoob.com/alfrasha/ups...909/493945.gif
ضع هذا الكود بداخل الداله init أو بداخل الداله start
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
ضع هذا الكود بداخل الداله init أو بداخل الداله start
بارك الله فيك يامستر دولار ، احببت ان اعرف ليه واجهتنا مشكلة حينما عرفنا هذا المتغير خارج الدالتين init ,start مع انه يوجد تعريف لمتغيرات اخرى خارج هاتين الدالتين وتم التعرف عليها بدون مشاكل
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة محمد بن حامد
بارك الله فيك يامستر دولار ، احببت ان اعرف ليه واجهتنا مشكلة حينما عرفنا هذا المتغير خارج الدالتين init ,start مع انه يوجد تعريف لمتغيرات اخرى خارج هاتين الدالتين وتم التعرف عليها بدون مشاكل
في القسم الخاص بالمتغيرات الخارجيه لا يمكن كتابة عمليات حسابيه أو متغيرات غير ثابته أيضا لا يمكن إستدعاء متغير تم تعريفه في هذا القسم وإعطاءه قيمه جديده بل يجب أن يتم ذلك بداخل الداله ستارت أو اللداله إينيت
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
الاخ العزيز / مستر دولار
من فضلك مطلوب قالب تعليميى احترافى لاكسيبرت يعتمد على مؤشر الباربوليك بحيث يكون الدخول فى الصفقات بناء على ظهور اشارة من المؤشر على فريم 4 ساعات وفريم 1 ساعة معا طبع مع كافة الاضافات الخاصة بتحديد الهدف ووقف الخسارة وغيرها من الاضافات الجميلة بتاعتك
وبارك الله فيك
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة faisal
الاخ العزيز / مستر دولار
من فضلك مطلوب قالب تعليميى احترافى لاكسيبرت يعتمد على مؤشر الباربوليك بحيث يكون الدخول فى الصفقات بناء على ظهور اشارة من المؤشر على فريم 4 ساعات وفريم 1 ساعة معا طبع مع كافة الاضافات الخاصة بتحديد الهدف ووقف الخسارة وغيرها من الاضافات الجميلة بتاعتك
وبارك الله فيك
بإذن الله سأشرح تصميم الإكسبرت في موضوع مستقل بناء على طلبك
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
ساعدني يامستر دولار ، اريد ان اكتب كود يحدد اذا كانت الشمعة ليموزين ام لا
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة محمد بن حامد
ساعدني يامستر دولار ، اريد ان اكتب كود يحدد اذا كانت الشمعة ليموزين ام لا
ستحتاج أولا إلى معرفة طول الشمعه ومقارنتها بالقيمه التي تحددها لشمعة الليموزين
كود PHP:
double b=(MathAbs(Open[1]-Close[1])/Point);
ثم تقارن قيمة b بالقيمه التي حددتها لشمعة الليموزين سواء 50 نقطه أو 100 نقطه
مثلا
فإذا كان طول الشمعه أكبر من 100 نقطه فسوف ينفذ الشرط الذي قمت بوضعه
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
ستحتاج أولا إلى معرفة طول الشمعه ومقارنتها بالقيمه التي تحددها لشمعة الليموزين
كود PHP:
double b=(MathAbs(Open[1]-Close[1])/Point);
ثم تقارن قيمة b بالقيمه التي حددتها لشمعة الليموزين سواء 50 نقطه أو 100 نقطه
مثلا
فإذا كان طول الشمعه أكبر من 100 نقطه فسوف ينفذ الشرط الذي قمت بوضعه
احسنت بارك الله فيك ، طيب هل يوجد معيار لتحديد طول الشمعة لنعرف انها ليموزين ام لا ، انت حددت 50 او 100 وهذا يعني انه لا يوجد معيار محدد اليس كذلك
اذن ربما استطيع ان اقارن طول الشمعة بالشموع السابقة فاذا كان طول الشمعة شاذا عن اطوال الشموع السابقة بمقدار كبير فانه يمكننا اعتبارها شمعة ليموزين حتى لو لم تصل الى 50 او 100 نقطة
لان طول الشمعة يتأثر بالفريم الذي نعمل عليه ، فمثلا الشمعة الطويلة في فريم الدقيقة قد لا تعتبر طويلة في فريم الاربع ساعات
هل توافقني يامستر دولار ام ان هذا التحليل غير صحيح
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة محمد بن حامد
احسنت بارك الله فيك ، طيب هل يوجد معيار لتحديد طول الشمعة لنعرف انها ليموزين ام لا ، انت حددت 50 او 100 وهذا يعني انه لا يوجد معيار محدد اليس كذلك
اذن ربما استطيع ان اقارن طول الشمعة بالشموع السابقة فاذا كان طول الشمعة شاذا عن اطوال الشموع السابقة بمقدار كبير فانه يمكننا اعتبارها شمعة ليموزين حتى لو لم تصل الى 50 او 100 نقطة
لان طول الشمعة يتأثر بالفريم الذي نعمل عليه ، فمثلا الشمعة الطويلة في فريم الدقيقة قد لا تعتبر طويلة في فريم الاربع ساعات
هل توافقني يامستر دولار ام ان هذا التحليل غير صحيح
نعم لا يوجد معيار لذلك وكلامك صحيح فعلا وتفكير منطقي
يمكنك على سبيل المثال إستخدام مؤشر ATR لتحديد متوسط طول الشمعه الطبيعي وإذا زاد طول الشمعه عن هذا المتوسط مره ونصف مثلا أو مرتين تعتبر شمعة ليموزين
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
يمكنك أن تستخدم الحلقات بحيث تبحث في الصفقات التي تم فتحها إذا كانت آخر صفقة بيع يتم الدخول الشراء والعكس صحيح
لاحظ المثال التالي سوف يقوم هذا الكود بالبحث في الصفقات المفتوحه فإذا كانت آخر صفقه شراء سيجعل buy=false وإذا كانت آخر صفقه بيع سيجعل sell=false وإذا لم يكن هناك صفقات مفتوحه سوف يبحث في الهيستوري أو الصفقات المغلقه عن آخر صفقه هل هي بيع أو شراء
كود PHP:
int i;bool buy=true;bool sell=true;
for(i=OrdersTotal()-2;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false){
for(i=OrdersHistoryTotal()-2;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
}
}
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderType()==OP_BUY){buy=false;}
if(OrderType()==OP_SELL){sell=false;}
}
}
ستضع من ضمن شروط الشراء
وتضع من ضمن شروط البيع
طبعا هناك أكثر من كود وطريقه يمكنك إستخدامها
جزاك الله خيرا
:eh_s(7): :eh_s(7): :eh_s(7):
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
بارك الله فيك مستر دلار
هل صحيح بانه توجد طريقه تمنع الاكسبيرت من فتح عقد جديد حتى يمضي عدد معين من الشموع على اخر عقد فتحه ؟
وكيف ؟
اريد ان اجعل الاكسبيرت لا يفتح عقد جديد الا بعد 7 شمعات على العقد اللي قبله
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة الدنياعذبتني
بارك الله فيك مستر دلار
هل صحيح بانه توجد طريقه تمنع الاكسبيرت من فتح عقد جديد حتى يمضي عدد معين من الشموع على اخر عقد فتحه ؟
وكيف ؟
اريد ان اجعل الاكسبيرت لا يفتح عقد جديد الا بعد 7 شمعات على العقد اللي قبله
نعم يمكنك ذلك عن طريق معرفة سعر فتح آخر عقد في الهيستوري وتضع من ضمن شروط الدخول إذا كان الوقت الحالي - آخر وقت تم فتح صفقه فيه أكبر من الزمن الذي تريد تحديده
على سبيل المثال الداله التاليه
كود PHP:
double ordertime(){
int OrderTime;
for(int i=0;i<OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber){
OrderTime=(TimeCurrent()-OrderOpenTime())*60*60;
}
}
return(OrderTime);
}
سوف تحسب عدد الساعات التي مرت من ذ فتح آخر صفقه
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
مستر دولار جزاك الله خير
اود منك استاذنا ان تشرح لنا الامر ObjectCreate
واود منك ايضا ان تشرح لنا كود يوضح كيف نكتب تكست على الشاشة في الاماكن الموضحة في الصورة
مع خالص الشكر والتقدير
http://m002.maktoob.com/alfrasha/ups...909/494820.gif
1 مرفق
رد: مناقشة دروس تعلم برمجة الإكسبرتات بالتطبيق المباشر
اقتباس:
المشاركة الأصلية كتبت بواسطة محمد بن حامد
تستخدم الداله ObjectCreate لرسم أو كتابة عنصر محدد على الشارت بإسم معين على سبيل المثال رسم خط أفقي او كتابة سطر نصي إلى آخره
طريقة كتابة الداله
كود PHP:
ObjectCreate( string name, int type, int window, datetime time1, double price1, datetime time2=0, double price2=0, datetime time3=0, double price3=0);
حيث
name هوالإسم الذي سيأخذه العنصر ويجب أن يكون لكل عنصر إسم محدد ولا يمكن عمل أكثر من عنصر بنفس الإسم
type نوع العنصر مثل خط رأسي أو خط أفقي أو ترند أو سهم
window النافذه التي سيتم رسم العنصر فيها 0 تعني على الشارت
time1 التوقيت الأول الذي سيتم رسم العنصر فيه
price1 السعر الأول
طبعا إذا كنا سنرسم مثلا سهم فسنستخدم تايم واحد وسعر واحد مثلا مثلا سيتم رسم السهم على شمعة الساعه 11 والسعر سيكون هاي هذه الشمعه +5 نقاط
أما إذا كنا سنرسم ترند فسوف يحتاج إلى توقيت أول وسعر أول وتوقيت ثاني وسعر ثاني
ثم بعد ذلك نستخدم الداله ObjectSet لتحديد خصائص هذا العنصر مثل لون العنصر شكله أو حجمه وبعض الخصائص الأخرى يمكنك كتابة هذه الداله في محرر الميتاإيديتور وقم بالتظليل عليها والضغط على F1 وسوف تظهر لك خصائصها
راجع أيضا المؤشر التالي وسوف تجد أننا إستخدمنا هذه الداله لرسم خطوط أفقيه وسوف يسهل عليك فهمها
بالنسبة لكتابة النصوص على الشارت
فكما في المثال التالي
كود PHP:
ObjectCreate("TT", OBJ_LABEL, 0, 0, 0);
ObjectSetText("TT", "ArabicTrader", 7, "Arial", Red);
ObjectSet("TT", OBJPROP_CORNER, 0);
ObjectSet("TT", OBJPROP_XDISTANCE, 1 );
ObjectSet("TT", OBJPROP_YDISTANCE, 1 );
لإختيار الزاوية التي تريد كتابة أو رسم العنصر فيها نستخدم الخاصيه OBJPROP_CORNER
ويكون المتغير من 0 إلى 3 أي أربع أرقام
0 تعني أعلى اليسار
1 تعني أعلى اليمين
2 تعني أسفل اليسار
3 تعني أسفل اليمين
ثم بعد ذلك نستخدم الخاصيه OBJPROP_XDISTANCE وهي المسافه بين العنصر والخط الأفقي بالبكسل
والخاصيه OBJPROP_YDISTANCE هي المسافه بين العنصر والخط الرأسي بالبكسل
قم بتغيير هذه الأرقام حتى تعرف كيفية التحكم فيها بنفسك