[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 280

 
drknn:

你已经重复了几次错误。

你放一个if条件,然后在它的括号里写一些东西,然后在最后的括号后面放一个分号。 像这样。

这是不对的。这一点是正确的。

我明白了,我现在就试试 - 但实际上这是一个模板,我必须在其中替代买卖条件 - 因此我是一个初学者。
 
drknn:

你已经重复了几次错误。

你放一个if条件,然后在它的括号里写一些东西,然后在最后的括号后面放一个分号。 像这样。

这是不对的。这一点是正确的。

没有什么好东西出来:(
 

简而言之,我有耐心,正好一百行。在你的想法中,绝对不清楚哪里应该关闭条件。例如,它打开了if(total<1){,但很难理解在哪里关闭它。好吧,这里有一个文件,其中有一百多行代码被修复。看看它的格式,不要懒得放大括号......。

该文件附在帖子后面。这一百行足以看出使用正常和不正常的代码格式的区别。

附加的文件:
newx2.mq4  6 kb
 
drknn:

简而言之,我有耐心,正好一百行。在你的想法中,绝对不清楚哪里应该关闭条件。例如,if(total<1){ 但很难理解在哪里关闭它。好吧,这里有一个文件,其中有一百多行代码被修复。看看它的格式,不要懒得放大括号......。

该文件附在帖子后面。

出现了两个错误--一般情况下不工作。(程序结束时的错误)
 
而且会有错误--不清楚大括号应该放在哪里。如果我理解其意图,我会的。
 
LeksusMt4:
输出两个错误--根本不工作。(endprograms中的错误)
交易机器人的本质是按照Sar指标买入和卖出 - 也许我没有正确设置条件?
 
你没有正确地放置大括号,并把分号放在不属于它们的地方。格式化代码!!!。
 
LeksusMt4:
交易机器人的本质是按照Sar指标买入和卖出--也许我没有正确设置条件?


这里是代码编辑器:http://depositfiles.com/files/2ippj8zao- 下载、解压、运行(不需要安装)。在这个编辑器中打开我之前为你发布的文件,看看你的代码--垂直虚线的位置。

在任何指标之后的买入和卖出都可以以不同方式执行。你的意图并不完全清楚。

P.S.

编辑器已经为MQL4进行了改进,括号内的高亮显示也可以使用。

 
drknn:


这里是为你提供的代码编辑器:http://depositfiles.com/files/2ippj8zao- 下载,解压,运行(不需要安装)。在这个编辑器中打开我之前为你发布的文件,看看你的代码--垂直虚线的位置。

在任何指标之后的买入和卖出都可以以不同方式执行。你的意图并不完全清楚。

P.S.

该编辑器已经根据MQL4语言进行了定制,并且可以使用括号突出显示。

非常感谢您!!!!
 
#property  indicator_separate_window

#property  indicator_buffers 2
#property  indicator_color1  DarkGray
#property  indicator_width1  5
#property  indicator_color2  Red
#property  indicator_width2  2



extern int    Show_For_Last_N_Days   = 100;
extern string _                      = "";
extern int    MA1_Period             = 12;
extern int    MA2_Period             = 26;
extern int    MA3_Period             = 9;

double        MacdBuffer[];
double        SignalBuffer[];


int init() {
   IndicatorBuffers(2);
   IndicatorShortName("MACD("+MA1_Period+","+MA2_Period+","+MA3_Period+")");
   IndicatorDigits(Digits+1);

   SetIndexLabel(    0,"MACD");
   SetIndexBuffer(   0,MacdBuffer);
   SetIndexStyle(    0,DRAW_HISTOGRAM);
   SetIndexDrawBegin(0,MA2_Period);

   SetIndexLabel(    1,"Signal");
   SetIndexBuffer(   1,SignalBuffer);
   SetIndexStyle(    1,DRAW_LINE);
   SetIndexDrawBegin(1,MA2_Period);

   return(0);
}




int start() {
   int i                       = Bars - IndicatorCounted() - 1;

   while(i>=0) {

      if(Time[i]>=iTime(NULL,PERIOD_D1,Show_For_Last_N_Days)) {
         MacdBuffer[i+1]       = iMA(NULL,0,MA1_Period,0,MODE_EMA,PRICE_CLOSE,i+1) - iMA(NULL,0,MA2_Period,0,MODE_EMA,PRICE_CLOSE,i+1);

         for(int k=0; k<=MA3_Period; k++) {                                  //---- signal line counted in the 2-nd buffer
            SignalBuffer[k+1]  = iMAOnArray(MacdBuffer,0,MA3_Period,0,MODE_SMA,k+1);
         }
      }

      i--;
   } // while(i>=0) {

   return(0);
}



- 为什么iMAOnArray在这个例子中不工作(结果是不显示信号线)?
谢谢你!