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

 

你好。

需要调整挂在终端的一个标准指标。找不到如何访问他们的代码,他们甚至躺在哪里?

 
Sergey:

你好。

需要适应挂在终端的一个标准指标。我找不到如何访问他们的代码,他们甚至在哪里存在?

你将无法获得标准指标的代码。但也有一些例子。

\MQL5\Indicators\Examples\示例

 
Artyom Trishkin:

你将无法接触到标准指标的代码。但也有一些例子。

\MQL5\Indicators\Examples\示例

谢谢你的提示。

 
大家好。是否可以在mql5中选择一个特定的时期来学习统计?还是在账户的整个生命周期内专门保存?
 

设置警报

我怎样才能将默认警报设置为警报以外的内容,例如警报2?

我需要在哪个文件中进行编辑?


 
Vitaly Muzichenko:

设置警报时

我怎样才能将默认警报设置为警报以外的内容,例如警报2?

在什么文件中需要进行修改?


显然,在声音文件夹中。在安装终端的地方发现了它。НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

并根据字母顺序判断,将alert2 重命名为比alert更符合字母顺序的字母。

 
Valeriy Yastremskiy:

显然,在声音文件夹中。在安装终端的地方发现了它。НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

并根据字母顺序判断,将alert2重命名为比alert更符合字母顺序的名字

是的,作为一种选择,但不太符合我的要求。

谢谢你!

 

需要找到最后一个平仓订单的利润。我写了一个函数。

double LastProfitOrder()
{
   int      i;
   int      total  = HistoryDealsTotal();
   ulong    ticket;
   datetime time; 
   long     type;
   string   symbol; 
   ulong    magic; 
   double   profit;
   double   profits = 0;
   datetime times   = 0;
   
   HistorySelect(0, TimeCurrent());
   
   for(i = total - 1; i >= 0; i--)
   {
      ticket = HistoryDealGetTicket(i);
      time   = (datetime)HistoryDealGetInteger(ticket, DEAL_TIME); 
      type   = HistoryDealGetInteger(ticket, DEAL_TYPE);
      symbol = HistoryDealGetString(ticket, DEAL_SYMBOL); 
      magic  = HistoryDealGetInteger(ticket, DEAL_MAGIC); 
      profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); 
         
      if(symbol == Symbol() && magic == Magic)
      {
         if(type == DEAL_TYPE_BUY || type == DEAL_TYPE_SELL)
         {
            if(time > times)
            {
               profits = profit;
               times   = time;
            }
         }
      }
   }
   return(profits);
}

只要订单是通过OnTick()中的 "portlet "打开的(MqlTick latestPrice;MqlTradeRequest request;...等),该功能就能工作。只要我开始使用#include <Trade\Trade.mqh>打开订单,并写出一个单独的函数。

void OpenOrderBuy()
{
   double open = NormalizeDouble(iHigh(NULL, 0,1) + (VO+sp)*_Point, _Digits);
   double sl   = NormalizeDouble(open - SL*_Point, _Digits);
   double tp   = NormalizeDouble(open + TP*_Point, _Digits);
   
   if(!m_trade.BuyStop(GetLots(), open, _Symbol, sl, tp, ORDER_TIME_SPECIFIED, DateExp()))
   {
      Print("Метод BuyStop() потерпел поражение. Код возврата = ", m_trade.ResultRetcode(),
            ". Описание кода: ", m_trade.ResultRetcodeDescription());
   }
   else
   {
      Print("Метод BuyStop() исполнен успешно. Код возврата = ", m_trade.ResultRetcode(),
            " (", m_trade.ResultRetcodeDescription(),")");
   }
}

寻找利润的功能停止工作(尽管订单正确打开)。我已经退回了 "TypoScript"--它又开始工作了。为什么会有这样的***?有什么区别呢?我没有在包括中发现任何可以获得平仓单利润的东西。例如,#include <Trade\HistoryOrderInfo.mqh>包含所有内容,但我没有找到订单利润。

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Взаимодействие клиентского терминала и торгового сервера для проведения операций постановки ордеров производится посредством торговых запросов. Запрос представлен специальной предопределенной структурой MqlTradeRequest, которая содержит все поля, необходимые для заключения торговых сделок. Результат обработки запроса представлен структурой...
 
Youri Lazurenko:

只要订单是通过OnTick()中的 "破坏者 "打开的(MqlTick latestPrice;MqlTradeRequest request; ...等),该功能就能工作。一旦我开始使用#include <Trade\Trade.mqh>打开订单,我就写出了一个单独的函数。

不要忘记设置专家顾问的ID

   m_trade.SetExpertMagicNumber(InpMagic);
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetExpertMagicNumber
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetExpertMagicNumber
  • www.mql5.com
SetExpertMagicNumber(ulong) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

不要忘记设置专家ID

谢谢你。我在mql5中没有这样的迷宫。你不是直奔目标而来,而是要走一些弯路,穿过一堆分支、死胡同和障碍。 为了语言而语言。