初学者的问题 MQL5 MT5 MetaTrader 5 - 页 924

 
Nauris Zukas:

如果不改变,MQl5的帮助 就无法打开。

你有一个快速的网络连接吗?如果帮助没有打开,这意味着正在下载。日志中曾经有关于上传过程的信息,现在这些信息已经被删除。

 

你能告诉我吗!!!?

在iCustom中,指标名称后面该怎么写?

 
TaywinLannister:

你能告诉我吗!!!?

在iCustom中,我应该在指标名称后面写什么?

用代码搜索实例:iCustom

 
TaywinLannister:

你能告诉我吗!!!?

在iCustom中,指标名称后面该怎么写?

网站上的帮助
Документация по MQL5: Технические индикаторы / iCustom
Документация по MQL5: Технические индикаторы / iCustom
  • www.mql5.com
[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию. INVALID_HANDLE. Для освобождения памяти компьютера от неиспользуемого больше индикатора служит функция IndicatorRelease(), которой...
 
foreXteller:

亲爱的Vladimir Karputov!

谢谢你的链接!

我看了你推荐的文章 "TICK GENERATION ALGORITHM IN THE METATRADER 5 TERMINAL TEST"。

这有点不同--我不想分析以分钟为间隔的tick值,来自 SymbolInfoTick()的最后一个市场值 现在不是那么重要。

为了在未来使用 MetaTrader 5,我想用我的程序测试我的策略(我的机器人),同时测试几种货币的一分钟 报价,考虑它们的ASKBIDVOLUME SPREAD,但不是烛台

由于程序是用 VISUAL C编写的 ,我不能用MT进行测试

这些程序相当复杂,很难翻译成 MQL (我计划在将来使用 DLL 文件 )。

谢谢您的关注!

亲爱的Vladimir Karputov!



你所推荐的文章如下。

"滴答 "生成算法

"MetaTrader 5终端的策略测试器在测试中只使用一种价格模拟模式--在现有的历史数据 基础上,使用所使用的符号,在分钟的时间 框架内生成点子"。

请告知在哪里可以得到"现有的分钟时间段的历史数据"

提前感谢!!。


 

你能告诉我如何捕捉一个平仓 事件吗?

void OnTradeTransaction(const MqlTradeTransaction&    trans,
                        const MqlTradeRequest&        request,
                        const MqlTradeResult&         result
                        )
  {
   if(trans.type!=TRADE_TRANSACTION_DEAL_ADD)
      return;
   ...
  }
 
void OnTradeTransaction(const MqlTradeTransaction&    trans,
                        const MqlTradeRequest&        request,
                        const MqlTradeResult&         result
                        )
  {
   if(trans.type!=TRADE_TRANSACTION_DEAL_ADD)
      return;
   if(trans.deal_type!=DEAL_TYPE_BUY && trans.deal_type!=DEAL_TYPE_SELL)
      return;
   ENUM_DEAL_ENTRY entry_type=(ENUM_DEAL_ENTRY)HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
   if(entry_type==DEAL_ENTRY_IN)
      return;
  }

这是否正确?我认为还应该增加一个音量检查。

 
foreXteller:

亲爱的Vladimir Karputov!



在你推荐的文章中,给出了以下内容。

"滴答 "生成算法

MetaTrader 5终端的策略测试器在测试中只使用一种价格模拟模式--在所使用的符号上一分钟时间段的现有历史数据 的基础上生成点子"。

请告知在哪里可以得到"现有的分钟时间段的历史数据"

提前感谢!!。


在MetaTrader 5中,一切都已经存在了。从一开始。马上就好。一旦你连接到交易服务器 - 你就能立即获得所有的tick历史。

当你在网上工作时,你当然要与真正的虱子打交道。在策略测试器中工作时,你可以选择模式:"每一个刻度都基于真实的刻度"--最精确的方法,真实的历史刻度,或其中一个刻度生成模式:"所有刻度","OHLC"。

 

请告诉我,是否有一些通用的代码,可以在历史上获得头寸的利润?至少按pos_id计算。这将在所有市场上发挥作用。

 
Juer:

你能告诉我如何捕捉一个平仓 事件吗?

对于外汇,我使用这个选项。

/*********************TradeTransaction function**********************/
void OnTradeTransaction(const MqlTradeTransaction& trans,
                        const MqlTradeRequest& request,
                        const MqlTradeResult& result)
{
  if(trans.type == TRADE_TRANSACTION_DEAL_ADD && trans.symbol == _Symbol)
   {
    /******************** Если открылась позиция********************/
    if(PositionSelectByTicket(trans.position) && PositionGetInteger(POSITION_MAGIC) == magick)
      ifOpenedPosition(trans);
    /******************** Если закрылась позиция********************/
    if(!PositionSelectByTicket(trans.position))
     ifClosedPosition(trans);
   }
}/*******************************************************************/

也就是说,这个职位存在与否。

Juer:

请告诉我,是否有一个通用的代码,可以在历史上获得头寸的利润?至少按pos_id计算。这将在所有市场上发挥作用。

写一篇这样的文章是 "小菜一碟"。你只需选择属于该头寸的交易,然后循环查看,将利润、掉期和佣金加起来。