标准指标超标? - 页 3

 
Rosh,我想弄清楚的是,错误的发生是否是因为USDCHF柱子开始得比较晚。为了追踪这一点,我已经删除了MA(它只会碍事),并额外引入了Close[1]和Open[1]。意味着Open[1]将总是正确的,如果这是问题,差异将在Open[0]中,而Open[1]将不会。现在检查。我错过了什么?
 
好吧,我附上了2张图片,这表明当GBPJPY上出现一个新的条形图 时,你参考的是旧的未改变的USDCHF图表数据,因此你的算法计算是不正确的。只有在一种情况下才会计算正确--如果你把它放在本地的 "图表 "上--但目标是相反的。
 
我同意。但前提是用Open[1]测试显示没有错误。在这种情况下,我将确信,是的,MT中没有错误。有某种...谈到这里,我想说的是:"我认为这是个很好的例子。

另外,挑战在于找到一种绕过限制的方法。说,在美元兑瑞郎数据到来之前,禁止重绘欧元兑美元指标。现在我正在测试以下变体

while(nPos > 1 || (nPos == 1 && Time[0] <= iTime("USDCHF", 0, 0)))



但这完全取决于MT如何计算IndicatorCounted。如果通过勾选到达时间--它不会起作用,如果通过条形重划的事实--它将起作用。让我们来看看。

 
这里现在是11-56 MSK或9-56服务器时间。
Open[1]EURUSD H1 是1.2755
Open[1] USDCHF H1是1.2443

欧元 出现了一个新的一小时柱,法郎 没有什么变化。你的算法将做什么?
 
我同意。但只有在тестирование ,用Open[1]显示没有错误发生。在这种情况下,我将确信,是的,MT中没有错误。有某种...沉默寡言或什么的。

另外,挑战在于找到一种绕过限制的方法。说,在美元兑瑞郎数据到来之前,禁止重绘欧元兑美元指标。现在我正在测试以下变体

while(nPos > 1 || (nPos == 1 && Time[0] <= iTime("USDCHF", 0, 0)))



但这里一切都取决于MT如何计算IndicatorCounted。如果通过勾选到达时间--它将不工作,如果通过条形重绘的事实--它将工作。让我们来看看。




停止,停止。这里是你写的:
正如你从代码中看到的,该指标不依赖于它所连接的货币。这对美元兑瑞郎始终有效。我们把指标附在两个图表上,在我的例子中是澳元兑美元和欧元兑美元,但我想你可以把它附在任何图表上。我们把它放在几天后。我们看到,这些图表是不同的。同样的指标。实时的。同是MT。强行重绘(断开-连接)--它们变得相同。一段时间以来。

所以我们正在谈论在线工作,现在我们已经跳到了一个测试员。我没有时间做这个。
 
现在的时间是MSK11-56或服务器时间9-56。<br / translate="no"> 打开[1] 欧元兑美元H1是1.2755
打开[1] USDCHF H1是1.2443

欧元 出现了一个新的小时线,FRANK上 没有任何变化。你的算法将做什么?



是的,你是对的。你必须注意酒吧的时间,而不是它的号码。
 
<br / translate="no">所以我们正在谈论在线工作,现在我们已经跳到了一个测试员。我没有时间做这个。


没有测试器。只在网上。
 
删除
 
亲爱的Rosh,请你解释一下以下情况是如何发生的。
我已经把它输出到酒吧列表的第二个文件中,以便能够看到下拉菜单。

//+------------------------------------------------------------------+
//|                                             RedrawIndicators.mq4 |
//|                                                           Satori |
//|                             http://www.metaquotes.ru/forum/7790/ |
//+------------------------------------------------------------------+
#property copyright "Satori"
#property link      "http://www.metaquotes.ru/forum/7790/"

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Yellow
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
extern int       BarsCount=0;   //кол-во считаемых баров, если 0 - то все
extern string    Currency1="EURUSD";
extern string    Currency2="GBPUSD";

