[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 78

 

你好!我已经开始学习mquel4。我将使用一个简单指标的例子,该指标计算最大和最小的蜡烛价格,并通过屏幕上的两个缓冲区在蜡烛极端点画线。

#property indicator_chart_window // Индик. рисуется в основном окне
#property indicator_buffers 2 // Количество буферов
#property indicator_color1 Blue // Цвет первой линии
#property indicator_color2 Red // Цвет второй линии

double Buf_0[],Buf_1[]; // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init() // Специальная функция init()
{
SetIndexBuffer(0,Buf_0); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(1,Buf_1); // Назначение массива буферу
SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
return; // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------------
int start() // Специальная функция start()
{
int i,// Индекс бара
Counted_bars; // Количество просчитанных баров 
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
i=Bars-Counted_bars-1;
// Индекс первого непосчитанного
while(i>=0) // Цикл по непосчитанным барам
{
Buf_0[i]=High[i]; // Значение 0 буфера на i-ом баре
Buf_1[i]=Low[i]; // Значение 1 буфера на i-ом баре

i--; // Расчёт индекса следующего бара
}
//--------------------------------------------------------------------
return; // Выход из спец. ф-ии start()
}

那么,如何使缓冲线穿过两个(三个等)烛台而不是每个烛台?

 
wolf05632:

那么,我如何使缓冲线穿过两个(三个等)蜡烛,而不是每个蜡烛?

首先,学习如何使用 "SRC "按钮在代码中正确插入信息,使其具有可读的形式,看起来就像在MetaEditor中。


第二步将是你尝试将Counted_bars变量与if语句联系起来。

比如说。

我们将每隔一个柱状图输入指标计算(跳过奇数的,留下偶数的)。

if (MathMod(Counted_bars, 2) == 0)
{
   // расчёт для буферов индикатора
}
else return(0);

在这里你可以看到关于函数MathMod() 的信息。但你不一定要用它。你可以在if语句中插入任何条件。

但别忘了,这样的代码修改会造成缓冲区内一些数值的丢失。你是否需要它,我不知道。一切都将取决于你的任务。

 

我有点糊涂了。我试着让循环步数等于2(我想你会有同样的意思),但这并不可行。我不需要具体通过一个,而是通过任意数量的蜡烛。我的理解是,结构应该是这样的。

缓冲区数组[1]= 烛台数组[1]

缓冲区数组[2]=烛台数组[2]

缓冲区数组[3]=烛台数组[4]

...

缓冲区数组[5]= 烛台[x]的数组等等。但这并不奏效。

 
wolf05632:

我没有看到缓冲指数 和烛台指数之间的模式......。

如果你能附上你想得到的东西的照片,那就更好了。

 

它是这样的

而且我需要这样的东西。

但不要特别执着于被画在一支蜡烛上的线条,它们可以被画在两支,或三支,等等。

 
sergeev:

我想我应该把这个带到心灵感应者那里,而不是在这里。

他只是在跟我们开玩笑。


看一下代码,你可以看到没有空格的地方,发送订单 的结果,其错误代码和仪器的数字。
 

那么你就必须使用类似 "之 "字形的指标(我的观点)。

#property indicator_chart_window // Индик. рисуется в основном окне
#property indicator_buffers 2 // Количество буферов
#property indicator_color1 Blue // Цвет первой линии
#property indicator_color2 Red // Цвет второй линии

double Buf_0[], Buf_1[]; // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init() // Специальная функция init()
{
   SetIndexBuffer(0, Buf_0); // Назначение массива буферу
   SetIndexStyle (0, DRAW_SECTION);
   SetIndexBuffer(1, Buf_1); // Назначение массива буферу
   SetIndexStyle (1, DRAW_SECTION);
   return; // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------------
int start() // Специальная функция start()
{
   int i,// Индекс бара
   Counted_bars; // Количество просчитанных баров 
   //--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   if (MathMod(Bars, 2) != 0 && Counted_bars == 0)
      return(0);
   i = Bars-Counted_bars-1;
   // Индекс первого непосчитанного
   while(i >= 0) // Цикл по непосчитанным барам
   {
      if (MathMod(i, 2) == 0)
      {
         Buf_0[i] = High[i]; // Значение 0 буфера на i-ом баре
         Buf_1[i] = Low[i]; // Значение 1 буфера на i-ом баре
      }
   
      i--; // Расчёт индекса следующего бара
   }
   //--------------------------------------------------------------------
   return; // Выход из спец. ф-ии start()
}

我想你可以弄清楚这些变化。我唯一错误的是,最好使用Bars参数 而不是IndicatorCounted()作为要计算的柱子的索引。

你现在的任务是把分割器变成一个外部参数。它将等于通过的烛台数量。

 
grell:

只要看一下代码,你就可以看到没有空格的地方,发送订单的结果,它的错误代码和仪器的数字。

正是如此。这就是为什么我们在谈论心灵感应。

你之前给我们的代码。

Alert("Ordersend_Number",res,err);

我没有翻看代码,但不幸的是,我没能找到这个错误......。我没有编写多货币专家顾问 的经验。我只是知道一些原则,仅此而已。

 
很明显,-1129是错误代码,你在哪里看到错误号码1292?
 
grell:
很明显,-1129是一个错误代码,你在哪里看到错误号码1292?

任何事情都可能发生...

你只在一个DC上测试你的EA吗?129号错误 是否需要很长时间才能出现?或者在几次请求后,订单才打开?