رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
يوجد خطأ بسيط فقط لن تحتاج إلى الأمر break لأنه في هذه الحاله سينهي الحلقه من أول عد فقط
ثانيا إذا لم تتحقق الشروط سواء البيع أو الشراء فسوف تعود الداله بالقيمه 0 أي فولس وهذا لا تريده
لذلك قم بعمل الداله من نوع int وإجعلها تعود بالقيمه 0 في حالة البيع و 1 في حالة الشراء و -1 مثلا في حالة عدم تحقق الشروط كلها
وآخر خطأ بما أنك تريد البحث في آخر ثلاث شمعات فلن تستخدم Bars ستستخدم 3
مثال
كود PHP:
bool cross()
{
int (int i=1 ; i<=3 ; i++)
{
double y1=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,0,i);
double a1=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,1,i);
double y2=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,0,i+1);
double a2=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,1,i+1);
if (y2<a2 && y1>a1) return(true);
else if (y2>a2 && y1<a1) return(false);
}
return(-1);
}
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
بالنسبه للجزء الثاني من السؤال
إذا كانت الصفقه المفتوحه هي الأولى فسوف تعود الداله بالقيمه 0 بالتالي سوف يتحقق الشرط أيضا لأن دالة التوقيت تعود بقيمة الوقت بالثواني بالتالي مهما كان الوقت الحالي ف 0 سيكون أقل منه فيتحقق الشرط
حتى تجعل الدخول عندما يتحرك السعر من أسفل إلى أعلى فقط فأضف شرط أن الإفتتاح كان أقل من سعر الدخول
فتتأكد أن السعر قادم من أسفل لأعلى
جزاك الله كل خير أستاذ أسامه ..
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم
كيف حالك مستر دولار وا جميل اتمني من الله ان تكونوا بخير انتم وكل الاخوة
اريد عكس صفقات اكسبرت مضاعفات لانة يدخل عكس الترند وليس مع الترند
وكذلك التعديل علي دالة المضاعفات ايضا بان تكون في نفس اتجاة الصفقة المفتوحة لو كانت خاسرة وبدون الاخلال بباقي شروط الاكسبرت من الهدف والستوب وباقي الشروط
ما هو الكود البرمجي لعكس الصفقات او التعديل اللازم علي كود فتح الصفقات
مرفق الاكسبرت
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة reda-hadhod
أشكرك أخى الفاضل
بعد مراجعة الاكسبرت وتجربتة أتضح أن كما فى الصورة أمر sellstop هو الذى يعمل حيث أظهر على الشارت
خط منطقة التحضير والخط الاخر خط التفعيل , ,, اما أمر paystop لم يتحدد علية أى شىء
ولاحظت ايضا أمر selllimit يعمل أما أمر paylimit لا يعمل
ودى وتقديرى
قمت بتجربة الإكسبرت وهو يعمل بدون مشاكل مع جميع الأوامر
تأكد فقط من تسمة الخطوط على الشارت نفس الإسم الموجود في الإكسبرت buystop و buylimit
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة Mohamed_Amr
تسلم اخى جميل ولكن هل بهذا الشكل لن يعمل الاكسبريت بعد تحقيق الهدف الا مع بدايه يوم جديد؟؟
نفس الكود الذي ذكره الأخ جميل في الرابط
كود PHP:
double profitpoints(){
double ProfitPips;
for(int i=OrdersTotal();i>0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&OrderMagicNumber()==MagicNumber&&OrderOpenTime()>iTime(Symbol(),1440,0)){
if(OrderType()==OP_SELL)ProfitPips+=(OrderOpenPrice()-OrderClosePrice());
if(OrderType()==OP_BUY)ProfitPips+=(OrderClosePrice()-OrderOpenPrice());
}
if(OrderOpenTime()<iTime(Symbol(),1440,0))return(ProfitPips/Point);
}
return(ProfitPips/Point);
}
هذا سيوقف الإكسبرت عند الربح بالنقاط
بما أنك تريد إيقاف الإكسبرت عند الربط بالدولار ستقوم بحساب الربح بالدولار فقط
الكود
كود PHP:
double ProfitOfDay(){
double profit;
for(int i=OrdersTotal()-1;i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&OrderMagicNumber()==MagicNumber&&OrderOpenTime()>iTime(Symbol(),1440,0)){
profit+=OrderProfit();
}
if(OrderOpenTime()<iTime(Symbol(),1440,0))return(profit);
}
return(profit);
}
ثم ستضع شرط أن ProfitOfDay أقل من الربح اليومي الذي تريده من ضمن شروط الدخول في الصفقه
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة fxsmartsniper
السلام عليكم
كيف حالك مستر دولار وا جميل اتمني من الله ان تكونوا بخير انتم وكل الاخوة
اريد عكس صفقات اكسبرت مضاعفات لانة يدخل عكس الترند وليس مع الترند
وكذلك التعديل علي دالة المضاعفات ايضا بان تكون في نفس اتجاة الصفقة المفتوحة لو كانت خاسرة وبدون الاخلال بباقي شروط الاكسبرت من الهدف والستوب وباقي الشروط
ما هو الكود البرمجي لعكس الصفقات او التعديل اللازم علي كود فتح الصفقات
مرفق الاكسبرت
وعليكم السلام ورحمة الله وبركته
جرب تطبيق الشرح في هذا الموضوع
https://forum.arabictrader.com/t83018.html
وأخبرني بالنتيجه
2 مرفق
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم أستاذ اسامه
في إكسبيرت التخرج
https://forum.arabictrader.com/t168047.html#6
قمت بعمل داله
لتعود بكلمة "buy" عندما يعطي المؤشر GenesisMatrix 2.21_1 جميع المربعات أزرق بعد إغلاق الشمعة .. و تعود بكلمة "sell" عندما تكون كل المربعات حمراء بعد إغلاق شمعة الخمس دقائق .
كود PHP:
string all()
{
double b1=iCustom(0,5,"GenesisMatrix 2.21_1",0,1) ;
double b2=iCustom(0,5,"GenesisMatrix 2.21_1",2,1) ;
double b3=iCustom(0,5,"GenesisMatrix 2.21_1",4,1) ;
double b4=iCustom(0,5,"GenesisMatrix 2.21_1",6,1) ;
double r1=iCustom(0,5,"GenesisMatrix 2.21_1",1,1) ;
double r2=iCustom(0,5,"GenesisMatrix 2.21_1",3,1) ;
double r3=iCustom(0,5,"GenesisMatrix 2.21_1",5,1) ;
double r4=iCustom(0,5,"GenesisMatrix 2.21_1",7,1) ;
if (b1>0&&b2>0&&b3>0&&b4>0) return("buy") ;
else if (r1>0&&r2>0&&r3>0&&r4>0) return("sell");
return("NO") ;
}
و حاولت وضعها مع شروط البيع و الشراء
كود PHP:
all()==("buy")
all()==("sell")
و أضع الإكسبيرت على فريم الساعه و لكن لا يفتح صفقات .. هل هذه المشكله تعود لعدم تحقق الشروط فقط أم هناك خطأ ما ؟؟
و حاولت وضع شروط لمؤشر آخر أو حتى الستوكاستيك للبحث عن تقاطع حدث في آخر ثلاث شمعات و تقريبا لا يفتح صفقات .
كود PHP:
bool cross()
{
for (int i=1 ;i<=3; i++)
{
double y1=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,0,i);
double a1=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,1,i);
double y2=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,0,i+1);
double a2=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,1,i+1);
if (y2<a2 && y1>a1) return(true);
else if (y2>a2 && y1<a1) return(false);
}
return(-1);
}
/////
bool cross()
{
for (int i=1 ;i<=3; i++)
{
double m1=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_MAIN,i);
double s1=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL,i);
double m2=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_MAIN,i+1);
double s2=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL,i+1);
if (m2<s2 && m1>s1) return(true);
else if (m2>s2 && m1<s1) return(false);
}
return(-1);
}
فهل هناك خطأ بالدوال او الشروط و جزاك الله خيرا .
https://forum.arabictrader.com/attac...i-multi-v1.mq4
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
شكرا اخي علي الرد
تم التعديل
كل OP_SELLالي OP_BUY والعكس
كل Bidالي Askوالعكس
كل
OP_BUYLIMIT تحول إلى OP_SELLSTOP
OP_SELLLIMIT تحول إلى OP_BUYSTOP
والعكس
كل Bidالي Askوالعكس
وكن عندي سوال
هل في اوامر الشراء او الشراء المعلق بنوعية لابد ان يكون في المعادلةAsk
و
هل في اوامرالبيع اوالبيع المعلق بنوعية لابد ان يكون في المعادلةBid
حيث اني بعد التحويل وجدت بعض الجمل عكس ذلك لا ادري هل ذلك خطا مني ام هذا من شروط الاستراتيجية علي ما اظن
شكرا مستر دولار:015:
مرفق الاكسبرت بعد تعديلي
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
وعليكم السلام ورحمة الله وبركاته
مثال
كود PHP:
int dayStart=iBarShift(Symbol(),60,iTime(Symbol(),1440,1),false);
double high=High[iHighest(Symbol(),60,MODE_CLOSE,24,dayStart-23)];
double low=Low[iLowest(Symbol(),60,MODE_CLOSE,24,dayStart-23)];
اشكرك على جهودك والله يكتبها في ميزان حسناتك
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة dentist_hussein
السلام عليكم أستاذ اسامه
في إكسبيرت التخرج
https://forum.arabictrader.com/t168047.html#6
قمت بعمل داله
لتعود بكلمة "buy" عندما يعطي المؤشر GenesisMatrix 2.21_1 جميع المربعات أزرق بعد إغلاق الشمعة .. و تعود بكلمة "sell" عندما تكون كل المربعات حمراء بعد إغلاق شمعة الخمس دقائق .
كود PHP:
string all()
{
double b1=iCustom(0,5,"GenesisMatrix 2.21_1",0,1) ;
double b2=iCustom(0,5,"GenesisMatrix 2.21_1",2,1) ;
double b3=iCustom(0,5,"GenesisMatrix 2.21_1",4,1) ;
double b4=iCustom(0,5,"GenesisMatrix 2.21_1",6,1) ;
double r1=iCustom(0,5,"GenesisMatrix 2.21_1",1,1) ;
double r2=iCustom(0,5,"GenesisMatrix 2.21_1",3,1) ;
double r3=iCustom(0,5,"GenesisMatrix 2.21_1",5,1) ;
double r4=iCustom(0,5,"GenesisMatrix 2.21_1",7,1) ;
if (b1>0&&b2>0&&b3>0&&b4>0) return("buy") ;
else if (r1>0&&r2>0&&r3>0&&r4>0) return("sell");
return("NO") ;
}
و حاولت وضعها مع شروط البيع و الشراء
كود PHP:
all()==("buy")
all()==("sell")
و أضع الإكسبيرت على فريم الساعه و لكن لا يفتح صفقات .. هل هذه المشكله تعود لعدم تحقق الشروط فقط أم هناك خطأ ما ؟؟
و حاولت وضع شروط لمؤشر آخر أو حتى الستوكاستيك للبحث عن تقاطع حدث في آخر ثلاث شمعات و تقريبا لا يفتح صفقات .
كود PHP:
bool cross()
{
for (int i=1 ;i<=3; i++)
{
double y1=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,0,i);
double a1=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,1,i);
double y2=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,0,i+1);
double a2=iCustom(Symbol(),5,"N_StepMA_1(1)",19,1.5,0,1000,true,1,i+1);
if (y2<a2 && y1>a1) return(true);
else if (y2>a2 && y1<a1) return(false);
}
return(-1);
}
/////
bool cross()
{
for (int i=1 ;i<=3; i++)
{
double m1=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_MAIN,i);
double s1=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL,i);
double m2=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_MAIN,i+1);
double s2=iStochastic(NULL, 5, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL,i+1);
if (m2<s2 && m1>s1) return(true);
else if (m2>s2 && m1<s1) return(false);
}
return(-1);
}
فهل هناك خطأ بالدوال او الشروط و جزاك الله خيرا .
https://forum.arabictrader.com/attac...i-multi-v1.mq4
وعليكم السلام ورحمة الله وبركاته
بالنسبه للإكسبرت حاليا فالشروط صحيحه وهو يفتح صفقات لكن الصفقات قليله بسبب الشرط PIPS_FROM_TENKAN
مؤشر GenesisMatrix يحتاج إلى مؤشر آخر ليعمل بإسم T3_2ColorHisto فيجب أن تتأكد أنه موجود في مجلد المؤشرات
لا يمكنك تعريف دالتين cross بنفس الإسم يجب أن تقوم بتغيير الإسم
الشرط
كود PHP:
lastype(OP_SELL)==OP_SELL
لا أعلم ما الفائده منه فطبيعي بما أنك إخترت في متغيرات الداله OP_SELL فسوف يعود بنفس الصفقه