文章 "基于交易模块创建多个 EA 交易" - 页 5

 

MetaTrader 5 Client Terminal build 381

...

MQL5:更新了标准库CDealInfo、CHistoryOrderInfo、COrderInfo 和 CPositionInfo 类的 Type() 方法分别重命名为DealType()、OrderType() 和 PositionType()

...


由于模型依赖于基本交易类,因此对其接口的任何改动,哪怕是微小的改动,都是至关重要的。在这种情况下,只需将 TableOrders.mqh 文件中的 Type() 方法更改为相应的 OrderType() 方法,即可轻松修复错误。

在不久的将来,本文所附代码将得到更新,以便在最新版本的编译器和终端上正常工作。

 

chr1sch4n: 没有错误......您重新编写的代码完全相同。

在 C 语言中,case 语句会跳过,这就是为什么你必须加入 break 语句,因此 Buy 语句应该跳到下一条语句,并仍然执行命令。

参考 http://en.wikipedia.org/wiki/Switch_statement;C、C++、Java、PHP、ActionScript、JavaScript 部分;"这是一个省略分隔线以允许跳过 的典型示例"。

干杯

 
Lugner:

请求 - 能否翻译您在英文文件中的评论?

已修复。谢谢。
 
这是我读过的最好的文章之一,非常感谢。
 

我似乎无法获得文章中显示的令人印象深刻的回溯测试结果,我需要做哪些设置?

 

"值得单独介绍一下m_timing 变量。在 Expert Advisor 的工作过程中,需要在特定时间间隔内调用特定事件。对此,OnTimer() 函数并不适用,因为不同的模型可能有不同的时间间隔。

例如,有些事件需要每隔一个新的条形图 就调用一次。对于在小时图上交易的模型,此类事件应每隔一小时调用一次,而对于在日线图上交易的模型,则应每隔一个新的日线调用一次。显然,这些模型有不同的时间设置,因此每个模型都应相应地存储在自己的模型中。CModel 类中的 t_period 结构允许将这些设置分别存储在各自的模型中。

下面是该结构的外观:

struct t_period
{
 большая структура 
};

正如你所看到的,它包括通常的时间框架枚举。要想知道是否出现了新的条形图,我们需要将上一个条形图的时间与 t_period 结构中记录的时间进行比较。如果时间不一致,则说明出现了新的条形图,结构中的时间应更新为当前条形图的时间,并返回正结果(true)。如果上一个条形图的时间与结构相吻合,则表示新的条形图尚未出现,我们只需返回负结果(false)即可。

下面是一个按照所述算法运行的函数:

bool timing(string symbol, ENUM_TIMEFRAMES tf, t_period &timeframes)
{
большой swich
} 

"

当然,我只是个程序员新手,但也许有可能确定新条形图的开始时间(同时使变量 m_timing 只是日期时间):

如果我的结论有误,我在此先向您道歉,并请您指正。如果我没有弄错的话--我感谢这个网站,特别是所有在这里工作的人--文章、文档的撰写--我开始明白了一些东西。

bool timing(string symbol, ENUM_TIMEFRAMES tf, t_period &timeframes)
{
   int rez;
   MqlRates raters[1];
   rez=CopyRates(symbol, tf, 0, 1, raters);
   if(rez==0)
   {
      Print("Error timing");
      return(false);
   }
   if (TimeCurrent()-raters.time)>PeriodSeconds(tf) return(true); else return(false);
   
} 


附注:顺便说一句,感谢您的精彩文章。

 

您好、

如何增强模型或 Processing()函数 以支持配对交易(另一个符号)?现在所有功能都只能在同一符号上使用指标和后续交易。我怎样才能添加 Symbol1 和 Symbol2,以便同时买入 Symbol1 和卖出 Symbol2?

谢谢帮助

附注:或者根据 Symbol2 上的指标行为买入/卖出 Symbol1...

 
P_Cherry:

您好、

如何增强模型或 Processing() 函数以支持配对交易(另一个符号)?现在所有功能都只能在同一符号上使用指标和后续交易。我怎样才能添加 Symbol1 和 Symbol2,以便同时买入 Symbol1 和卖出 Symbol2?

谢谢帮助

附注:或者根据 Symbol2 上的指标行为买入/卖出 Symbol1...

我希望可以这样做?
 
Automated-Trading:
已修复。谢谢。
谢谢。
 

你好、

感谢您的精彩文章...

在 ReplacedDelayedOrders功能 中,有这样一行代码: for(int b=0;i<history_orders;b++)

我认为这会导致无休止的循环,还是我说错了?

我认为代码行必须是: for(int b=0;b<history_orders;b++)

再见,T