[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 488

 
hoz:

我重复一下这个问题,也许因为有后续问题,所以没有人注意到。

我决定了解ATR 指标的工作原理 同时研究其代码。我理解其中的精髓,但它写得很奇怪。

这里是它的启动 功能。

这里是有一些混乱的第一块。

如果counted_bars的值<1,做什么事情有意义呢。在我看来,这意味着指标还没有计算任何条形,我应该直接退出函数,因为还没有任何数值......。有什么好处呢?

为什么AtrBuffer 有索引[Bars-i]?我的理解是,如果没有值,就将缓冲区设置为0.0。但是事实证明,数值0.0只被定义在从(Bars)(AtrPeriod) 的条形图上,而从AtrPeriod第0个条形图 没有任何东西被写入缓冲区。为什么?

我不明白这个代码片段的逻辑

在下一个街区。

在行。

条件如果i==Bars-1。看起来,从左边的图表开始第1 考虑了...但这是非常遥远的,这个价值有什么用呢?


小节从右往左数(从0到最后一个(Bars)减1)。每一个新的条形图(0),所有条形图都相应地增加一个,最后一个条形图(在左边)从未以数字形式指定,这个变量Bars,因为没有人知道你有什么历史,但它保证了指标在所有历史上的工作,它有。训练你的逻辑思维,没有逻辑思维就没有办法理解任何事情!
 
laveosa:
我有1点-1分。这是否意味着我需要20美元才能承受200点的下行止损?
如果0.01点手=1美分,那么对于0.1手头寸,200点止损=20美元。
 
borilunad:

小节从右往左数(从0到最后一个(Bars)减1)。每一个新的条形图(0),所有的条形图都相应地增加一个,而最后一个条形图(左)永远不会被指定为数字,这个变量Bars,因为没有人知道你有什么历史,但它保证了指标在整个历史上的工作,它有。训练你的逻辑思维,没有逻辑思维就无法理解任何事情!

我知道小节是从右到左计算的。如果图表上有5000个柱子,ATR周期=14,那么[Bars-i]将从(5000-1)(5000-14) 取值,即从49994986

所以AtrBuffer的索引i 将等于49994986而从04986的 剩余条数在哪里?

 
hoz:

我知道小节是从右到左计算的。如果图表上有5000个柱子,ATR周期=14,那么[Bars-i]将从(5000-1)(5000-14) 取值,即从49994986

所以AtrBuffer的索引i 将等于49994986而从04986的 其他条形图在哪里?


你是如何计算的?如果ATR周期=14,那么零点栏就给出了零点栏之前的14个栏的平均值,以此类推,进入历史深度。

i 在时间上最后的14个小节,但在数量上首先是平均的,或者用公式做什么。也是通过前14个小节的时间来计算第4986个 小节的数值,也就是通过站在左边的小节来计算的。

学习Doc和教程中的for运算符!

 
borilunad:


你是如何计算的?如果ATR周期=14,那么零点栏就给出了零点栏之前的14个栏的平均值,以此类推,进入历史深度。

去超过14条的最后一次,但超过第一个由数字来平均它们或由公式做什么。同时按时间上最后的14条计算第4986 条的数值,即按站在左边的计算。

学习Doc中的for运算符和教程!。

这不是问题,你说的话我明白。这是我工作过度和愚蠢。在AtrPeriod 缓冲区传递历史条数 的事实中,有一个小问题...而我在看的时候,我没有明白。当我工作过度时,我就会这样...
 
hoz:

维克多,你的假设是不合逻辑的。

如果指标没有处理过一个柱子,这意味着它应该处理所有的柱子,而不是终止程序。

而历史上的指标值是需要用来分析历史的:)

 
尊敬的专家,在5分钟内测试所有点位时,矩阵式EA的点差是4,还是更多或更少?
 
kakin:
尊敬的专业人士,在5分钟的测试中,4个摊位的EA都是ticks--还是很糟糕,还是更多还是更少?

信息不多,专业人员都在睡觉:)
 
paladin80:
如果0.01手=1美分,那么对于一个0.1手的头寸,200点的止损=20美元。
谢谢你,伙计,我也这么想......,谢谢。)
 

请帮助使这一功能反之亦然。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//|    Кроме того, функция MovingInWL() предполагает наличие глобальных переменных (внешних параметров скрипта или советника):
//|    int LevelProfit - Уровень профита в пунктах, которого должна достигнуть позиция для того, чтобы её стоп был перенесён на уровень безубытка.
//|    int LevelWLoss - Уровень безубытка в пунктах, на который будет перенесён стоп позиции после того, как её профит достигнет уровня LevelProfit в пунктах.
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      po=MarketInfo(OrderSymbol(), MODE_POINT);
      if (OrderType()==OP_BUY) {
        if (OrderStopLoss()-OrderOpenPrice()<LevelWLoss*po) {
          pp=MarketInfo(OrderSymbol(), MODE_BID);
          if (pp-OrderOpenPrice()>LevelProfit*po) {
            ModifyOrder(-1, OrderOpenPrice()+LevelWLoss*po, -1);
          }
        }
      }
      if (OrderType()==OP_SELL) {
        if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()<LevelWLoss*po) {
          pp=MarketInfo(OrderSymbol(), MODE_ASK);
          if (OrderOpenPrice()-pp>LevelProfit*po) {
            ModifyOrder(-1, OrderOpenPrice()-LevelWLoss*po, -1);
          }
        }
      }
    }
  }
}

也就是说,如果价格从未平仓订单中亏损了LevelProfit(你可以称之为LevelLoss),你必须将TakeProfit移至零或亏损1点2点,等等,取决于你在LevelWLoss参数中输入的内容,这样,如果价格甚至转好,就不会再有利润。或者是你有一个现成的?

提前感谢你))。