//+------------------------------------------------------------------+ //| text win 2.mq5 | //| Copyright CREATE BY DK | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "CREATE BY DK" #property link "http://www.mql5.com" #property version "1.00" #property indicator_separate_window #property indicator_plots 1
string ddock = "try it out"; int windows = -1; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ intOnInit() { //--- indicator buffers mapping /* if ((ENUM_PROGRAM_TYPE)MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR) windows=ChartWindowFind();
if (ObjectFind(0,ddock)<0) { ObjectCreate(0,ddock,OBJ_LABEL,windows,0,0); ObjectSetInteger(0,ddock,OBJPROP_XDISTANCE,200); ObjectSetInteger(0,ddock,OBJPROP_YDISTANCE,20); ObjectSetInteger(0,ddock,OBJPROP_CORNER, CORNER_RIGHT_UPPER); ObjectSetInteger(0,ddock,OBJPROP_COLOR,LightBlue); ObjectSetString(0,ddock,OBJPROP_FONT,"Arial"); ObjectSetInteger(0,ddock,OBJPROP_FONTSIZE,14); ObjectSetString(0,ddock,OBJPROP_TEXT, "TRYING VERY HARD"); } else Print("ddock already exists"); */ /* if((ENUM_PROGRAM_TYPE)MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR) windows=ChartWindowFind(); */ // check if label object does not already exist and create it if(ObjectFind(0,ddock)<0) { // Create label in indicator's window ObjectCreate(0,ddock,OBJ_TEXT,windows,0,0); // Set X and Y distance from UPPER RIGHT CORNER ObjectSetInteger(0,ddock,OBJPROP_XDISTANCE,200); ObjectSetInteger(0,ddock,OBJPROP_YDISTANCE,20); ObjectSetInteger(0,ddock,OBJPROP_CORNER, CORNER_RIGHT_UPPER); // Set text properties: colour, font and font size ObjectSetInteger(0,ddock,OBJPROP_COLOR,LightPink); ObjectSetString(0,ddock,OBJPROP_FONT,"Arial"); ObjectSetInteger(0,ddock,OBJPROP_FONTSIZE,14); // Set text to display ObjectSetString(0,ddock,OBJPROP_TEXT,"TRYING VERY HARD"); } elsePrint("ddock already exists");
//--- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ intOnCalculate(constint rates_total, constint prev_calculated, constdatetime& time[], constdouble& open[], constdouble& high[], constdouble& low[], constdouble& close[], constlong& tick_volume[], constlong& volume[], constint& spread[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ /* void OnDeinit(const int reason) { if (!ObjectFind(0,ddock)<0) ObjectDelete(0,ddock); } /* void OnDeinit(const int reason) { //--- if(!ObjectFind(0,ddock)<0) ObjectDelete(0, ddock); } */
谢谢wald99:我正在努力。
我建议Metaquotes创建一个课程,从基础(语法)开始,如果可能的话,也有一些视频,具体到mq5:这对开始编程的人非常有用。
你好,Investeo
非常感谢,你的代码是有效的,也就是说,标签显示出来了,但是值没有更新。我是否犯了一个错误?
这是我的代码。
Walb99,
试试这个。问题是,你只在标签对象 不可用的情况下才试图更新数值。我在标签上添加了时间戳,所以你可以看到每一个刻度的时间更新。
Walb99,
试试这个。问题是,你试图只在标签对象 不可用时才更新数值。我在标签上添加了时间戳,所以你可以看到每一个刻度的时间更新。
谢谢,这很有效
如果我把标签颜色的信息也放到括号里,标签的颜色也会正常更新。
在上面的rsi例子中,你把那个对象名称分配到哪里?我读了整个代码,但不明白。
我只是想把一个简单的文本放到指标窗口中,我只是不能得到和上面RSI例子一样的结果。
我的代码:
结果。
好的,我想我已经从显示文本开始工作了,接下来我将使用指标。但谁能告诉我为什么我不能使用obj_label 而不是obj_text来使它显示文本?