学习逻辑 - 页 2

 
从现在起,缺乏办公室和拉链不再是缺乏逻辑的标志 :)
 
Integer:

你知道,而且我们没有问题。特别是对你的文本格式。你显然有一个压缩文件。


从我读到的内容来看:"......,由于思想的口头表达不当而发生的错误"。

我忘了在我第一篇文章的最后加一个笑脸。

 
DDFedor:

你为什么需要笑脸? 你认为这个话题是个笑话吗?

不......笑脸是不同的(有一些非常悲伤的笑脸)。
 
age_nt:
维克多!如果我理解正确,你准备帮助....,我不明白我哪里 "没有逻辑"


我们可以开始了吗?

在代码的上下文中,这一节在我看来是不合逻辑的。

bool showEUR, showUSD, showGBP, showCHF, showJPY, showRAVI;
   if ( StringFind(Symbol(), "EUR", 0) != -1) showEUR = TRUE;
   if ( StringFind(Symbol(), "USD", 0) != -1) showUSD = TRUE;
   if ( StringFind(Symbol(), "GBP", 0) != -1) showGBP = TRUE;
   if ( StringFind(Symbol(), "CHF", 0) != -1) showCHF = TRUE;
   if ( StringFind(Symbol(), "JPY", 0) != -1) showJPY = TRUE;

没有明确的初始化,尽管在其他地方有一个初始化。不使用布尔表达式。有一个变量已经完全退出了。非标准的格式化。

我已经准备好听取反对意见了。

 
gip:


非标准的格式化。


解释
 

我试着写一个指标,最初将彩色的条形图变成所需的颜色。我不明白代码的逻辑,我从另一个指标的现成代码中建立了它,但我找不到它:(

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Red

#property indicator_width1 2
#property indicator_width2 2

extern int NumBars   =  100;

double upbuf[];
double dnbuf[];

int init() {
   IndicatorBuffers(2);
   SetIndexBuffer(0, upbuf);
   SetIndexBuffer(1, dnbuf);
   SetIndexStyle(0, DRAW_HISTOGRAM,STYLE_SOLID);
   SetIndexStyle(1, DRAW_HISTOGRAM,STYLE_SOLID);
   IndicatorShortName("Bars");
   return (0);
}

int deinit() {
   return (0);
}



int start() {
   int counted = IndicatorCounted();
   if (counted < 0) return (-1);
   int draw  = Bars - counted + NumBars + 1;
   int i;
   if (draw > Bars) i = Bars;
   for (i = draw; i >=0 ; i--) {
   if (Low[i] < Open[i]) {
         upbuf[i] = Open[i];
         dnbuf[i] = Low[i];
      } else {
             upbuf[i] =High[i];
             dnbuf[i] =Open[i]; 
         }
    }
   return (0);
}

我需要澄清的是,如何将最后的100个条形图涂成两种颜色,根据原则,如果开盘价大于最低价--一种颜色,如果相反--另一种颜色。

目标很简单--学会正确使用DRAW_HISTOGRAM线的类型,并正确计算自上一次指标调用以来变化的条数。

 
sanyooooook:
解释

他的格式化风格不允许表达式内有空格。而这个地方也有空间。坚持一种风格是有意义的。
 

从功能上讲,这是为了在图表上显示的方便,并不影响计算的准确性(据我所知)。

在其他索引器中,它是有效的,但有可能完全删除该块,以便不使eye....。离开

int init()
  {
//---- indicators

   IndicatorBuffers(5);

   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

//---- indicator line
   SetIndexBuffer(0,EUR_Buffer);
   SetIndexBuffer(1,USD_Buffer);
   SetIndexBuffer(2,GBP_Buffer);
   SetIndexBuffer(3,CHF_Buffer);
   SetIndexBuffer(4,JPY_Buffer);

   SetIndexLabel(0,"EUR");
   SetIndexLabel(1,"USD");
   SetIndexLabel(2,"GBP");
   SetIndexLabel(3,"CHF");
   SetIndexLabel(4,"JPY");

   
   SetIndexDrawBegin(0,0);
   SetIndexDrawBegin(1,0);
   SetIndexDrawBegin(2,0);
   SetIndexDrawBegin(3,0);
   SetIndexDrawBegin(4,0);

   
   IndicatorShortName("all1");

//----
   return(0);
  }
 
age_nt:
维克多!如果我理解正确,你准备帮助....,我不明白我哪里 "没有逻辑"


你熟悉俄语的语法和语态吗?

再读一下第一个帖子。

 
rid:

是的,会有一个有用的案例!

//---------------

p/s - 维克多,祝你即将到来的(明天)生日快乐!

赞成:!!!!!!!!!!!