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

 
Aleksey Vyazmikin #:

我认为 OnTick 的意思是

是的,没错,很模糊。

 
Alexey Viktorov #:

这就是许多人开始学习编程语言的原因。事实证明,为了让你能够检验你的虚幻想法,有人会坐下来写作。当然,你可以找到这样一个爱好者,他可以为了练习写作而写作,出于无聊或其他原因而写作......但如果你同意并通过 LS 获得一个策略,意识到它不会起作用而拒绝写作,那么你就会怀疑自己上当受骗,拥有一个有利可图的策略,并进入灌木丛。谁需要这种态度呢?如果你发布了一个策略,有人感兴趣,那你就走运了。因此,为了你的钱,任何心血来潮....。

你是一个有趣的人。

因此,您对这样一个指标有足够的热情)https://c.mql5.com/1/237/vgif-ru-19978.gif。

不想为了写作练习、无聊或其他原因 而在 RSI 中插入两行代码...

 
FYFRX #:

你是个有趣的人

所以你对这样的指标有足够的热情)https://c.mql5.com/1/237/vgif-ru-19978.gif

不想为了写作练习、无聊或其他原因 而在 RSI 中插入两行代码...

好吧,如果你知道是两行代码,你就应该知道是哪两行,在哪里插入。

 

大家早上好,心情不错!

昨天我的智能交易系统出了点问题。到昨天为止,它已经测试了近一个月,没有出现任何问题,但临近傍晚时,根据自由保证金计算风险的功能突然无法正常工作,EA 开始以最大可能的手数开仓。我决定编写一个检查函数,允许 在特定条件下进行交易,以排除这种 "礼物"。我写了这个函数并将其添加到 EA 代码中。我不知道是这个函数起了作用,还是在编写它时发生了其他事情,但智能交易系统的工作已经正常化了。

请求尊敬的社区!

请查看代码并提出建议,该功能中还应添加哪些内容,才能在真实账户交易中排除此类 "礼物"?

bool Check_Trading()
  {
   bool canTrade=false;
   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
     {
      Print("Ошибка разрешения торговли для текущего счёта!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
     {
      Print("Ошибка разрешения торговли для эксперта!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)
     {
      Print("Ошибка при проверке режима расчёта маржи для счёта с режимом хэдж!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoDouble(ACCOUNT_MARGIN_FREE))
     {
      Print("Ошибка при получении размера свободных средств для открытия позиции!", GetLastError());
      canTrade=false;
     }
   if(!SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE)==SYMBOL_CALC_MODE_FOREX)
     {
      Print("Ошибка способа расчета прибыли и маржи для рынка Форекс по текущему символу!", GetLastError());
      canTrade=false;
     }
   if(!SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_HEDGED))
     {
      Print("Ошибка расчета маржи для позиций по текущему символу для счёта с режимом хэдж!", GetLastError());
      canTrade=false;
     }
   if(!SymbolIsSynchronized(_Symbol))
     {
      Print("Ошибка синхронизации данных по текущему символу!", GetLastError());
      canTrade=false;
     }
   canTrade=true;
   return(canTrade);
  }

弗拉基米尔

 

我不明白它是如何以及需要什么,它从TERMINAL_DATA_PATH 中的 Tester\Agent... 文件夹中获取并读取文件,但我需要在TERMINAL_PATH 中读取它, 而且 我不能使用 绝对路径


 
mwwm #:

我不明白它是如何以及需要什么,它从TERMINAL_DATA_PATH 中的 Tester\Agent... 文件夹中获取并读取文件,但我需要在TERMINAL_PATH 中读取它, 而且 我不能使用 绝对路径

如果需要在测试过程中处理文件,使用所有终端和代理的共同文件夹会更方便。为此,只需在文件打开操作中添加FILE_COMMON 标志即可。

您可以从 MetaEditor 主菜单进入该文件夹,将必要的文件放入其中:文件打开公共数据文件夹

 
Yuriy Bykov #:

如果需要在测试过程中处理文件,使用所有终端和代理的共用文件夹会更方便。为此,只需在文件打开操作中添加FILE_COMMON 标志即可。

您可以从 MetaEditor 主菜单进入该文件夹,将必要的文件放入其中:文件打开公共数据文件夹

谢谢!)

 
FYFRX #:

你是个有趣的人

所以你对这样的指标有足够的热情)https://c.mql5.com/1/237/vgif-ru-19978.gif

不想为了写作练习、无聊或其他原因 而在 RSI 中插入两行代码...

这不是我的作品。你还记得电影《办公室浪漫史》中的蒙娜丽莎吗?

至于这两行代码,我已经向你解释过了。

关于交易、自动交易系统和测试交易策略的论坛。

来自 MQL5 MT5 MetaTrader 5 初学者的问题

Alexey Viktorov, 2023.01.30 07:17 AM

这是很多人开始学习编程语言的原因。而事实证明,为了测试你的幻想,有人会坐下来写作。当然,你可以找到这样一个爱好者,他可以为了练习写作而写作,出于无聊或其他原因......但是,如果你同意并通过 LS 战略,意识到拒绝写作是行不通的,那么你就会怀疑自己被骗了,有一个有利可图的战略,并进入灌木丛谁需要这样的态度? 如果你发布了一个策略,有人感兴趣,你会很幸运。但是,为了你的钱,任何心血来潮...

在任何有关免费代码编写的话题中写下这些愿望,肯定会有人回应。也许我也会。虽然不太可能,但我两三天内都不会在这里了......
 
MrBrooklin 允许 在特定条件下进行交易,以排除这种 "礼物"。我写了这个函数并将其添加到 EA 代码中。我不知道是这个函数起了作用,还是在我写这个函数的时候发生了其他事情,但智能交易系统的工作已经正常化了。

向尊敬的社区提出请求!

请查看代码并提出建议,该功能还应添加哪些内容,才能在真实账户交易中排除此类 "礼物"?

敬上,弗拉基米尔

弗拉基米尔,您是如何

   if(!AccountInfoDouble(ACCOUNT_MARGIN_FREE))

无保证金账户

账户中可用来建仓的存款货币的自由资金数额。

双倍


这是我无意中发现的。剩下的我都不想看了...

 
Alexey Viktorov #:

弗拉基米尔,你是如何将其转换为布尔类型的?

无保证金账户

账户中可用来建仓的存款货币的自由资金数额


这是我偶然发现的。我甚至不想看其他....。

你好,阿列克谢,我是这样想的--如果账户上可用来开仓的存款货币的闲置资金足够多,那么这就是真的。现在我意识到,这个数值仅供计算之用。谢谢您的提示。

弗拉基米尔