新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1899

 
Valeriy Yastremskiy #:

是的,在我的情况下,你必须从第一条开始,而不是从零条开始)是一个好观点。

为什么?"零点 "与其他所有条形图一起向左移动。而如果我们将除零以外的所有条形图移位,我们将通过第一个和第二个索引得到两个相等的值。

P.S. 如果我们转移数据,一个空闲单元必须始终被覆盖。否则,在一行中会有两个相同的值。

 
Valeriy Yastremskiy #:

ZZZY在移位前覆盖了零的值,我们失去了零的指数值。

这正是我的观点!

 
Valeriy Yastremskiy #:

什么是μl的环形缓冲器?

类似的情况

static int head=0;
for(i=head,count=0;count<ArraySize(A);i++,count++)
  {
   if(i>=ArraySize(A))i=0;
   DoSomething(A[i]);
  }

甚至是

static int head=0;
for(i=head,count=0;count<ArraySize(A);count++)
  {
   if(++i>=ArraySize(A))i=0;
   DoSomething(A[i]);
  }
 
JRandomTrader #:

类似的情况。

甚至是

阵列中的索引移动,单位为µl。虽然它应该工作。顺便说一下,指数变化周期(这是一个周期)和分配周期的权重不应该有太大差别。

 
Vitaly Muzichenko #:

如何使用这个,你能告诉我吗?

任务是这样的。

下面是完成的代码,但循环有点吓人

---

同样,ArrayCopy() 里面有一个循环,也许不止一个。因此,代码很难因为这种替换而变得更简单、更快速。

在这段代码中,你应该指定一个数组

int  ArrayCopy(
   void&        dst_array[],         // куда копируем
   const void&  src_array[],         // откуда копируем
   int          dst_start=0,         // с какого индекса пишем в приемник
   int          src_start=0,         // с какого индекса копируем из источника
   int          count=WHOLE_ARRAY    // сколько элементов
   );

从哪个索引写,从哪个索引复制,取决于数组移动的方向。因此,如果我们希望索引0总是包含新鲜的、新的数据,我们应该从0复制,从1写入。因此,索引0和1中的值将是相同的,之后,一个新的值将被复制到0中。

而且我非常怀疑ArrayCopy()里面的循环和用户的一样。因此,有一些具有一定大小的数组,它在每一个刻度上移位1,然后复制到显示为一行的指标缓冲区...

 
请告诉我每日事实的细分功能。
//+----------------------------------------------------------------------------+
//|Определение пробоя дневного фрактала вверх                                  |
//+----------------------------------------------------------------------------+
int BreakdownSignalUpD1()
  {
   int sig=-1;
   double resistD1 = GetNearestUpFractal(PERIOD_D1);
   if (resistD1 < Ask)
     sig=0;
   if (resistD1 >= Ask)
     sig=1;  
   return(sig);
  }

而这里是在屏幕上显示故障的功能

ObjectCreate("signal100",OBJ_LABEL,0,0,0,0,0);
   ObjectSet("signal100",OBJPROP_XDISTANCE,600);
   ObjectSet("signal00",OBJPROP_YDISTANCE, 40);
   ObjectSetText("signal100",DoubleToString(BreakdownSignalUpD1(),0),18,"Times New Roman", clrRed);

你能告诉我如何使屏幕显示的不是0或1,而是0是 "YES "1是 "NO"。

谢谢你

 
EVGENII SHELIPOV #:
请告诉我每日事实的细分功能。

而这里是在屏幕上显示故障的功能

你能告诉我如何使屏幕显示的不是0或1,而是0是 "YES "1是 "NO"。

谢谢你

string boolToStr(bool value) { return ((value) ? "true" : "false"); }
 
EVGENII SHELIPOV #:
请告诉我日间事实的分解功能是什么。

而这里是在屏幕上显示故障的功能

你能告诉我如何使屏幕显示的不是0或1,而是0是 "YES "1是 "NO"。

谢谢你

ObjectSetText("signal100",BreakdownSignalUpD1()==0?"Да":"Нет",18,"Times New Roman", clrRed);

类似这样的事情。

 
JRandomTrader #:

类似这样的事情。

谢谢你

 
Alexey Viktorov #:

在这段代码中,你需要指定一个数组

从哪个索引写入,哪个索引复制,取决于阵列的偏移方向。也就是说,如果索引0应该总是包含新鲜的、新的数据,那么从0开始复制,从1开始写入。因此,索引0和1中的值将是相同的,之后,一个新的值将被复制到0中。

而且我非常怀疑ArrayCopy()里面的循环和用户的一样。因此,有一些具有一定大小的数组,它在每一个刻度上移位1,然后复制到显示为一行的指标缓冲区...

我会努力的。

---

总而言之,我的代码成功地工作了,这已经超过了一个小时。