النتائج 1,411 إلى 1,425 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 10-12-2011, 12:03 PM #1411
الجزء الأول هو عدم فتح أكثر من صفقة واحده في نفس الوقت لذلك ستحتاج إلى عمل دالة لمعرفة عدد الصفقات المفتوحه
كود PHP:int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
كود PHP:if(orderscnt()<1){
// open order
}
فيمكنك إستخدام الداله GlobalVariableSet
مثال :
كود PHP:GlobalVariableSet("OpenBuy",1);
كود PHP:if(GlobalVariableGet("OpenBuy")==1){
//open order
GlobalVariableDel("OpenBuy");
}
وعند إستدعائه فإننا نقارن هل قيمته تساوي 1 فإذا كان نعم يتم فتح الصفقه ثم حذف المتغير حتى نتأكد أن لا يفتح أكثر من صفقه
- 11-12-2011, 06:35 PM #1412
جزاك المولى كل خير أخي مستر دولار
بس عندي سؤال : ماهو الكود البرمجي لجعل مؤشر ثابت الاشارة او غير ثابت
يريت تشرح لي شوي لاني مبتدى في البرمجة
وشكراً
- 11-12-2011, 08:39 PM #1413
لا يوجد كود محدد يتم كتابته فيجعل المؤشر ثابت الإشاره او لا لكن تختلف حسب الطريقه التي يتم كتابة كود المؤشر نفسه وما هي المعادلات التي يعتمد عليها المؤشر
إذا أردت عمل مؤشر يقوم بتحديث نفسه في كل مره ورسم سهم على أقل لو لآخر 100 شمعه فسوف يكون كالآتي
كود PHP:C=iLowest(Symbol(),0,MODE_LOW,100,0);
double L=Low[C];
Arrow[C]=L;
- 12-12-2011, 10:03 AM #1414
اخواني المبرمجين الافاضل عندي عدة تساؤلات:
1- دالة iCustome لها باراميتر لتحديد التايم فريم عن طريق كتابة قيمة التايم فريم بالدقائق صح...... طيب هل ممكن احدد تايم فريم غير الموجودات لو نقول مثلا تايم فريم الـ 19 دقيقة
2 - عند توفر الشروط لفتح صفقة ما كيف اجعل فتح الصفقات بفواصل بالنقاط يعني Steps جربت هاد الكود بس ما مشي حالو معي:
كود PHP:Steps = NormalizeDouble(Ask - Steps,5);
//if(Orderscnt()<1)
OrderSend(Symbol(),OP_BUY,Lots,Steps ,Slippage,SL,TP,"Buy",0,Green);
وشكرا لكمآخر تعديل بواسطة turkm ، 12-12-2011 الساعة 10:05 AM
- 12-12-2011, 01:06 PM #1415
سؤال جديد:
اعملت استدعاء لمؤشر عن طريق دالة : iCustome على خمس فريمات بس كانت المشكلة بتآكل الذاكرة الوهمية بالاضافة بعد عملية الاستدعاء يزيد حجم ملف اللوغ بشكل ملحوظ شو الحل
وبارك الله فيكم
- 12-12-2011, 01:45 PM #1416
سؤال آخر
هههههههه دنا حريكم اسئلة:
الاكسبيرت يعمل على الباك تيست وماشاء الله عليه لكن على اللايف يعطيني رمز الوجه الحزين ولا يقوم بعمل صفقات برغم من انني وضعت كومينت على النافذة الرئيسية ليعطيني قيم بعض المتغيرات وهذه المتغيرات تعمل وتتغير لكنه يتوقف عن فتح الصفقات عاللايف فما هي المشكلة
وجزاكم الله عنا كل خير
- 12-12-2011, 01:55 PM #1417
الله يعطيك العافيه اخي مستر دولار
وأرجو منك تعديل الكود لاني لم اعرف داله تغيير الاشارة ؟!
بمعنى اذا ظهرت الاشارة على شمعه و اقفلت الشمعه لا تتغير الاشاره..؟
وتعتمد على الشمعة الاغلاق السابقة فقط
وشكرا لك
كود:int start() { int counted_bars = IndicatorCounted(); int limit, i; if(counted_bars < 0) return(-1); if(Bars <= (FilterPeriod + SnakeRange+2)) return(0); if(SnakeRange < 4) SnakeRange = 4; if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; for(i = limit; i >= 0; i--) MainCalculation(i); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void MainCalculation(int Pos) { int v; MartAxis(Pos); if(HardCalc == true) SmoothOverMart2(Pos); else SmoothOverMart(Pos); //---- return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void MartAxis(int Pos) { int SnakeWeight, i, w, ww, Shift; double SnakeSum; Axis[Pos] = iMA(NULL, 0, SnakeRange + 1, 0, MODE_LWMA, PRICE_WEIGHTED, Pos); for(Shift = Pos + SnakeRange + 2; Shift > Pos; Shift--) { SnakeSum = 0.0; SnakeWeight = 0; i = 0; w = Shift + SnakeRange; ww = Shift - SnakeRange; if(ww < Pos) ww = Pos; while(w >= Shift) { i++; SnakeSum = SnakeSum + i*SnakePrice(w); SnakeWeight = SnakeWeight + i; w--; } while(w >= ww) { i--; SnakeSum = SnakeSum + i*SnakePrice(w); SnakeWeight = SnakeWeight + i; w--; } Axis[Shift] = SnakeSum / SnakeWeight; } return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double SnakePrice(int Shift) { return((2*Close[Shift] + High[Shift] + Low[Shift]) / 4); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void SmoothOverMart(int Pos) { // Ïðàâèì èñòîðèþ íà ïîñëåäíèõ Pos...(Pos+SnakeRange+2) áàðàõ int Shift; double a, t, b; for(Shift = Pos + SnakeRange + 2; Shift >= Pos; Shift--) { t = Axis[ArrayMaximum(Axis, FilterPeriod, Shift)]; b = Axis[ArrayMinimum(Axis, FilterPeriod, Shift)]; a = Axis[Shift]; BorderTop[Shift] = (2*(1 + MartFiltr)*a + (t - b)) / 2 / (1 + MartFiltr); BorderBot[Shift] = (2*(1 + MartFiltr)*a - (t - b)) / 2 / (1 + MartFiltr); Mart[Shift] = (2*(2 + MartFiltr)*a - (t + b)) / 2 / (1 + MartFiltr); } return; } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void SmoothOverMart2(int Shift) { // Íå ïîäïðàâëÿåì èñòîðèþ íà ïîñëåäíèõ áàðàõ double a, t, b; t = Axis[ArrayMaximum(Axis, FilterPeriod, Shift)]; b = Axis[ArrayMinimum(Axis, FilterPeriod, Shift)]; a = Axis[Shift]; BorderTop[Shift] = (2*(1 + MartFiltr)*a + (t - b))/2/(1 + MartFiltr); BorderBot[Shift] = (2*(1 + MartFiltr)*a - (t - b))/2/(1 + MartFiltr); Mart[Shift] = (2*(2 + MartFiltr)*a - (t + b)) / 2 / (1 + MartFiltr); return;
- 12-12-2011, 06:43 PM #1418
لا يمكن تحديد تايم فريم غير الموجود في الميتاتريدر وهذا هو سبب الخطأ الذي يظهر لك
بالنسبه للسؤال الثاني
إذا كنت تقصد فتح الصفقه على بعد معين فسوف تكون كمثال
كود PHP:double B=High[1]+25*Point;
OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(B,Digits),3*Q,SL,TP," EA",MagicNumber,0,Blue);
والإستغناء عن الداله iCustomآخر تعديل بواسطة MR.dollar ، 12-12-2011 الساعة 07:06 PM
- 12-12-2011, 07:11 PM #1419
- 12-12-2011, 07:31 PM #1420
- 12-12-2011, 08:40 PM #1421
السلام عليكم ورحمة الله
اليكم اكسبيرت فكرته بسيطة يعتمد على خط الكوجن للايشيموكو وهو الخط الازرق.
حيث يقوم بالشراء عند افتتاح شمعة جديدة فوق الكوجن بعقد واحد فقط وفي حال ظهور اشارة عكسية اي افتتاح شمعة تحت الكوجن يغلق عقد الشراء ويفتح عقد واحد بيع الى ان يتحقق الهدف او تظهر اشار عكسية تكون هي الستبو لوز.
وبعد مراجعة للكود وتشغيل لمدة زمنية بسيطة اشتغل عادي لكن الغريب بعد فترة يصير يشتغل حسب المزاج يعني مرات يعطي اشار ة شراءء ولا يشتري او بيع ولا بيع او اشارة عكسية ولا يغلق رغم انه اشتغل لفترة واثبت ان الكود
المتغيرات maxbuy وmaxsell لجعل الاكسبرت يفتح صفقة واحدة فقط وعدم تتالي فتح صفقات باستمرار تحقق الشرط. صحيح---الاكسبرت مرفق---
كود://+------------------------------------------------------------------+ //| WAHAAB.mq4 | //| |kwahab //| kwahab //+------------------------------------------------------------------+ #property copyright "kwahab" #property link "WWW.arabictrader.COM" extern string basmala = "bismi allah"; extern double Lots = 0.1; extern int TakeProfit = 1; extern int MagicNumber = 2533; bool maxbuy=0; bool maxsell=0; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { Comment ("BY kWAHAB"); ///////////// double ichi1,SL,TP; ichi1 = iIchimoku (NULL,0,9,26,52,MODE_KIJUNSEN,1); //////////////////////////////////////////////////// if (Open[0]>ichi1&&maxbuy==0){ //شرط الشراء افتتاح الشمعة الحالية فوق الكوجن+متغير الشراء متاح CloseSellOrders(); //اغلاق عقود البيع TP=Ask+TakeProfit*Point; if (orderstotal()<1){ OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"wahab",MagicNumber,0,Blue); maxbuy=1; //هنا الشراء يصبح مقفل ويفتح بعد امر البيع بالاسفل maxsell=0; // قفل البيع صار مفتوح } } ///////////////////////////////////////////////////// if (Open[0]<ichi1&&maxsell==0){ //شرط البيع افتتاح شمعة الحالية تحت الكوجن+قفل البيع مفتوح CloseBuyOrders(); //اغلاق اوامر الشراء TP=Bid-TakeProfit*Point; if (orderstotal()<1){ OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"wahab",MagicNumber,0,Red); maxsell=1; // هنا البيع يفقل ويفتح فوق تحت امر الشراء maxbuy=0; // قفل الشراء اصبح مفتوح } } //---- return(0); } ///////////////////////////////////////////////////////////////////// int orderstotal(){ int cnt=0; for(int i =0;i<OrdersTotal();i++){ OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){ cnt++; } } return(cnt); } //////////////////////////////////////////////////// /////////////////////////////////////////////// void CloseBuyOrders() { for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol()) { if (OrderType()==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),Bid,3); } } } } void CloseSellOrders() { for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol()) { if (OrderType()==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),Ask,3); } } } } /////
انا استعملت هنا المتغيرات maxbuy و maxsell كاقفال للشراء والبيع
اي اذا كان كل منها يساوي 0 فالعملية متاحة وتقفل ب1
وكما قلت بشتغل لفترة ثم تحدث فيه اخطاء كما ذكرت واريد ان اضيف اليه الامر التالي:
-اذا كانت الصفقة السابقة خاسرة يفتح الصفقة المقبلة بلوت مضاعف
وشكرا جزيلا لك الاخ دولار والاخوة الكرامآخر تعديل بواسطة wahaab ، 12-12-2011 الساعة 08:46 PM
- 13-12-2011, 01:07 AM #1422
وعليكم السلام ورحمة الله وبركاته
بالنسبه للجزء الأول فكود الإكسبرت سليم ولا يوجد به مشاكل لذلك حتى تعرف سبب الخطأ راجع خانة الجورنال وتأكد من رقم الخطأ الذي يظهر لديك عندما يجب أن يفتح الإكسبرت الصفقه
بالنسبه للجزء الثاني الخاص بالمضاعفات
فسوف تحتاج أولا لعمل داله لمعرفه هل آخر صفقة حققت الهدف أم لا
كود PHP:bool LastOrderProfit(){
bool L;
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
if(OrderProfit()>0)return(true);
else return(false);
}
}
return(true);
}
كود PHP:double LastLot(){
for(int i=0;i<=OrdersHistoryTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber){
double L=OrderLots();
}
}
return(L);
}
كود PHP:if(!LastOrderProfit()){
Lot=LastLot()*2;
}
- 13-12-2011, 02:37 PM #1423
الاخ مستر دولار
لماذا لم تعد تتجاوب مع الاعضاء في مواضيعهم الا فيما ندر
واذا كان السبب هو كثرة الضغط --- فهل عجز المنتدى مع ميزانيته الكبيرة ان يعين المزيد من المبرمجين ام اعتاد المشرفون ان تكون لغة الترجي والتوسل ان تكون اللغة السائدة للاعضاء
موضوع طلب من المستر دولار لاكسبيرت استراتيجية القلوب الهادئة والطموحات العقلانية له عدة ايام على المنتدى مع 280 مشاهدة ولم يتكرم احد بالرد بالرغم من الارسال على الخاص ------- فالى متىىىىىىىىىىىىىىىىىىى
- 13-12-2011, 03:48 PM #1424
لك جزيل الشكر اخي دولار انا اطلعت على خانة جورنال لاستكشاف الاخطاء ووجدت التالي
الاكسبرت لما يشتغل على عدة ازواج وحسب ما فهمت تاتي مرحلة اين تغلق شمعة الخمس دقايق مثلا فييتعين على الاكسبرت غلق صفقات في ازواج وفتح اخرى في ازواج اخرى وبذلك يصبح هناك انشغال في مكان ما منه.فلا يشتري حيث يجب عليه ان يشتري مثلا..وهذا هو الخطا الذي كان يحصل فيه.
ما الحل حسب رايك اخي الكريم.وجزاك الله كل خير
الاكسبرت مرفق..آخر تعديل بواسطة wahaab ، 13-12-2011 الساعة 03:50 PM
- 13-12-2011, 05:26 PM #1425
الاخ العزيز اسامه
لدي اكسبيرت عملت عليه على الديمو يعتمد على CCI وعند معاكسة السعر 25 يبداء بفتح المضاعفات ولا يوجد اي مشكلة وبدات اليوم في تشغله على الحقيقي ولاحظت ان السعر انعكس 51 نقطه ولم يفتح مضاعفات بارغ انني استخدمت نفس الاعدادات التي تعمل على الديمو ، هل الشركة ابطلة عمل المظاعفات فيه ام ماذا حدث بالظبط.
والله ولي التوفيق
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM