1 مرفق
مساعدة في Forex EA Generator 4
السلام عليكم
اخوتى الكرام لو ممكن مساعدة في Forex EA Generator 4
قمت ببرمجته انه يقوم بتنبيهى في حال اغلاق الشمعة بالنسبة للموفينغ
لكن عندي مشكلة و هو انه لا يتوقف عن التنبيه مع كل حركة
اريد المساعدة في انه يقوم بالتنبيه في حالة ما اغلقت الشمعه فوق او اسفل الشمعة مرة واحدة و لا يعيد التنبيع الا في حالة حدوث امر معاكس
1 مرفق
رد:مساعدة في Forex EA Generator 4
قم بمقارنة إفتتاح وإغلاق الشمعة بالنسبة للموفينج
مثال كما بالصورة
1 مرفق
رد:مساعدة في Forex EA Generator 4
اقتباس:
المشاركة الأصلية كتبت بواسطة AMINDESETIF
السلام عليكم
بارك الله فيك جارى التجريب و لكن لو ممكن استفسار
كيف يتم اضافة الماجيك نمبر
عن طريق Forex EA Generator 4
و كيف يتم تحديد نوع العملة التى تظهر فيها المنبه
لانه لما ينبهنى لا يحدد العملة
الله يبارك فيك
الماجيك نمبر موجود بالبرنامج لكنه ليس كمتغير خارجي (أنظر للصورة)
لذلك إذا أردت الماجيك نمبر كمتغير خارجي يجب أن تعدل على كود الاكسبيرت ستجده بالمنصة الرئيسية المرتبطة بالبرنامج بصيغة mq4
افتح الملف وستضيف متغير خارجي بالاكسبيرت
كود PHP:
#include <stdlib.mqh>
#include <WinUser32.mqh>
// exported variables
extern int MagicNo = 1234;
ثم تعدل على الدوال التي بها الماجيك نمبر مثل دالة الشراء تعدلها كما يلي :
كود PHP:
void BuyOrder2()
{
double SL = Ask - BuyStoploss2*PipValue*Point;
if (BuyStoploss2 == 0) SL = 0;
double TP = Ask + BuyTakeprofit2*PipValue*Point;
if (BuyTakeprofit2 == 0) TP = 0;
int ticket = -1;
if (true)
ticket = OrderSend(Symbol(), OP_BUY, BuyLots2, Ask, 4, 0, 0, "kira-h", MagicNo, 0, Blue);
else
ticket = OrderSend(Symbol(), OP_BUY, BuyLots2, Ask, 4, SL, TP, "kira-h", MagicNo, 0, Blue);
if (ticket > -1)
{
if (true)
{
OrderSelect(ticket, SELECT_BY_TICKET);
bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
if (ret == false)
Print("OrderModify() error - ", ErrorDescription(GetLastError()));
}
}
else
{
Print("OrderSend() error - ", ErrorDescription(GetLastError()));
}
}
هذا كمثال والمهم عند عمل ماجيك نمبر بباقي الداول ستعلم مكانها فقط من خلال تعريفها برقم محدد من طرف البرنامج ثم تغير الرقم بالمتغير MagicNo
أظن أن الصورة وضحت
بالنسبة للتنبيه وتحديد العملة ستعدل الكود كما يلي مثلا على اليورو دولار (مع مراعاة الرمز بعد اسم العملة مثل EURUSDpro)
كود PHP:
void Alert1()
{
Alert("EURUSD");
}
أو لكي يتعرف على العملة بشكل أوتوماتيكي من خلال الشارت الموضوع عليه الاكسبيرت ستعدل على الكود كما يلي:
كود PHP:
void Alert1()
{
Alert(Symbol());
}
بالتوفيق
7 مرفق
رد:مساعدة في Forex EA Generator 4
اقتباس:
المشاركة الأصلية كتبت بواسطة AMINDESETIF
السلام عليكم
بارك الله فيك على النصائح القيمة
عندى استفسار اخر لو ممكن
اريد ان يكون التنبيه بعد التقاطع بين 55 SAM و 55 EXP
و يكون التنبيه بمجرد التقاطع و لا يهتم بالشموع
وعليكم السلام
إذن ستقارن بين الموفينج الأول بالموفينج التاني وقم بحذف شرط إغلاق الشمعة
لكن خد بالك في هذه الحالة التنبيه سيعيد رسم نفسه :0016:
بمعنى سيحدث التنبيه بمجرد التقاطع ولكن بما أن الشمعة لم تغلق بعد ممكن أن يتراجع التقاطع وبالتالي التنبيه خاطئ (إلا إذا أردته بهذا الشكل)
لذلك يجب إضافة إغلاق الشمعة لتأكيد التقاطع ثم التنبيه السليم
اقتباس:
المشاركة الأصلية كتبت بواسطة AMINDESETIF
السلام عليكم
كيف افتح الملف ولاضيف متغير خارجي بالاكسبيرت
لاننى دخلت المنصة و اخترت الاكسبيرت و ضغت على تعديل و لم انجح مع العلم اننى نجحت في اكسبيرت اخر
طيب في طريقة أخرى
عند الضغط على السهم الأخضر الموجود بالبرنامج
انزل تحت واضغط على Source Code وهتعمل كليك يمين ثم select all ثم احفظ الكود بـ Copy
هتروح الان على منصة الميتاتريدر4
اضغط على إيقونة الميتا إيديتور MetaEditor
ستفتح صفحة جديدة من New ثم تابع الصور
بعد فتح صفحة الكود احذف كل محتوياتها وتعمل Past
وبعدها عدل كما تريد ثم احفظ الملف بصيغة mq4
ملحوظة : بعد عمل تعديلات على الاكسبيرت يجب أن تقوم بعمل Compile لكي تعرف إذا في أخطاء ويتم التعرف عليها في الأسفل بخانة الـ Toolbox => Errors (أنظر الصورة)
حمل ملف الصور بالترتيب
2 مرفق
رد:مساعدة في Forex EA Generator 4
اقتباس:
المشاركة الأصلية كتبت بواسطة AMINDESETIF
السلام عليكم
بارك الله فيك اخى الكريم تم المطلوب بفضل الله و بفضلك
قلت لى انه يمكن ان يرسم نفسه
لكن في مرات تحدث تقاطع بدون تدخل الشموع فما الحل
هذا من فضل الله سبحانه وتعالى
بالمرفقات ملف البرنامج به الكود المطلوب (فك الضغط ثم دوبل كليك)
مع صورة توضيحية
بالتوفيق أخي
1 مرفق
رد:مساعدة في Forex EA Generator 4
اقتباس:
المشاركة الأصلية كتبت بواسطة AMINDESETIF
السلام عليكم
شكرا لك
لكن عندى استفسار صغير
في الدالة الاولى و الثانية نفس الدالة لماذا تم كتابة الدالة مرتين
و كذلك في الثالثة و الرابعة
فعلا التقاطعات ضيقة تحدث قبل افتتاح الشمعة الجديدة إذن فهذه الشروط خاطئة ...
اقتباس:
المشاركة الأصلية كتبت بواسطة AMINDESETIF
السلام عليكم
شكرا لك
هناك مشكل للاسف مع كل شمعة يقوم بارسال تنبيهين
مع العلم انه لا يوجد اى تقاطع
إذن هنا البرنامج محدود ويجب عمل تعديلات اكثر دقة يدويا
سنستخدم شرط الترتيب يعني لن يعمل تنبيه إلا عند التقاطع المعاكس كما لو نقول دخول بالترتيب شراء بيع شراء بيع وهكذا
سنضع بالمتغيرات الخارجية
كود PHP:
static string LastOrder;
ثم نعدل على الشرطين كما يلي :
كود PHP:
void TechnicalAnalysis9()
{
if (iMA(NULL, NULL,55,0,MODE_SMA,PRICE_CLOSE,0) < iMA(NULL, NULL,55,0,MODE_EMA,PRICE_CLOSE,0)&&LastOrder!="B")
{
Alert15();
LastOrder="B";
}
}
void TechnicalAnalysis10()
{
if (iMA(NULL, NULL,55,0,MODE_SMA,PRICE_CLOSE,0) > iMA(NULL, NULL,55,0,MODE_EMA,PRICE_CLOSE,0)&&LastOrder!="S")
{
Alert15();
LastOrder="S";
}
}
void Alert15()
{
Alert(Symbol());
}
الان سيعمل التنبيه مرة واحد عند كل تقاطع لكن خد بالك من إعادة الرسم ففي بعض المرات سيحدث التقاطع ثم يقوم بالتنبيه لكن عندما تطلع عليه ستجد التقاطع غير موجود (هنا لم تغلق الشمعة بعد لتأكيد التقاطع لنراه بالعين المجردة :D إذا صح التعبير )
الاكسبيرت بالمرفقات راجعه جيدا
وإذا لم يلبي طلبك فهذا ما أستطيع بخبرتي البسيطة جدا في البرمجة
والله الموفق