int handle,handle2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,Currency1);

   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexLabel(1,Currency2);

   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);

   handle= FileOpen("TestFile.csv",FILE_CSV|FILE_WRITE,';');
   handle2= FileOpen("TestFile2.csv",FILE_CSV|FILE_WRITE,';');
  if(handle<1 || handle2<1 )
   {
    Print("Файл не обнаружен, последняя ошибка ", GetLastError());
    return(false);
   }
   else
   {
   FileWrite (handle,"index",Symbol(),"index",Currency1,"index",Currency2);
   FileWrite (handle2,"index",Currency1,Currency2,Symbol());
   }

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   FileClose(handle);
   FileClose(handle2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int i;
   int test1,test2;
   datetime tt1,tt2,TimeMain;
   BarsCount=MathMin(Bars,(MathMin(iBars(Currency1,Period()),iBars(Currency2,Period()))));
   Print (Bars," ",iBars(Currency1,Period())," ",iBars(Currency2,Period()));
   Print (BarsCount);
   
   for (i=0;i<BarsCount-counted_bars;i++)
      {
       TimeMain=Time[i];
       test1=iBarShift(Currency1,Period(),TimeMain);
       test2=iBarShift(Currency2,Period(),TimeMain);
       
       ExtMapBuffer1[i]=iTime(Currency1,Period(),test1);
       ExtMapBuffer2[i]=iTime(Currency2,Period(),test2);

       ExtMapBuffer3[i]=(ExtMapBuffer1[i]-ExtMapBuffer2[i]);
       tt1=Time[i]-ExtMapBuffer1[i];
       tt2=Time[i]-ExtMapBuffer2[i];
       if (ExtMapBuffer3[i]!=0 || tt1!=0 || tt2!=0) 
         {
         if (FileWrite (handle,
         i,TimeToStr(Time[i]),iBarShift(Currency1,Period(),TimeMain),TimeToStr(ExtMapBuffer1[i]),iBarShift(Currency2,Period(),TimeMain),TimeToStr(ExtMapBuffer2[i])
          )<=0) Print("нифига не пишет!!");
         }
        FileFlush(handle);
        if (FileWrite (handle2,i,
         TimeToStr(iTime(Currency1,Period(),test1)),
         TimeToStr(iTime(Currency2,Period(),test2)),
         TimeToStr(Time[i])
          )<=0) Print("нифига не пишет!!");
        FileFlush(handle2);

      }//----
   return(0);
  }
//+------------------------------------------------------------------+



我们在其他两家经纪公司,而不是Alpari(MIG,FIBO)的EURGBP 4H上运行它。
两者的图片几乎相同,我将展示一个MIG的例子。
EURGBP指数 EURUSD指数 GBPUSD指数
15 30.10.2006 0:00 16 29.10.2006 23:00 16 29.10.2006 23:00
46 23.10.2006 0:00 47 22.10.2006 23:00 47 22.10.2006 23:00
77 16.10.2006 0:00 78 15.10.2006 23:00 78 15.10.2006 23:00
108 09.10.2006 0:00 109 08.10.2006 23:00 109 08.10.2006 23:00
139 02.10.2006 0:00 139 02.10.2006 0:00 140 01.10.2006 23:00

以第46-47小节为例。
在第二个文件中。
45 23.10.2006 4:00 23.10.2006 4:00 23.10.2006 4:00
46 22.10.2006 23:00 22.10.2006 23:00 23.10.2006 0:00
47 22.10.2006 23:00 22.10.2006 23:00 22.10.2006 23:00
48 20.10.2006 20:00 20.10.2006 20:00 20.10.2006 20:00

似乎可以......但问题是--23.10.2006 00:00条在所有三种货币的历史中都出现了!这就是问题所在。也就是说,它在图表上,它在报价档案中。
但是,指标中似乎没有这个内容。
最后一个技巧--如果你试图在这一栏上放一条垂直线,它将转移到下一栏。:о)我试着用垂直线做标记,但没有用。



 
你介意把它做成一幅画吗?一张截图。在你的脑海中很难安排这些栏目。
原因: