النتائج 1 إلى 3 من 3
الموضوع: موضوع مخصص للأكواد والأوامر وشرحها
- 02-03-2013, 07:23 PM #1
موضوع مخصص للأكواد والأوامر وشرحها
بسم الله الرحمن الرحيم
الاخوة الكــرام
أرجو أن يكون هذا الموضوع للمساعدة فى تعلم بعض الأكواد وشرحها للإستفادة منها فى البرمجة
أرجو بشدة عدم وضع مشاركات بالشكر والترحيب لأى عضو وعدم طرح أى أسئلة فى هذا الموضوع حتى يسهل على الذى يريد الحصول على أكواد أن يحصل عليها سريعا ولا يقلب فى صفحات كثيرة وبرجاء الإلتزام بهذا .
وأى سؤال هناك موضوع ( موضوع مخصص للأسئلة البرمجبة ) للأستاذ/ أسامة ( مستر دولار )
https://forum.arabictrader.com/t37612.html
أنا لست خبيرا فى البرمجة ولن أكون متواجدا باستمرار ولكنى كنت أجد مشقة فى الحصول على أى معلومة والحمد لله أستاذ/ أسامة لا يتأخر عن أحد فى الإجابة عن أى سؤال .
كل واحد لديه معلومة أو كود يشارك بها مع شرحها جيدا
والله ولى التوفيق
آخر تعديل بواسطة mostafa400 ، 02-03-2013 الساعة 07:37 PM
- 02-03-2013, 07:26 PM #2
الأمر
MarketInfo(Symbol(),MODE_STOPLEVEL)هذا الأمر للحصول على أقل عدد من النقاط المسموح لك عمل أمر SELL LIMIT أو BUY LIMIT من السعر الحالى
مثلا انت تضع الإكسيبرت على عملة اليورو والليمت على بعد 5 نقاط والشركة تسمح ب 3 نقاط ليميت بيع من السعر الحالى فلن يكون هناك مشكلة أما إذا وضعت الإكسيبرت بنفس الإعدادت على عملة GBPCHF والشركة تسمح ب 7 نقاط من السعر الحالى فلن ينفذ الأمر للتغلب على هذا نستخدم هذا الأمر .
انا جعلت Step يساوى 1 والبروفت يساوى 1 حتى نجعل الإكسيبرت يختار أقل مسافة مسموح بها وأضفت نقطة زيادة إحتياطى Step=Low_Point+1
نكتب الأمر كالتالى
كود:static int Stop=0; double LimitLot=0.1; int Ok=1; int Step=1, Profit_Inc=1; double Low_Point=MarketInfo(Symbol(),MODE_STOPLEVEL); if ( Low_Point>Step ) { Step=Low_Point+1; } if ( Low_Point>Profit_Inc ) { Profit_Inc=Low_Point; } double SellTP=(Bid+Step*Point)-Profit_Inc*Point, BuyTP=(Ask-Step*Point)+Profit_Inc*Point ; if ( Ok==1 && Stop==0 ) {OrderSend(Symbol(),OP_SELLLIMIT,LimitLot,Bid+Step*Point,3,0,SellTP,0,0,0,Red); Stop=1; } if ( Ok==1 && Stop==0 ) {OrderSend(Symbol(),OP_BUYLIMIT,LimitLot,Ask-Step*Point,3,0,BuyTP,0,0,0,Green); Stop=1; }
آخر تعديل بواسطة mostafa400 ، 02-03-2013 الساعة 07:31 PM
- 02-03-2013, 08:22 PM #3
هذه الدالة لعمل Label على الشارت تضع فيه قيمة لأى متغير على الشارت مثلا ستختار وضع قيمة السعر الحالى لل Bid و السعر الحالى لل Ask ونظهرهم فى الجانب الأعلى من اليسار على الشارت .
شرح price1 و price2 اسم ال Label ونختار اى اسم المهم ان لا تكون اسمائهم متشابهة
ثم نضع الفاصلة ونكتب المتغيرات التى ستظهر على الشارت ونضيف + لإضافة المزيد من المتغيرات ونضع علامة التنصيص وبها مسافة فارغة حتى لا تلتصق القيم ببعضها ثم فاصلة ونكتب رقم 1 وهو بعد المسافة من الجانب الأيسر ثم فاصلة ونكتب 15 وهو بعد المسافة من الأعلى أو الأسفل ثم فاصلة ونحدد نوع الخط "Arial" ثم فاصلة ونكتب 14 وهو حجم الخط ثم فاصلة ونكتب 4 وهو الكورنر الأعلى شمال ثم فاصلة ونكتب لون الخط .
الكورنر 4 هو الأعلى شمال - 2 الأسفل شمال - 1 الأعلى يمين - 2 الأسفل يمين .
انا وضعت فى ال Label الثانى DoubleToStr(Ask,Digits) حتى نتخلص من الأصفار الزائدة .
كود:int start() { SetLabel("price1",Ask+" "+Bid+" ",1,15,"Arial",14,4,Red); SetLabel("price2",DoubleToStr(Ask,Digits)+" "+DoubleToStr(Bid,Digits)+" ",1,15,"Arial",14,2,Lime); return(0); } //+------------------------------------------------------------------+ void SetLabel(string name, string txt, int x, int y, string font, int size, int cor, color clr) { int idx=0; if(ObjectFind(name) == -1) { ObjectCreate(name, OBJ_LABEL, idx, 0, 0); ObjectSetText(name, txt, size, font, clr); ObjectSet(name, OBJPROP_XDISTANCE, x); ObjectSet(name, OBJPROP_YDISTANCE, y); ObjectSet(name, OBJPROP_CORNER, cor); ObjectSet(name, OBJPROP_WIDTH,2); } else { ObjectSet(name, OBJPROP_XDISTANCE, x); ObjectSet(name, OBJPROP_YDISTANCE, y); ObjectSetText(name, txt, size, font, clr); ObjectSet(name, OBJPROP_CORNER, cor); ObjectSet(name, OBJPROP_WIDTH,2); } }