任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 160

 
Zolotai:

这与代码没有关系。我只是需要合适的条件。问题是,有什么办法可以知道当前酒吧的时间吗?我如何知道一个酒吧的时间?
Time[]iTime()
 
Zolotai:

这与代码没有关系。我只是需要合适的条件。问题是,有什么办法可以知道当前酒吧的时间吗?我怎么能从根本上查出酒吧的时间呢?
Time[index_necessary_bar]; 将返回数字为 "index_necessary_bar "的条形图的开放时间。你可以对其他符号和时间段使用iTime()。
 

如何从该指标在EA中获得信号

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
#define  SH_BUY   1
#define  SH_SELL  -1
extern int     AllBars=0;
extern int     Otstup=30;
extern double  Per=9;
int            SH,NB,i,UD;
double         R,SHMax,SHMin;
double         BufD[];
double         BufU[];

int init()
{
   if (Bars<AllBars+Per || AllBars==0) NB=Bars-Per; else NB=AllBars;
   IndicatorBuffers(2);
   IndicatorShortName("SHI_SilverTrendSig");
   SetIndexStyle(0,DRAW_ARROW,0,1);
   SetIndexStyle(1,DRAW_ARROW,0,1);
   SetIndexArrow(0,159);
   SetIndexArrow(1,159);
   SetIndexBuffer(0,BufU);
   SetIndexBuffer(1,BufD);
   SetIndexDrawBegin(0,Bars-NB);
   SetIndexDrawBegin(1,Bars-NB);
   ArrayInitialize(BufD,0.0);
   ArrayInitialize(BufU,0.0);
   return(0);
}
int start()
{
   int CB=IndicatorCounted();
   if(CB<0) return(-1); else if(NB>Bars-CB) NB=Bars-CB;
   for (SH=1;SH<NB;SH++)
   {
      for (R=0,i=SH;i<SH+10;i++) {R+=(10+SH-i)*(High[i]-Low[i]);}      R/=55;

      SHMax = High[Highest(NULL,0,MODE_HIGH,Per,SH)];
      SHMin = Low[Lowest(NULL,0,MODE_LOW,Per,SH)];
      if (Close[SH]<SHMin+(SHMax-SHMin)*Otstup/100 && UD!=SH_SELL) { BufU[SH]=Low[SH]-R*0.5; UD=SH_SELL; }
      if (Close[SH]>SHMax-(SHMax-SHMin)*Otstup/100 && UD!=SH_BUY) { BufD[SH]=High[SH]+R*0.5; UD=SH_BUY; }
   }
   return(0);
}

我通过iCustom尝试了一下,但在指定任何行数或条数时,它说数值是2147483647 ...

 
VOLDEMAR:

如何从该指标在EA中获得信号

我通过iCustom尝试了一下,但在指定任何行数或条数时,它说数值是2147483647 ...

这个值是EMPTY_VALUE。如果没有信号,它默认是在指标缓冲区。循环浏览缓冲区,获取非空值。
 

像这样检查他的缓冲器。

if (Bufer0>0) {               // в double Bufer0 через iCustom() ранее получено значение буфера индикатора 0
   if (Bufer0!=EMPTY_VALUE) {
      // поймали значение в буфере
      }
   }
 
artmedia70:

像这样检查其缓冲区。


好的,我明白了,但缓冲区内可能有一百个数值,如何找到最后一个,如何确定最后一个是买入信号 还是卖出信号?
 
明白了,谢谢。
 
VOLDEMAR:

好的,我明白了,但缓冲区内可能有数百个数值,如何找到最后一个,如何确定哪一个是最后的买入信号或卖出?

我没有编译代码,也没有在MT中查看,但BufD是第一个蓝色缓冲区,BufU是零个红色缓冲区。他们在屏幕上显示什么,蓝色和红色的点?因此,看看哪种颜色的点指向什么地方。并把它们抓到缓冲区里--红色在零缓冲区,蓝色在第一个缓冲区。

嗯...而数值很可能需要在第一条上抓取,没看到它重绘与否。或者,也许需要一个从零条开始的循环,直到遇到这个值。这完全取决于它是如何发出信号的...

 
你好,你能告诉我为什么我不能在Mt4中配置任何EA,所有的EA在测试策略时都显示为负值!你能告诉我吗?
 
serjlarkin:
你好,你能告诉我为什么我不能在Mt4中设置任何一个专家顾问,当我测试 策略时, 所有的专家顾问都显示为负值 !
什么负值?