[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 241

 

亲爱的论坛成员,你们好!!

如果不是太麻烦,你能给我一个提示吗?

有这样一个指标

signalTable.mq4

位于
https://www.mql5.com/ru/code/8179
,我决定在闲暇时为我重新制作........,在编译过程中一直出现错误
'\end_of_program' - unbalanced left parenthesis	C:\Program Files\MetaTrader - Alpari\experts\indicators\signalTable_v1.mq4 (114, 1)

114行--这很清楚,但第一手的知识,因为它不是很清楚。

也许有人会建议一个明智的.......

代码本身见下文。(我决定用MACD代替SAR。)

//----
#property indicator_chart_window
extern int scaleX=20,
           scaleY=20,
           offsetX=35,
           offsetY=20,
           fontSize=20,
           corner=2,
           symbolCodeBuy=67,
           symbolCodeSell=68,
           symbolCodeNoSignal=73;
extern color signalBuyColor=Gold,
             signalSellColor=MediumPurple,
             noSignalColor=WhiteSmoke,
             textColor=Gold;
int period[]={1,5,15,30,60,240,1440,10080,43200};
string periodString[]={"M1","M5","M15","M30","H1","H4","D1","W1","MN1"},
       // создаем еще один массив с названиями индикаторов
       signalNameString[]={"MA","WPR","MACD"};
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   // таблица сигналов
   for(int x=0; x<9; x++)
      for(int y=0; y<3; y++)
        {
         ObjectCreate("signal"+ x+ y,OBJ_LABEL,0,0,0,0,0);
         // изменяем угол привязки
         ObjectSet("signal"+ x+ y, OBJPROP_CORNER, corner);
         ObjectSet("signal"+ x+ y, OBJPROP_XDISTANCE, x* scaleX+ offsetX);
         ObjectSet("signal"+ x+ y, OBJPROP_YDISTANCE, y* scaleY+20);
         ObjectSetText("signal"+ x+ y,CharToStr( symbolCodeNoSignal),
                       fontSize,"Wingdings", noSignalColor);
        }
   // названия таймфреймов    
   for( x=0; x<9; x++)
     {
      ObjectCreate("textPeriod"+ x,OBJ_LABEL,0,0,0,0,0);
      // изменяем угол привязки      
      ObjectSet("textPeriod"+ x, OBJPROP_CORNER, corner);
      ObjectSet("textPeriod"+ x, OBJPROP_XDISTANCE, x* scaleX+ offsetX);
      ObjectSet("textPeriod"+ x, OBJPROP_YDISTANCE, offsetY-10);
      ObjectSetText("textPeriod"+ x, periodString[ x],8,"Tahoma", textColor);
     }
   // названия индикаторов 
   for( y=0; y<3; y++)
     {
      ObjectCreate("textSignal"+ y,OBJ_LABEL,0,0,0,0,0);
      // изменяем угол привязки      
      ObjectSet("textSignal"+ y, OBJPROP_CORNER, corner);
      ObjectSet("textSignal"+ y, OBJPROP_XDISTANCE, offsetX-25);
      ObjectSet("textSignal"+ y, OBJPROP_YDISTANCE, y*( scaleY)+ offsetY+8);
      ObjectSetText("textSignal"+ y, signalNameString[ y],8,"Tahoma", textColor);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   for(int x=0; x<9; x++)
     {
      // сигнал на покупку
      if(iMA(Symbol(), period[ x],13,0,0,0,0)>iMA(Symbol(), period[ x],24,0,0,0,0))
         ObjectSetText("signal"+ x+"0",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(iMA(Symbol(), period[ x],13,0,0,0,0)<iMA(Symbol(), period[ x],24,0,0,0,0))
          ObjectSetText("signal"+ x+"0",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
     }
   for( x=0; x<9; x++)
     {
      // сигнал на покупку
      if(MathAbs(iWPR(Symbol(), period[ x],13,0))<20.0)
         ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(MathAbs(iWPR(Symbol(), period[ x],13,0))>80.0)
            ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
      // нет сигнала
      else
           ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeNoSignal), fontSize,"Wingdings", noSignalColor);
     }
   for( x=0; x<9; x++)
     {
      // сигнал на покупку
      if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)<Close[0])
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)>Close[0])
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   // при удалении нашего индикатора нужно удалить все объекты,
   // которые мы уже создали
   ObjectsDeleteAll();
   return(0);
  }
//+------------------------------------------------------------------+
 
dmmikl86 >> :

如何为自定义指标中的缓冲区指定名称?


