وعليكم السلام ورحمة الله وبركاته
الخطأ لديك في الأقواس )
مرفق الإكسبرت بعد تصحيحه راجعه مره أخرى
Printable View
الف شكر يا مستر دولار
الرسالة وصلت
وربنا يجعلة في ميزان حسناتك
اخي مستر دولار الرجاء المساعدة في الاسالة التالية في الاكسبيرت الزي ساعدتني بة
1) الاكسبيرت يقوم بصفقة مثلا عند سعر 1.4433 ثم الاحظ انة يقوم بصفقة عند سعر 1.4435 واريدة ان يقوم بالصفقة وتنتهي بالمكسب او الخسارة ثم يفتح صفقة جديدة
2) الاكسبيرت لايهتم بالرقم 30 و 70 الخاصتان بالمؤشر عند الشمعة المحددة وليس سعر الفتح علي سبيل المثال للشمعة اي
اريدة ان يقراء قيمة المؤشر عند الشمعة السابقة ولا يهملها لانة يهملها
3) ما هو الامر الزي يقوم بفتح الصفقة عند بياية الشمعة فقط لا غير
وسامحني علي الايطالة
حسب الكود الذي وضعته
الآن يجب أن تحدد أهدافك هل تريد إستخدام الخط الرئيسي في الإستوكاستيك أم الخط السيجنالكود PHP:
A=iStochastic(NULL, 0, 5, 3, 3, MODE_EMA, 0, MODE_MAIN,1);
B=iStochastic(NULL,0,5,3,3,MODE_EMA,0,MODE_SIGNAL,1);
في الكود السابق أنت جعلت الخط الرئيسي A والخط السيجنال هو B
وجعلت أمر البيع B>=70 لكن يمكنك إستخدام نفس الخط الرئيسي في المقارنه فلا أعلم لماذا قمت بالتغيير
طبعا حسب الكود السابق عندما إستخدمت الرقم 1 فهذا يعني للشمعه السابقه 0 يعني الشمعه الحاليه
حاول تعديل الإكسبرت وأرجو أن تخبرني تماما كيف تريد الإكسبرت عمل الإكسبرت حتى أستطيع مساعدتك
المشكله عندك حاليا في حذف الأمر المعلق عند وصول الصفقه إلى الهدف لذلك يمكنك إستخدام دالة لحذف الأوامر المعلقه
ثم تقوم بوضع شرطكود PHP:
void DeleteOrders()
{
OrderSelect(OrdersTotal(),SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
OrderDelete(OrderTicket());
}
}
بذلك تضمن أن يتم حذف الأمر المعلق عند وصول الصفقه الأخيره إلى الهدفكود PHP:
if(orderstotal()==0)DeleteOrders();
شكرا اخوى مستر دولار
عندى سؤال فى دالة اغلاق الاوامر المعلقة لاكسبرتك الشهير :
int DeletePendingOrders()
{
int total = OrdersTotal();
for (int cnt = total-1 ; cnt >= 0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumberB||OrderMagicNumber()==MagicNumberS && OrderSymbol()==Symbol() && (OrderType()>OP_SELL))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
1-لماذا تم طرح 1 من total اليس من الممكن ان اخر امر يكون امر معلق وبالتالى لن يغلق؟
2-لماذا استخدمت OrderType()>OP_SELL ولم تستخدم OrderType()>OP_SELLSTOP مثلا؟:Emoticon1:
الف شكر مستر دولار علي المجهود الرائع
الرجاء مساعدتي في الاكسبيرت حيث انة لا يقوم باي عملية شراء او بيع مطلقا علما بانة لا يوجد بة اخطاء
لأنه غالبا يكون الأمر الأخير غير معلق وكلامك صحيح الأفضل أن نجعلها OrdersTotal حتى نتجنب أي مشاكل من الممكن أن تحدث
بالنسبه للسؤال الثاني لأن الإكسبرت يقوم بوضع أوامر معلقه ليميت أيضا ولاحظ أن ترتيب الأوامر يكون كالآتي
بالتالي حسب كلامك OrderType()>OP_SELLSTOP فهذا يعني عدم إستخدام أوامر OP_BUYLIMIT و أوامر OP_SELLLIMIT لأنها تسبق الباي ستوب وسل ستوب وبالتالي في حال كانت هناك أوامر من هذا النوع وعند مقارنة الشرط ولم تتحقق فلن يتم إلغاء هذه الأوامر المعلقهكود PHP:
OP_BUY 0
OP_SELL 1
OP_BUYLIMIT 2
OP_SELLLIMIT 3
OP_BUYSTOP 4
OP_SELLSTOP 5
لكن أنا وضعت الشرط
حتى نضمن أن الأمر هو أمر معلق ليس أمر مفعل حتى يمكن حذفهكود PHP:
OrderType()>OP_SELL
الخطأ لديك في أمر OrderSend
فلا يمكن كتابة NULL مكان إسم العمله فيجب أن تكون متغير stringكود PHP:
OrderSend(NULL,OP_BUY,lots,Ask,2,sl,tp,"OPEN-BUY",magicnumber,0,Red);
لذلك ستجعلها بهذا الشكل
ونفس الشيء بالنسبه لأمر البيعكود PHP:
OrderSend(Symbol(),OP_BUY,lots,Ask,2,sl,tp,"OPEN-BUY",magicnumber,0,Red);
اخي مستر دولار
لقد قمت بالتعديل ولكن لم يتغر شيئ
فما هو الخطاء الاخر في رايك
بعض البروكرات يكون سعر اليورو فيها مثلا 1.43503 سوف تلاحظ خمس أرقام بعد الفاصله
وبعض البروكرات الأخرى يكون فيها 1.4350 سوف تلاحظ أربع أرقام بعد الفاصله
لذلك في البروكرات 5 أرقام فإذا أردت وضع الهدف 10 نقاط فيجب أن تقوم بكتابته 100 وكذلك بالنسبه للأستوب لوز
الف الف شكر يا اخي علي مساعدتك لي