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

 
vld:
我说的是终端数据窗口,其余的或多或少都很清楚)

所以你想在鼠标悬停在蜡烛图上时看到蜡烛图的日期和时间以及指标读数
 
AlexeyVik:

那么,你想看到蜡烛图和指标读数的日期和时间?

一个噱头,但来吧)

我可以通过悬停在蜡烛上看到它的日期和时间。指示器读数 的时间间隔边界,我在哪里。

时间间隔的天数等,酒吧的时间间隔和到其结束(它是以秒为单位计算和显示)。

是的,我有按日期报价的Time[0],Time[Bars-1]。

为了避免不必要的抽动)

 
vld:

一个噱头,但来吧)

我可以通过悬停在蜡烛上看到它的日期和时间。指示器读数的时间间隔边界,我在哪里。

时间间隔的天数等,酒吧的时间间隔和到其结束(它是以秒为单位计算和显示)。

是的,我有按日期报价的Time[0],Time[Bars-1]。

这样,在没有不必要的抽动的情况下)


我不明白,虽然这不是插科打诨,但这是不理解的惊喜。
 

start() 函数过去是int 类型的。现在它是无效 类型。有这样一件事。过去,如果start()函数失败,退出它是很方便的。但现在却不那么方便了。我拍了一张古代猫头鹰的照片,在这里你可以看到我之前是怎么写的。

void OnTick()
{
//---
   if (gdt_lastBarTime != Time[0])      // Если открылся новый бар, отрабатываем требуемые действия
   {
      int signal = GetGeneralSignal();
   
      if (signal != SIGNAL_NO)
          if (!Trade(signal))
              return (0);
          
      // Блок управления позициями   
      for (int li_Ord = OrdersTotal()-1; li_Ord >= 0; li_Ord--)
      {
         if (!OrderSelect(li_Ord, SELECT_BY_POS)) continue;
         if (OrderMagicNumber() != ii_Magic) continue;
         if (OrderSymbol() != Symbol()) continue;
       
          SPos.gi_CurTicket = OrderTicket();
          SPos.gi_Type = OrderType();
       
          // Блок модификации ордеров       
          if (id_SL != 0 || id_TP != 0)
          {
             if (OrderStopLoss() == 0 && OrderTakeProfit() == 0)
             {
                OrdersModifyer (ticket);
             }
          }
          // Блок перевода ордеров в б.у.
          if (OrderStopLoss() <= gd_PriceBU)
          {
             if (OrderType() > 1) continue;
             MovingStopLossToBU();
          }
          // Блок траала открытых ордеров
          if (OrderStopLoss() > gd_PriceBU)
          {
             TrailingStop();
          }

          // Удаление просроченных отложенных ордеров
          if (OrderOpenPrice() < Time[0])
          {
             DeletePendingOrders();
          }
      }
      
      gdt_lastBarTime = Time[0];     // На текущем баре все необходимые действия..
                                     // .. успешно выполнены
   }
}

基本上,我用gdt_LastBarTime 变量来控制一个新条形的打开。过去是不同的。我是这样写的。

if (gdt_lastBarTime == Time[0]) return (0)

我正在跳过任何进一步的操作。现在如何更方便地实现这一点?因为没有可能返回任何值。事实证明,如果我输入了一个条件,无论那里发生了什么,函数都会走到最后,gdt_lastBarTime 变量会得到一个新的值。问题是,在每次打勾 时向终端发送请求并不是一种选择。因此,我们需要更准确地限制这种情况。如果函数不能退出,例如,int或boolean函数,这意味着无论如何它都会工作。

 
hoz:

start() 函数过去是int 类型的。现在它是无效 类型。有这样一件事。过去,如果start()函数失败,退出它是很方便的。但现在却不那么方便了。我拍了一张古代猫头鹰的照片,在这里你可以看到我之前是怎么写的。

基本上,我用gdt_LastBarTime 变量来控制一个新条形的打开。过去是不同的。我是这样写的。

我正在跳过任何进一步的操作。现在如何更方便地实现这一点?因为没有可能返回任何值。事实证明,如果我输入了条件,无论那里发生了什么,函数都会走到最后,gdt_lastBarTime 变量会得到一个新的值。问题是,在每次打勾时向终端发送请求并不是一种选择。因此,我们需要更准确地限制这种情况。如果函数不能退出,例如,int或boolean函数,这意味着无论如何它都会工作。

没有参数 什么不好?
 
evillive:
没有参数的返回 是不满意的?
这就是我离开的地方。
 

关于指标缓冲区的 使用出现了一个问题--比方说,在一个单独的窗口中的两个缓冲区画一个直方图。第一张显示了一些标称值,第二张显示了高峰值。
有没有可能以编程方式禁止外部指标(向导等)使用第二个缓冲区,即只用于在图表上显示所需的数值,但对用户在图表上叠加的外部指标不可见?

 
atztek:

有没有可能以编程方式禁止外部指标(向导等)使用第二个缓冲区,也就是说,它只用于在图表上显示所需的数值,但对用户在图表上叠加的外部指标不可见?

不,任何可见的东西都可以通过编程读出来。
 
TheXpert:
不,任何可见的东西都可以用程序来计算。

我明白了。
谢谢你!
 

是否可以通过将第二维的大小设置为一个变量而不是常数来创建一个二维数组?