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

 
MK07:

谢谢你的建议。 它可以工作,但当你安装指标时,它的画法很奇怪(见图表)。 从图表窗口的左边界到垂直黄线的缩进(以条为单位)对于窗口中任何数量的可见条数都是不间断的,等于8条。 一旦这8条超过窗口左边界,所有图表线立即出现,然后一切正常。 它可以被修复,如何修复?


像这样试试

   int limit;
   int counted_bars=IndicatorCounted();
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
 
我需要为窗口中出现的所有Bars建立一个指标,然后在这一点上找到它的最大值和最小值!帮助我解决这个问题,在我之前的帖子中提到,我有一个例子,但我不明白这一切,谁能逐一解释这三行?
 // обработка видимых баров.
   int bars_count=WindowBarsPerChart();
   int bar=WindowFirstVisibleBar();
   for(int i=0; i<bars_count; i++,bar--)
     {
      // номера баров уменьшаются, так как нумерация идет в обратном порядке.
      // ...
     } 
 
MK07:
这个代码结构允许在每一个新的刻度线上只在零点和第一个(用于检查)条上重新计算指标,而不是重新计算已经计算过的指标。 但我需要通过窗口中所有可见的条来建立一个指标,然后在这一点上找到它的最大值和最小值!帮助我解决我之前的帖子中提到的问题。有一个例子,但我不是很清楚。谁可以逐行解释这三个字符串?

不太清楚你需要什么,如果你需要找到指标的可见条数 的最大值和最小值,先画出指标,然后再搜索。

也许使用WindowPriceMax(), WindowPriceMin()更好。

 
r772ra:

斯捷潘2

作品


阵列毕竟有一个故障,但与此同时

c. 在工作中没有任何问题

))

 

下午好。

人们,告诉我用什么来测试EA。因为内置的MT平均给出50%的模拟质量,而人们在截图上发布的是90%以上。

 
jusser:

下午好。

各位,你们能不能给我一些建议,用什么来测试EA?因为内置的MT平均给出50%的模拟质量,而在截图上人们发布的是90%以上。


如果你有整个一分钟的历史,那将是90%。99%是通过自己创建一个勾选历史 来实现的。这通常是使用杜卡斯平报价来完成的。谷歌关于99%质量测试主题的脚本

 
下午好,你能告诉我在MT4中是否有显示未平仓合约的指标?如果没有,是否可以用类似的东西代替?
 
你好,如何在专家顾问的代码中实现一个条件,在最后一个订单后设置相同类型的订单50点。
 
Armen63:
你好,如何在专家顾问的代码中实现一个条件,在最后一个订单后设置相同类型的订单50点。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает расстояние в пунктах между рынком и ближайшей       |
//|             позицей                                                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    op - торговая операция          (    -1      - любая позиция)           |
//|    mn - MagicNumber                (    -1      - любой магик)             |
//+----------------------------------------------------------------------------+
int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
  double d, p;
  int i, k=OrdersTotal(), r=1000000;

  if (sy=="" || sy=="0") sy=Symbol();
  p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
          if (OrderType()==OP_SELL) {
            d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
        }
      }
    }
  }
  return(r);
}
 

请告知在所附指标的代码中哪里可以插入一行,我对此一无所知。问题是,这个指标在一个单独的窗口中显示货币对的动向,但由于其中一个货币对在市场概览窗口中缺失,所以没有显示任何内容。有人建议我使用这个。

错误可能只发生在这个地方

double Vol = iCustom(s[n],0, "Ind ZeroLag MACD",FastEMA,SlowEMA,0,0) / MarketInfo(s[n], MODE_POINT) 。

当MarketInfo(symbol, MODE_POINT)上没有数据时,我们得到一个除以0的 结果。

在MarketInfo(symbol, MODE_POINT)中插入检查。

我不知道该把它放在哪里(我在市场概览中没有看到英镑/纽元对)。请告知。

附加的文件:
indicator.mq4  6 kb