النتائج 1 إلى 4 من 4
الموضوع: مساعدة في تصحيح كود مؤشر
- 08-01-2011, 03:09 PM #1
مساعدة في تصحيح كود مؤشر
[السلام عليكم ورحمة الله وبركاته
اتمنى المساعدة من الاخوان الذين لديهم معرفة في برمجة المؤشرات
وجدت مؤشرا في احد المنتديات يرسم خط عمودي من هاي الشمعة الى اللو بالاضافة الى اظهار الرينج للشمعة (ٌrange)
حاولت ان اعدل المؤشر حتى يظهر مستطيل بدلا من الخط العمودي كما في الصورة المرفقة لكن بعد محاولات استمرت اياما فقدت الامل في محاولة التعديل على المؤشر اتمنى المساعدة من الاخوة مرفق كود المؤشر
ملاحظة : في المرفقات كود مؤشر اخر يرسم مستطيل واحد على الشارت من االهاي الشمعة الى اللو لكنه لا يرسم اكثر من مستطيل وعند ظهور شمعة جديدة يختفي المستطيل.........ان كان كود هذا المؤشر اسهل من كود المؤشر الاول اتمنى التعديل عليه حتى يرسم مستطيلات على الشموع الماضية
كود المؤشر الاول
كود://+------------------------------------------------------------------+ //| HILOW Colour.mq4 | //| Copyright © 2006, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window extern int MinRange =1; extern int LookBack =20; extern bool ShowRange =0; // 0=Show Nothing, 1=Show Pips/Range extern bool ShowOpnClo =1; // 0=Show Nothing, 1=Show Open to close extern int PaintBarWidth =3; // How fat paint bar will be ? extern bool Popup =1; // Enable to show Popup Window extern color BULL =Blue; // Colour for UP bar extern color BEAR =Red; // Colour for DOWN bar datetime RangeT; // --- Init & Deinit ---------------------------------------------------------- int init() {RangeT=Time[2]; return(0); } int deinit() { for(int i=LookBack; i>=0; i--) { ObjectDelete(""+i); ObjectDelete("L"); ObjectDelete("H"+i); } return(0); } // --- Main Function call ----------------------------------------------------- int start() { double GetRange, GetOC, Range; bool BarUP, Flag; for(int x=0; x<LookBack; x++) { GetRange =(High[x]-Low[x]); if(Digits<4) GetRange=GetRange*100; else GetRange=GetRange*10000; GetOC =(Close[x]-Open[x]); if (Open[x]<Close[x]) BarUP=1; else BarUP=0; //Alert("GetRange : ",GetRange," MinRange : ",MinRange," x : ",x); if (GetRange > MinRange) { // Draw rectangle on bar / Repaint Bar if (BarUP==0) { ObjectDelete("L"+x); ObjectCreate("L"+x, OBJ_RECTANGLE, 0,Time[x],High[x],Time[x],Low[x] ); ObjectSet("L"+x, OBJPROP_BACK, false); } if (BarUP==1) { ObjectDelete("H"+x); ObjectCreate("H"+x, OBJ_RECTANGLE, 0, Time[x],High[x],Time[x],Low[x] ); ObjectSet("h"+x, OBJPROP_BACK, false); } if (ShowRange && !ShowOpnClo) // Draw Range on bars { if (BarUP==0) { ObjectDelete(""+x); ObjectCreate(""+x, OBJ_TEXT, 0, Time[x],Low[x]-5*Point ); ObjectSetText(""+x, ""+DoubleToStr(GetRange,0), 10, "Arial", BEAR); } if (BarUP==1) { ObjectDelete(""+x); ObjectCreate(""+x, OBJ_TEXT, 0, Time[x],High[x]+10*Point ); ObjectSetText(""+x, ""+DoubleToStr(GetRange,0), 10, "Arial", BULL); } } if (ShowOpnClo && !ShowRange) // Draw OpenClose on bars { if (BarUP==0) { ObjectDelete(""+x); ObjectCreate(""+x, OBJ_TEXT, 0, Time[x],Low[x]-5*Point ); ObjectSetText(""+x, ""+DoubleToStr(MathAbs(GetOC),0), 10, "Arial", BEAR); } if (BarUP==1) { ObjectDelete(""+x); ObjectCreate(""+x, OBJ_TEXT, 0, Time[x],High[x]+10*Point ); ObjectSetText(""+x, ""+DoubleToStr(GetOC,0), 10, "Arial", BULL); } } if (ShowOpnClo && ShowRange) // Draw OpenClose & Range { if (BarUP==0) { ObjectDelete(""+x); ObjectCreate(""+x, OBJ_TEXT, 0, Time[x],Low[x]-5*Point ); ObjectSetText(""+x, ""+DoubleToStr(MathAbs(GetOC),0)+"/"+DoubleToStr(GetRange,0), 10, "Arial", BEAR); } if (BarUP==1) { ObjectDelete(""+x); ObjectCreate(""+x, OBJ_TEXT, 0, Time[x],High[x]+10*Point ); ObjectSetText(""+x, ""+DoubleToStr(GetOC,0)+"/"+DoubleToStr(GetRange,0), 10, "Arial", BULL); } } } } Range=(High[1]-Low[1]); if(Digits<4) Range=Range*100; else Range=Range*10000; if (RangeT == Time[1]) {RangeT=Time[0]; Flag = 1;} if (Range>MinRange && Flag==1) { if (Open[1]<Close[1]) {Alert(Symbol()," BULL bar formed Range is ",Range," Pips"); Flag=0;} if (Open[1]>Close[1]) {Alert(Symbol()," BEAR bar formed Range is ",Range," Pips"); Flag=0;} } // Comment("Range : ",Range," RangeT : ",RangeT," Time[1] : ",Time[1]," Flag : ",Flag); return(0); } // --- End of Main Function --------------------------------------------------- [
FONT="Arial Black"][SIZE="4"]
آخر تعديل بواسطة بن عبدالله ، 08-01-2011 الساعة 03:39 PM
- 08-01-2011, 03:17 PM #2
رد: مساعدة في تصحيح كود مؤشر
#HILOW Colour modifided2.mq4
المؤشر الثاني
- 09-01-2011, 02:47 PM #3
رد: مساعدة في تصحيح كود مؤشر
الخطأ في الكود عندك بسبب الآتي
في هذا السطر
كود PHP:ObjectCreate("L"+x, OBJ_RECTANGLE, 0,Time[x],High[x],Time[x],Low[x] );
وهذا خطأ فيجب أن تجعل نهاية رسم المربع x+ مقدار شمعة كامل فسوف تجعله x+Period*60
أو تجعله x-1
المؤشر المعدل في المرفقات
لكن السؤال هو ما فائده هذا المؤشر ؟
- 09-01-2011, 03:07 PM #4
رد: مساعدة في تصحيح كود مؤشر
السلام عليكم ورحمة الله وبركاته
بارك الله فيك اخي مستر دولار على مساعدتك القيمة
اسأل الله ان يجازيك الخير في الدنيا والاخرة
بالنسبة للفائدة من هذا المؤشر الامر ينقسم الى شقين:
الاول هو التعرف على الاكواد البرمجية وبالتحديد بعض الاكواد التي تساعدني في التعديل على المؤشرات بلغة الميتاتريدر بما يخدمني ويساعدني في المتاجرة
اما السبب الثاني فاني اريد ان اختبر فكرة معينة لدي عن استخدام خطوط الترند مع غياب الفواصل بين الشمعات.....لعل الامر يكون فيه فائدة
اكرر شكري لك اخي الكريم مستر دولار