程序库: MT4Orders - 页 4

 
通过缓存计数器,可以很容易地加速 OrdersHistoryTotal 本身的运行。
 

我正试图连接它,但它不起作用!

我有一个单独的类来处理订单,所以我在 EA 代码的开头做了改动,结果我的类出现了 100 个错误,我是不是运行错了?

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

 
-Aleks-:

我正试图连接它,但它不起作用!

我有一个单独的类来处理订单,所以我在 EA 代码的开头做了改动,结果我的类出现了 100 个错误,我是不是运行错了?

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

MT4Orders 只影响下面的代码(#include 之后)。因此,请将您的类放在库之后,而不是之前。
 
fxsaber:
MT4Orders 只影响下面的代码(在 #include 之后)。因此,请不要将您的类放在库之前,而是放在库之后。

1. 在没有心灵感应协会帮助的情况下,您首先需要查看他有哪些错误。

2. 如果cPoza13-1 使用 MT4Orders 和 MQL4_to_MQL5,为什么它们不包含在cPoza13-1 文件中?以及外部某处......奇怪的编码方法

 
我决定试一试,因为我正在 mt5 上重写机器人,需要快速测试一下:)。您说它适用于对冲账户,这可以理解。非交易账户的情况如何?考虑到我的策略将只使用一个未结头寸,其他一切都能正常工作吗?
 
o_O:

如果cPoza13-1 使用 MT4Orders 和 MQL4_to_MQL5,为什么它们不包含在cPoza13-1 文件中?还有......奇怪的编码方法

方法很明确。cPoza 是一个纯粹的 MQL4 库。这就是它没有被修正的原因。

例如,我用这种方法将另一个 MT4 智能交易系统(另类 转换)转换为跨平台代码

#include <MT4Orders.mqh>    //https://www.mql5.com/zh/code/16006
#include <MQL4_to_MQL5.mqh> //https://www.mql5.com/zh/code/16006

#ifdef __MQL5__
  #define MODE_MINLOT SYMBOL_VOLUME_MIN
  
  double MarketInfo( const string Symb, const ENUM_SYMBOL_INFO_DOUBLE Type )
  {
    return(SymbolInfoDouble(Symb, Type));
  }
  
  void OnTick()
  {
    start();
  }  
#endif

#include "OpenTiks.mq4" //https://www.mql5.com/zh/code/8578
也就是说,我的转换方法是不干扰原始文件。
 
Maxim Dmitrievsky:
我决定试一试,因为我正在 mt5 上重写机器人,需要快速测试一下:)。您说它适用于对冲账户,这可以理解。非交易账户的情况如何?考虑到我的策略只使用一个未结头寸,其他一切都能正常工作吗?
可以!我通过 MT4Orders 在证券交易所做所有事情。我不限制开仓数量。
 
Stanislav Korotky:
OrdersHistoryTotal 本身可以很容易地通过缓存计数器来加速。

当然,这是可能的。还没看到有必要。

-Aleks-:

我使用的是历史分析,我的 MM 交易涉及到平仓和开仓的 情况,并使用开始时的财务结果来考虑风险。

在这种情况下,我们可以想象趋势的确定--完成趋势的工作是以不同的方式进行的--开仓和平仓,但重要的是要知道你可以冒多大的风险,因为趋势运行的时间越长,完成趋势的可能性就越大--因此开仓订单和退出点的数量是不同的。

显然,应该这样做。
 
将 MT4-advisor(替代 转换)转换为跨平台版本的另一个示例
#include <MT4Orders.mqh>    //https://www.mql5.com/zh/code/16006
#include <MQL4_to_MQL5.mqh> //https://www.mql5.com/zh/code/16006

#ifdef __MQL5__
  double AccountBalance( void )  
  {
    return(AccountInfoDouble(ACCOUNT_BALANCE));
  }
  
  int TimeHour( const datetime Date )
  {
    MqlDateTime Tmp;
  
    TimeToStruct(Date, Tmp);
  
    return(Tmp.hour);
  }  
  
  void OnTick()
  {
    start();
  }  
#endif

#include "20_200_expert_v4_2_AntS.mq4" //https://www.mql5.com/zh/code/7891
原文来源附后。
附加的文件:
 
fxsaber:
MT4Orders 只影响下面的代码(在 #include 之后)。因此,请将您的类放在库之后,而不是之前。

明白了--谢谢--错误几乎没有了,但还有一个:

OrderCloseBy' -函数 未定义 cPoza13-1.mqh 1885 8

 //+------------------------------------------------------------------------------------------------------------------------------------+
//| Возвращает TRUE, если один ордер закрылся другим
//+------------------------------------------------------------------------------------------------------------------------------------+
bool cPoza::closeBy(int ticketB, int ticketA)
{
  if(ticketB > 0 && ticketA > 0)
  {
    if(OrderCloseBy(ticketB, ticketA)) return true;
    else Print("Magic=", mMagic, " ",__FUNCTION__, " Встречное закрытие не вышло ticketB=", ticketB, " ticketA=", ticketA, " вызвало ошибку-", _LastError);
  }
  else return false;
 
  return false;
}