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

 
Yedelkin:

而没有 "如果 "呢?

没有所谓的 "如果"。)))
 
tol64: 没有所谓的 "如果"。)))
:)
 

你好,我不明白为什么止损点不显示?

input int         StopLoss=499;      // Stop Loss
input int         TakeProfit=999;   // Take Profit
input int         EA_Magic=12345;   // Magic Number советника
input double      Lot=0.1;          // Количество лотов для торговли

int OnInit()
  {
//--- Для работы с брокерами, использующими 5-ти значные котировки,
//--- умножаем на 10 значения SL и TP
   STP = StopLoss;
   TKP = TakeProfit;
   if(_Digits==5 || _Digits==3)
     {
      STP = STP*10;
      TKP = TKP*10;
     }
   return(0);
  }
void OnTick()
  {
//---
  
   MqlTick         latest_price;       // Будет использоваться для текущих котировок
   SymbolInfoTick(Symbol(),latest_price); // Получаем текущие цены
   MqlTradeRequest mrequest;   // Будет использоваться для отсылки торговых запросов
   MqlTradeResult  mresult;     // Будет использоваться для получения результатов выполнения торговых запросов
  
         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);

 
Top2n: 你好,我不明白为什么没有设置止损?

首先,需要进行初始化。

MqlTradeRequest mrequest={0};   // Будет использоваться для отсылки торговых запросов
MqlTradeResult  mresult={0};    // Будет использоваться для получения результатов выполнения торговых запросов

其次,放置sl和tp的能力取决于经纪人设置的市场订单执行模式。查阅《手册》中有多少种模式,并检查经纪人设置的是哪种模式。

 
Yedelkin:

首先,需要进行初始化。

其次,放置sl和tp的能力取决于经纪人设置的市场订单执行模式。查阅《手册》中有多少种这样的模式,并检查经纪人设置的是哪种模式。

我已经通过ZeroMemory(mrequest)清零了。

我不太了解订单执行 模式,阿尔帕里经纪人,我认为一切都很标准。该死的胡说八道,不愿意,就这样。我已经尝试过使用sl和tp,它显示的是当前价格+sl,我想这是可以的。

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

我通过ZeroMemory(mrequest)清零了。

我不太了解订单执行 模式,阿尔帕里经纪人,我认为一切都很标准。该死的,这不管用,我就是不想做。我已经尝试过使用sl和tp,它显示的是当前价格+sl,我想这是可以的。

你在日志中是否有任何信息?
 
Top2n 我不太了解订单执行 模式,我是阿尔帕里的经纪人,我认为这都是标准的。我不知道用这种外汇经纪商做什么,我仍然不知道用这种外汇做什么。我不知道该怎么做,如果我试图回到评论Sl和Tp?

我不关注Alpari,但我认为所有你提到的不设置水平的问题都与Alpari有关。试着在MQ模拟账户上下单,你就会好起来。

关于订单执行模式。您正在使用https://www.mql5.com/ru/docs/trading/ordersend。请仔细阅读指南的这一部分:https://www.mql5.com/ru/docs/constants/structures/mqltraderequest,并 自己回答:"市场订单有多少种执行模式"。如果你不能回答这个问题,请问。

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 
tol64: 日志中是否有任何信息?
开发者还没有提供一种可能性,在日志信息中反映在市场执行和交易所执行模式下无法设置sl和tp水平的情况。而且没有理由这样做。程序员应确定经纪人设置的模式。
 
Yedelkin:
开发者还没有提供在日志信息中反映出在市场执行和交易所执行模式下无法设置sl和tp水平的可能性。而且没有必要这样做。程序员应确定经纪人设置的模式。
总之,不要去猜测,你应该分析所有的错误和返回代码。分析下一步该做什么更容易、更快。))
 
tol64: 你仍然需要分析所有的错误和返回代码以避免猜测。想出下一步该做什么更容易、更快捷。))
...特别是当你知道在这种特殊情况下根本不提供 "错误和返回代码 "时 :)毫无疑问,这个问题本身是正确的,但在这个特定的情况下,它不会有任何帮助。