Questions des débutants MQL5 MT5 MetaTrader 5 - page 117

 
Yedelkin:

Et sans "si" ? ...

Il n'y a pas de "si". )))
 
tol64: Il n'y a pas de "si". )))
:)
 

Bonjour, je n'arrive pas à comprendre pourquoi les arrêts n'apparaissent pas ?

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: Bonjour, je n'arrive pas à comprendre pourquoi aucun arrêt n'est placé ?

Tout d'abord, une initialisation est nécessaire :

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

Deuxièmement, la possibilité de placer des sl et des tp dépend du mode d'exécution des ordres de marché défini par le courtier. Recherchez le nombre de ces modes dans le manuel et vérifiez quel mode est défini par le courtier.

 
Yedelkin:

Tout d'abord, une initialisation est nécessaire :

Deuxièmement, la possibilité de placer des sl et des tp dépend du mode d'exécution des ordres de marché défini par le courtier. Recherchez le nombre de ces modes dans le manuel et vérifiez quel mode est défini par le courtier.

J'ai fait une mise à zéro via ZeroMemory(mrequest) ;

Je ne comprends pas vraiment les modes d'exécution des ordres, le courtier alpari, je pense que tout est standard. C'est absurde, il ne veut pas et c'est tout. J'ai déjà essayé d'utiliser sl et tp, il montre le prix actuel + sl. Je suppose que c'est Ok !

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

Je l'ai remis à zéro via ZeroMemory(mrequest) ;

Je ne comprends pas vraiment les modes d'exécution des ordres, le courtier alpari, je pense que tout est standard. Merde, ça ne marche pas, je ne veux pas le faire. J'ai déjà essayé d'utiliser sl et tp, il montre le prix actuel + sl. Je suppose que c'est Ok !

Avez-vous des messages dans le journal ?
 
Top2n Je ne comprends pas vraiment les modes d'exécution des ordres, je suis un courtier alpari, je pense que tout cela est standard. Je ne sais pas quoi faire avec ce type de courtier en forex, je ne sais toujours pas quoi faire avec ce type de forex. Je ne sais pas quoi faire si j'essaie de revenir au commentaire sl et tp ?

Je ne suis pas Alpari, mais je pense que tous les problèmes liés à l'impossibilité de fixer les niveaux que vous avez mentionnés étaient liés à Alpari. Essayez de passer votre ordre sur le compte de démonstration MQ et tout ira bien.

À propos des modes d'exécution des ordres. Vous utilisez la fonction https://www.mql5.com/ru/docs/trading/ordersend. Veuillez lire attentivement cette section du Guide : https://www.mql5.com/ru/docs/constants/structures/mqltraderequest et répondez vous-même à la question : "combien de modes d'exécution sont disponibles pour les ordres au marché". Si vous ne pouvez pas répondre à cette question, veuillez la poser.

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
 
tol64: Y a-t-il des messages dans le journal ?
Les développeurs n'ont pas encore prévu la possibilité de refléter dans les messages de log l'impossibilité de définir les niveaux sl et tp dans les modes Market Execution et Exchange Execution. Et il n'y a aucune raison de le faire. Le programmeur doit déterminer le mode défini par le courtier.
 
Yedelkin:
Les développeurs n'ont pas encore prévu la possibilité de refléter dans les messages de log l'impossibilité de définir les niveaux sl et tp dans les modes Market Execution et Exchange Execution. Et il n'y a pas besoin de cela. Le programmeur doit déterminer le mode défini par le courtier.
Quoi qu'il en soit, pour ne pas deviner, vous devez analyser toutes les erreurs et les codes de retour. Il est plus facile et plus rapide d'analyser ce qu'il faut faire ensuite. ))
 
tol64: Vous devez encore analyser toutes les erreurs et tous les codes de retour pour éviter les conjectures. Il est plus facile et plus rapide de savoir ce qu'il faut faire ensuite. ))
...Surtout quand on sait que les "erreurs et codes de retour" ne sont tout simplement pas fournis dans ce cas particulier :) Il ne fait aucun doute que la question en elle-même est correcte, mais dans ce cas particulier, elle ne sera d'aucune utilité :/.