رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم أستاذ أسامه ... أرجو أن تكون بخير و في تمام الصحة و العافية .
كنت أريد أخي أن أبحث في آخر عدد محدد من الشمعات و ليكن آخر 3 شمعات عن ظهور إشارة مؤشرين معا بحيث أضع شروط الدخول ظهور إشارة اي المؤشرين في أحد الشمعات الثلاثه مع ظهور إشارة المؤشر الآخر في أي الشمعات الثلاثه أيضا ... بمعنى لو ظهر اشارة المؤشر الاول في الشمعة1 مع اشارة المؤشر الثاني في الشمعه1 أو الشمعه2 أو الشمعه3 يدخل الصفقه والعكس .. فما افضل داله استخدمها لهذا الغرض
وجزاك الله خيرا
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
مثال
كود PHP:
double dayProfit(){
double pips;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderOpenTime()<iTime(Symbol(),1440,0))break;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderType()==OP_BUY)pips+=(OrderClosePrice()-OrderOpenPrice());
if(OrderType()==OP_SELL)pips+=(OrderOpenPrice()-OrderClosePrice());
}
}
return(pips);
}
قمت بكتابة الشروط هكذا
كود:
if (dayProfit()>=2*pt)return(0);
ولكن ظل يفتح صفقات في نفس اليوم وعملت كومنت وبرنت للداله دايما يطبع صفر
مش عارف المشكلة فين
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة hos22003
قمت بكتابة الشروط هكذا
كود:
if (dayProfit()>=2*pt)return(0);
ولكن ظل يفتح صفقات في نفس اليوم وعملت كومنت وبرنت للداله دايما يطبع صفر
مش عارف المشكلة فين
الحمد لله تم حل المشكلة بعد تعديل بسيط بازاله الامر break
كود:
double dayProfit(){
double pips;
for(int i=orderstotalhistory();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderOpenTime()>iTime(Symbol(),1440,0)){
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderType()==OP_BUY)pips+=(OrderClosePrice()-OrderOpenPrice());
if(OrderType()==OP_SELL)pips+=(OrderOpenPrice()-OrderClosePrice());
}
}
}
return(pips);
}
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة Fiber
اخي مستر دولار شكرا لسرعة الرد
وقد قمت بتعديل الخطا والتاكد من باقي الحسابات لكن صدقا الى الان لم يعمل اي صفقة رغم اكتمال الشروط المكتوبة له ارجو ان تتكرم وتتاكد من الدالات التي ادخلتها فربما واحدة منها خطأ فانا اريد فقط الهاي واللو لشمعة الاربع ساعات الاولى من كل يوم حتى لو اتى اعلى منها اريد ان يتجاهلها
الاكسبيرت في المرفقات بعد التعديل الذي اشرت اليه وشكرا مرة اخرى
استاذي الكريم ارجو اكمال مساعدتك لي هنا
واتمنى ان تدوم بالف خير
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
وعليكم السلام ورحمة الله وبركاته
لو مثلا أخذنا مؤشرين RSI و Stochatic
سوف أستخدم الحلقه for للبحث عن تحقق الشروط في آخر ثلاث شمعات وعند تحقق الشرط تصبح قيمة المتغير شراء
مثال
كود PHP:
bool RSI_sell_Signal=false,Stoch_Sell_Signal=false,RSI_Buy_Signal=false,Stoch_Buy_Signal=false;
for(int i=1;i<=3;i++){
double rsi=iRSI(Symbol(),0,14,PRICE_CLOSE,i);
double stoch=iStochastic(Symbol(),0,5,3,3,0,0,MODE_MAIN,i);
if(rsi>70)RSI_sell_Signal=true;
if(stoch>80)Stoch_Sell_Signal=true;
if(rsi<30)RSI_Buy_Signal=true;
if(stoch<20)Stoch_Buy_Signal=true;
}
if(RSI_sell_Signal==true&&Stoch_Sell_Signal==true)//sell
شكرا أخي أسامه .. و جزاك الله كل خير .
الآن هل هذا الكود قد يجعل الإكسبيرت يدخل صفقه بعد ظهور آخر إشارة بشمعه أو شمعتين أو ثلاث ... يعني مثلا إذا كانت آخر إشارة شراء لل RSI بالشمعة رقم 2 و إشارة الستوكاستيك بالشمعة رقم 1 فيدخل الإكسبيرت بعد إغلاق الشمعة رقم 1 ويحقق الهدف في نفس الشمعه مثلا... فهل من الممكن أن يدخل بعد إغلاق الشمعة التالية مباشرة للشمعة رقم1 مره أخرى وذلك لأن الداله FOR تبحث في آخر ثلاث شمعات .. و إذا كان كذلك كيف لا أجعله يدخل مره أخرى إذا حدث هذا المثال .
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
استاذي مستر دولار او الأخ يوسف ارجو مراجعة المتغيرات double line_up;
double line_dn; lines_distance
والدالة
void CustomCode35()
عايز اذا كان المسافة بين الخطين اقل من 35 بوينت لاينفذ صفقات
مرفق الأكسبيرت