[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 264

 

请告诉我如何将时间分配给指标行 val1[]。或者告诉我怎么做,用什么,因为我想不出来。Laguerre指标。

i=CountBars-1;
   while(i>=0)
   {
      L0A = L0;
      L1A = L1;
      L2A = L2;
      L3A = L3;
      L0 = (1 - gamma)*Close[i] + gamma*L0A;
      L1 = - gamma *L0 + L0A + gamma *L1A;
      L2 = - gamma *L1 + L1A + gamma *L2A;
      L3 = - gamma *L2 + L2A + gamma *L3A;

      CU = 0;
      CD = 0;
      
      if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
      if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
      if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

      if (CU + CD != 0) LRSI = CU / (CU + CD);
      val1[i] = LRSI;
          i--;
        }
         

   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   if(limit>CountBars)
      limit=CountBars;
  
   for(int c=1;c<limit;c++)
        
{if(val1[c]>0.45)
  // присваиваем время;}

例如,当行val1[c]向上越过0.45时,时间值被设置在变量TimeBegin中,当它向下越过时,时间值被设置在变量TimeEnd中。以此类推,贯穿整个图表。

我们的想法是,当线条向上穿越0.45和向下穿越0.45之后,对于这个时期,在图表中计算点数(对于这个信号,指标最大给出了多少个点数)。我希望我能够解释。

附加的文件:
 
VeyRON123:
有什么办法可以在不关闭电脑网络的情况下断开MT4本身的网络连接?
hrenfx 20.03.2011 16:18

通过终端设置中的 "代理 "复选框与你的经纪人断开连接。一招一式,你要么下线,要么上线。

 
你好,请你告诉我为什么标准的OrderSend 函数不能工作 只是从这个网站的教程中提取了源代码,但什么也没有发生。当我添加错误输出时,它显示4109 -在一个数组中未 初始化的字符串...
 
谢谢你的提示,我会研究的...
 
Golden-dark:
你好,请你告诉我为什么标准的OrderSend 函数不能工作 只是从这个网站的教程中提取了源代码,但什么也没有发生。当我添加错误输出时,它显示4109 - 在一个数组中未初始化的字符串...
给我看完整的代码
 

同志们好!

你能告诉我以下代码中的错误是什么吗?

//+------------------------------------------------------------------+
//|                                                         BB_k.mq4 |
//|                                                     |
//|                                                          no link |
//+------------------------------------------------------------------+
#property copyright "123"
#property link      "no link"

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 MediumSpringGreen

#property indicator_width1 1

double   buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {

   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Koefficient");
   SetIndexShift (0, 0);

   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   
   while (i>=0)
   {
      double x1 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 1, i); //Верхняя полоса
      double x2 = iBands(NULL, 0, 20, 2, 0, PRICE_LOW, 2, i); //Нижняя полоса
   
      buf_0[i] = x1 / x2;
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+

要点是:我想要一个指标,显示布林带上轨除以布林带下轨的数值线。

但没有任何结果。

指示器窗口是空的。

如果有人能提供帮助,请提前感谢!

 
ramirez17:

同志们好!

你能告诉我以下代码中的错误是什么吗?

要点是:我想要一个指标,显示布林带上轨除以布林带下轨的数值线。

但没有任何结果。

指示器窗口是空的。

如果有人能提供帮助,请提前感谢!

buf_0[i] = x1 / x2;

你在最左边的条上有x2=0。而除以零并不是一件好事......。

 
ilunga:

你在最左边的条上有x2=0。而除以零并不是一件好事......。


例如,你可以做什么来防止这种情况?
 
ramirez17:

例如,你可以做什么来防止这种情况?
if (x2 == 0) buf_0[i] = 0;
else buf_0[i] = x1 / x2;
最好是从根本上防止这种情况的发生。
 
你能给我一个提示吗?有两个条件,买入和卖出。在捕捉到卖出的假信号后,例如买入,专家顾问开始通过这个假信号再次开立下一个头寸,并再次捕捉到一个假的。我应该如何让我的EA在亏损后等待相反方向的信号,而不是再次被虚假信号打开?谢谢你!