错误、漏洞、问题 - 页 2218

 
fellow:

倒逗号里的那些数字是什么?

可能是该字段的值

 
Georgiy Merts:

正是如此。

在我看来,程序的所有结构部分都应该做成与平台无关的区块(在我看来,虚拟接口非常适用于此),这样,平台的变化就会影响到小的孤立的代码区域。此外,还有能够插入新平台的好处。

至于新的i-Functions,我只看了一个--按指定时间搜索一个酒吧。也许这个功能会比我的工作更快。其余的--我确信--与我的相比,不会有速度上的提高,这意味着人们不会从坏处寻找好处。

我在很久以前就写了关于酒吧的图书馆,不太可能使用创新的东西。

 
Alexey Volchanskiy:

我在很久以前就写了我的酒吧库,不太可能使用创新。

按时间搜索酒吧的本机可能真的更快。

现在,它被限制为通过 第一根柱子的时间、最后一根柱子的时间和所需的时间来计算所需的柱子指数,并进行后续的修正。

我以前也用过二进制搜索,但用校正的直接计算--结果是更快。

而开发者可能有一个索引,比这两个选项都要快得多地找到正确的栏。

 
fellow:

这些引号中的数字是什么?

一个字符串 一个Uchar数组

引号内是一个字符,引号左边是一个字符代码。


更准确地说,是

void OnStart()
  {
   string s;
   uchar u[1];
   for(int i=32; i<=255; i++)
     {
      u[0]=(uchar)i;
      if(i%16==0) s="";
      s+=IntegerToString(u[0],3)+"-"+CharArrayToString(u)+"  ";
      if (i==152) s+=" ";
      if(i%16==15)  Print(s);
     }
  }
 

更新到1860年的人,你是否确认了之前几个用户在测试时指出的问题?

因为这是Otkritie经纪人第二次发送这个更新))。

 
Vitaly Muzichenko:

如果你使用免费软件,那就保持更新,如果将来有广告,那也是可以的(免费软件)。没有人欠你什么。

该软件不是免费的--它要花费经纪人很多钱。我作为一个交易员,向经纪人支付佣金,开发商从中获得报酬。我是一名交易员,我希望得到适当的待遇。

我不关心那些功能(让它们见鬼去吧--我重写了它们),但测试者每运行2-3次就开始出现故障和崩溃,你可以上传一个稳定的版本。

 
至少,就拿10年来,他们从未教过软件如何正确计算缩水的事实来说。我不得不自己写所有的东西
 
// Воспроизведение ситуации, когда OrderSend успешно выполнилась, но ордера нет ни среди живых, ни среди мертвых.

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define  PRINT(A) Print(#A + " = " + (string)(A))

void OnStart()
{
/*
  // Посылаем поочередно ордера на открытие/закрытие позиций
  while (!IsStopped() &&
         (OrderSend(_Symbol, OP_SELL, 1, Bid, 0, 0, 0) != -1) &&
         OrderSelect(0, SELECT_BY_POS) && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0))
    ;
*/

  MqlTradeResult Result;
  MqlTradeRequest Request = {0};

  Request.action = TRADE_ACTION_DEAL;
  Request.symbol = _Symbol;
  
  do
  {
    Request.position = PositionSelect(Request.symbol) ? PositionGetInteger(POSITION_TICKET) : 0;  
    Request.type = Request.position ? (ENUM_ORDER_TYPE)(1 - PositionGetInteger(POSITION_TYPE)) : ORDER_TYPE_SELL;
    Request.price = Request.position ? PositionGetDouble(POSITION_PRICE_CURRENT) : Bid;
    Request.volume = Request.position ? PositionGetDouble(POSITION_VOLUME) : 1;
          
  } // Посылаем поочередно ордера на открытие/закрытие позиций
  while (!IsStopped() && (OrderSend(Request, Result) ? OrderSelect(Result.order) || HistoryOrderSelect(Result.order) : true));
  
  PRINT(Result.order);
  PRINT(OrderSelect(Result.order));
  PRINT(HistoryOrderSelect(Result.order));
}


ForexTimeFXTM-Demo01 的结果

Result.order = 2210942086
OrderSelect(Result.order) = false
HistoryOrderSelect(Result.order) = false


脚本打开和关闭头寸,直到检测到一个 "幽灵订单"--既不在当前订单中,也不在历史上。我应该把它看作是一个错误还是一个平台特性?


剧本是这样写的:由于这种细微差别,可能会有几个职位空缺。但这并不妨碍收到 "幽灵订单"。

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2018.02.08
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
一年前的BCS外汇市场也是如此,在DTZ调换了他们顾问中的一些东西之后。
 

你好。今天我更新到1860版,在优化专家顾问时,我遇到了这个问题。

优化过程中的延迟

通行证之间的延迟是1分钟!能否请您指出可能是什么问题?

p.s. 在更新之前,一切都像时钟一样工作。