SetIndexLabel(int index, string label)。

 
igrok2008 >> :

亲爱的论坛成员,你们好!!

如果不是太麻烦,你能给我一个提示吗?

有这样一个指标

位于我决定在某种程度上为我重新安排........,我在编译过程中一直得到一个错误。

114行--这很清楚,但第一手的知识,因为它不是很清楚。

也许有人会建议一个明智的.......

代码本身见下文。(决定将SAR改为MACD)

      if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)<Close[0]))
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(iMACD(Symbol(), period[ x],(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)>Close[0]))
         ObjectSetText("signal"+ x+"2",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);

在第一行和第三行,注意最后一个结尾的小括号--你少了它们。

 

非常感谢阿尔苏,但第114行是

      if(MathAbs(iWPR(Symbol(), period[ x],13,0))<20.0)
         ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeBuy), fontSize,"Wingdings", signalBuyColor);
      // сигнал на продажу   
      else if(MathAbs(iWPR(Symbol(), period[ x],13,0))>80.0)
            ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeSell), fontSize,"Wingdings", signalSellColor);
      // нет сигнала
      else                                      это114 строка
           ObjectSetText("signal"+ x+"1",CharToStr( symbolCodeNoSignal), fontSize,"Wingdings", noSignalColor);
因此,当你编译时,链接会转到这一行,这就是......................................... 的问题所在。
 

向大家问好!

我想了很久,所以我决定向专家求助。

特别是在我看来,这个问题是一个微不足道的问题。

我想你能处理好。:)

事情是这样的。

有一个exel-file。单元格包含数据。(我将尽量做到有文采)。

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

等。

我怎样才能使它与查找/替换一起工作?

kolo/6895.jpg,kolo/6895.jpg,kolo/6895.jpg

kolo/6896.jpg,kolo/6896.jpg,kolo/6896.jpg

kolo/7353.jpg,kolo/7353.jpg,kolo/7353.jpg

kolo/8898.jpg,kolo/8898.jpg,kolo/8898.jpg

kolo/6899.jpg,kolo/6899.jpg,kolo/6899.jpg

有很多东西要写.....:)

非常感谢你的提示!


 
Sokil >> :

向大家问好!

我想了很久,所以我决定向专家求助。

特别是在我看来,我的问题是一个微不足道的问题。

我想你能处理好。:)

事情是这样的。

有一个exel-file。单元格包含数据。(我将尽量做到有文采)。

kolo/6895.jpg

kolo/6896.jpg

kolo/6897.jpg

kolo/7353.jpg

kolo/8899.jpg

....

等。

我怎样才能使它与查找/替换一起工作?

kolo/6895.jpg,kolo/6895.jpg,kolo/6895.jpg

kolo/6896.jpg,kolo/6896.jpg,kolo/6896.jpg

kolo/7353.jpg,kolo/7353.jpg,kolo/7353.jpg

kolo/8898.jpg,kolo/8898.jpg,kolo/8898.jpg

kolo/6899.jpg,kolo/6899.jpg,kolo/6899.jpg

有很多东西要写.....:)

非常感谢你的好建议!



最简单的方法是使用公式=RC[-1]&","&RC[-1]&","&RC[-1]".你必须重复三次内容并以逗号分隔。

然后你可以复制单元格并将其内容作为数值粘贴。

 
谢谢,这是个想法!
 

让任务更加困难如何?

得到了:KOLO/6895.jpg

Do: kolo/6895.jpg,kolo/6895.jpg,kolo/6895_.jpg

=RC[-1]&","&RC[-1]&","&RC[-1]"在我看来,在这里是没有用的。

 
对于某些工具,例如欧元/美元,报价为小数点后5位。但在我的环境变量中,数值只有4位。我怎样才能获得环境变量的完整值?
 
Sokil >> :

让任务更加困难如何?

得到了:KOLO/6895.jpg

Do: kolo/6895.jpg,kolo/6895.jpg,kolo/6895_.jpg

=RC[-1]&","&RC[-1]&","&RC[-1]"据我所知,在这里没有帮助。


有什么复杂的问题?

至少有两个选择,第一个是删除"。jpg",然后把它添加到公式中,在较长的公式中的第二条像=RC[-1]&","&RC[-1]&","&LEVSIMV(RC[-1]; DLSTR(RC[-1])-4)&。"_"&PRAWSIMW(RC[-1];4),如果需要,你可以通过查找来寻找分隔符,或者通过VBA完全做一个基本的循环。

每个问题都有解决方案,但问题必须精确设定。

原因: