[السلام عليكم ورحمة الله وبركاته
اتمنى المساعدة من الاخوان الذين لديهم معرفة في برمجة المؤشرات
وجدت مؤشرا في احد المنتديات يرسم خط عمودي من هاي الشمعة الى اللو بالاضافة الى اظهار الرينج للشمعة (ٌrange)
حاولت ان اعدل المؤشر حتى يظهر مستطيل بدلا من الخط العمودي كما في الصورة المرفقة لكن بعد محاولات استمرت اياما فقدت الامل في محاولة التعديل على المؤشر اتمنى المساعدة من الاخوة مرفق كود المؤشر
ملاحظة : في المرفقات كود مؤشر اخر يرسم مستطيل واحد على الشارت من االهاي الشمعة الى اللو لكنه لا يرسم اكثر من مستطيل وعند ظهور شمعة جديدة يختفي المستطيل.........ان كان كود هذا المؤشر اسهل من كود المؤشر الاول اتمنى التعديل عليه حتى يرسم مستطيلات على الشموع الماضية
كود المؤشر الاول
[/SIZE][/FONT]كود:
//+------------------------------------------------------------------+
//| 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"]
الملف المرفق 258250
