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

 
Top2n:

我通过ZeroMemory(mrequest)清零了。

我不太了解订单执行 模式,阿尔帕里经纪人,我认为一切都很标准。该死的,这不管用,我就是不想做。我看了一下订单的sl和tp,它显示的是当前价格+sl。我不知道什么是正常的!"。

即使在这种形式下,服务器上的MQ错误在测试器中也不会发生。

input int    StopLoss   =499;   // Stop Loss
input int    TakeProfit =999;   // Take Profit
input int    EA_Magic   =12345; // Magic Number советника
input double Lot        =0.1;   // Количество лотов для торговли
//---
MqlTick         latest_price;        // Будет использоваться для текущих котировок
MqlTradeRequest mrequest;            // Будет использоваться для отсылки торговых запросов
MqlTradeResult  mresult;             // Будет использоваться для получения результатов выполнения торговых запросов
//---
int STP = StopLoss;
int TKP = TakeProfit;
//+------------------------------------------------------------------+
//| ИНИЦИАЛИЗАЦИЯ                                                    |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Для работы с брокерами, использующими 5-ти значные котировки,
//    умножаем на 10 значения SL и TP
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| ДЕИНИЦИАЛИЗАЦИЯ                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| СОБЫТИЕ ТИК ТЕКУЩЕГО СИМВОЛА                                     |
//+------------------------------------------------------------------+
void OnTick()
  {
   SymbolInfoTick(Symbol(),latest_price); // Получаем текущие цены
//---
   mrequest.action = TRADE_ACTION_DEAL;                                  // немедленное исполнение
   mrequest.price = NormalizeDouble(latest_price.ask,_Digits);           // последняя цена ask
   mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
   mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
   mrequest.symbol = _Symbol;                                            // символ
   mrequest.volume = Lot;                                                // количество лотов для торговли
   mrequest.magic = EA_Magic;                                            // Magic Number
   mrequest.type = ORDER_TYPE_BUY;                                       // ордер на покупку
   mrequest.type_filling = ORDER_FILLING_FOK;                            // тип исполнения ордера - все или ничего
   mrequest.deviation=100;                                               // проскальзывание от текущей цены
//--- отсылаем ордер
   OrderSend(mrequest,mresult);
  }

//---

如果事实证明这件事是在执行模式中,那么大约应该这样做。

// В режиме Instant Execution позицию можно открыть
// сразу с установленными уровнями Stop Loss и Take Profit
   if(smb.trade_exec==SYMBOL_TRADE_EXECUTION_INSTANT)
     {
      // Если позиция не открылась, вывести сообщение об этом
      if(!trd.PositionOpen(_Symbol,type_ord,lot,oprice,sl,tp,comment))
        { Print("Ошибка при открытии позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
     }
//---
// В режиме Market Execution сначала нужно открыть позицию и
// только после этого можно установить уровни Stop Loss и Take Profit
   if(smb.trade_exec==SYMBOL_TRADE_EXECUTION_MARKET)
     {
      // Если позиции нет, то сначала откроем позицию
      // а затем установим Stop Loss и Take Profit
      if(!pos.exist)
        {
         // Если позиция не открылась, вывести сообщение об этом
         if(!trd.PositionOpen(_Symbol,type_ord,lot,oprice,0,0,comment))
           { Print("Ошибка при открытии позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
         else
           {// Если позиция открылась, то сначала выберем её и...
            if((pos.exist=PositionSelect(_Symbol))) // ...если позиция есть, то...
              {
               // ...установим Stop Loss и Take Profit
               if(!trd.PositionModify(_Symbol,sl,tp))
                 { Print("Ошибка при модификации позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
              }
           }
        }
      else
        {// Если позиция есть, то увеличим её объём и
         // оставим Stop Loss и Take Profit на их прежнем уровне
         // Если позиция не открылась, вывести сообщение об этом
         if(!trd.PositionOpen(_Symbol,type_ord,lot,oprice,sl,tp,comment))
           { Print("Ошибка при открытии позиции: ",GetLastError()," - ",ErrorDesc(GetLastError())); }
        }
     }
 
如何写得更短
iClose(Symbol(),1440,1)
在MQL5中?
 
zfs:
如何在MQL5中把它写得更短?
https://www.mql5.com/ru/articles/81
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • 2010.05.11
  • Sergey Pavlov
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 

你能告诉我MT5的经济日历 在哪里吗?我在我的里面找不到(有的新闻每隔1到5分钟就会准确无误地出现,都不一样)。

谢谢。

http://www.profi-forex.org/journal/number17/page8.html#prettyPhoto

Основные отличия МТ5 от МТ4
Основные отличия МТ5 от МТ4
  • 2012.08.06
  • Биржевой лидер
  • www.profi-forex.org
Первое, что следует отметить и принять как должное, это отсутствие локов - встречных позиций. Пожалуй, это основное, что вызывает у части трейдеров недоумение и, возможно, разочарование, в то время как для тех, кто торгует без локов, это изменение вполне закономерно и логично. Если мы обратимся к другим профессиональным платформам, то увидим...
 
mzk_3om6u:

你能告诉我MT5的经济日历在哪里吗?我在我的里面找不到(有的新闻每隔1到5分钟就会准确无误地出现,都不一样)。

谢谢。

http://www.profi-forex.org/journal/number17/page8.html#prettyPhoto

进来的新闻是邮件标签

日历也在那里。

只有当你连接到真正的MT5账户时,你才能看到它们

 

mzk_3om6u: 

你能告诉我MT5的经济日历在哪里吗?我在我的里面找不到(有的新闻每隔1到5分钟就会准确无误地出现,都不一样)。

谢谢。

终端帮助(F1)。

如果贸易服务器上的经济日历被禁用,这个标签可能会丢失。

>>日历

 
mzk_3om6u:

你能告诉我MT5中的经济日历在哪里吗...?


经纪人可能不提供日历,相应地,某位经纪人可能没有日历。似乎是这样的。

 

下午好。

我在哪里可以提出与日程安排变化有关的问题。

这方面的一个例子。我已经多次检查了公司人工控制的时间表,并经常确认。

请写下这个问题的链接!谢谢。

 
Serega_444:

下午好。

我在哪里可以提出与日程安排变化有关的问题。

这方面的一个例子。我已经多次检查了公司人工控制的时间表,并经常确认。

请给我发一个这个问题的链接。

请解读。你是什么意思?历史、交易、制图......?

首先,在任何情况下 - 向公司的技术支持。有证据(截图、日志)。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования - Документация по MQL5
 

问候。

你能告诉我,原则上是否可以写一个脚本,将蜡烛图数据传输到Excel文件中?