نوشتن متن در چارت


پس از دیدن ویدیو زیر می‌توانید اندیکاتور نمایش اسپرد روی چارت را بنویسید. علاوه بر آن از یاد می‌گیرید که هر متنی که خواستید در اندیکاتور یا اکسپرتتان اضافه کنید.
 

//+——————————————————————+
//| اتیکت(Label) |
//+——————————————————————+
bool Label(const long chart_ID=0, // ای دی چارت
const string name=”Label”, // اسم
const int sub_window=0, // شماره پنجره
const int x=0, // X فاصله محور
const int y=0, // Y فاصله محور
const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // انتخاب گوشه چارت
const string text=”Label”, // متن
const color clr=clrRed, // رنگ
const int font_size=10, // اندازه فونت
const string font=”Arial”, // فونت
const double angle=0.0, // زاویه نوشته
const ENUM_ANCHOR_POINT anchor=ANCHOR_LEFT_UPPER, // نقطه اتکا نوشته
const bool back=false, // قرار گرفتن در پشت
const bool selection=false, // قابلیت حرکت
const bool hidden=true, // مخفی شدن از لیست
const long z_order=0) // اولویت برای کلیک ماوس
{
ResetLastError();
if(ObjectCreate(chart_ID,name,OBJ_LABEL,sub_window,0,0))
{
ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
ObjectSetDouble(chart_ID,name,OBJPROP_ANGLE,angle);
ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor);
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
ChartRedraw();
return(true);
}
else
{
Print(__FUNCTION__,
“: failed to create => “,name,” object! Error code = “,GetLastError());
return(false);
}
}
//+——————————————————————+

مثال: ما می‌خواهیم اسپرد جفت ارزی که اندیکاتور یا اکسپرت روی آن اجرا شده است را ببینیم. برای اینکار باید تابع بالا را در جای مناسبش فراخوانی کنیم و ورودی‌های مناسب را برایش تعریف کنیم. می‌توانید به عنوان نمونه از کد زیر استفاده کنید.

Label(0,”spread”,0,150,150,CORNER_RIGHT_UPPER,”Spread : ” + IntegerToString(SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)),clrBlack,14);

کد بالا به درستی در متاتریدر5 کار خواهد کرد. ولی در متاتریدر4 با یک خطایی مواجه می‌شوید. برای رفع خطا کافیه که کد زیر را قبل از فراخوانی تابع، بنویسید.

ObjectDelete(0,”spread”);

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *