Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1832

 
законопослушный гражданин #:

décoller dans l'espace

le stop s'arrête d'abord, puis s'envole instantanément dans l'espace après la prise (en fermant l'ordre au passage).

Ce n'est pas le sujet, tel que je le comprends.

corrigez-moi si je me trompe : void OnTick()

s'il n'y a pas d'ordres ouverts et qu'il y a un signal, alors vOrderOpenBuy() / vOrderOpenSell()

Vient ensuite void vOrderModify(int iOTi) - c'est-à-dire qu'ils fixent les stops et les takei et vérifient ensuite les erreurs.

C'est-à-dire que tant que l'ordre n'est pas clôturé au stop ou au take, il n'est pas possible de le corriger en termes de trailing.

Vous avez besoin d'un (maximum deux) multiple de stop and take.

Si vous souhaitez modifier le stop suiveur et prendre un bénéfice, vous devez le faire manuellement.

Je suis encore en train de réfléchir à la manière de l'implémenter.

Corrigé

2021.12.24 21:31:12.245 2021.11.01 00:00:00  111 inputs: Lot=0.01; StopLoss=200; TakeProfit=400; Slippage=3; Magic=1; K_Martin1=2; K_Martin2=2; K_Martin3=2; OrdersClose=5; OrdersClose2=5; DigitsLot=2; PeriodMA=14; MovingShift=1; 
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: open #1  buy 0.01 EURUSD at 1.15583 ok
2021.12.24 21:31:12.292 2021.11.01 00:05:00  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15383 tp: 1.15983 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15403 tp: 1.16003 ok
2021.12.24 21:32:52.782 2021.11.01 17:37:18  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: modify #1  buy 0.01 EURUSD at 1.15583 sl: 1.15433 tp: 1.16013 ok
2021.12.24 21:33:39.178 2021.11.01 19:06:30  111 EURUSD,M5: Модификации ордера на покупку успешна!
2021.12.24 21:34:08.768 2021.11.01 20:12:05  Tester: take profit #1  at 1.16013 (1.16014 / 1.16019)
2021.12.24 21:34:14.632 2021.11.01 20:17:55  Tester: stop button pressed
Dossiers :
111.mq4  25 kb
 
законопослушный гражданин #:

décoller dans l'espace

le stop s'arrête d'abord, puis s'envole instantanément dans l'espace suivi de la prise (en fermant l'ordre au passage)

C'est parce que vos règles ne fonctionnent pas :

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading.

Toutes questions des débutants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes.

Mihail Matkovskij, 2021.12.23 22:01

En général, les règles sont les suivantes.

  • Le SL calculé est inférieur au SL de l'ordre (moins rentable) - ne faites rien.
  • L ' imputation SL est égale à l'ordre - ne rien faire.
  • Le SL calculé dépasse le SL de l'ordre (plus rentable) - modifiez-le avec la valeur calculée.
Ces règles de création de chaluts permettraient de créer presque n'importe quel chalut avec n'importe quel algorithme de calcul de SL.

Ils l'auraient fait il y a longtemps et auraient réussi. Mais non...

Je n'ai pas pu m'empêcher de trouver un exemple tout trouvé: https://www.mql5.com/ru/code/30808.

Et un article :https://www.mql5.com/ru/articles/134

Bien que ce soit compliqué pour les débutants, je pense que vous y arriverez si vous êtes vraiment intéressé par le sujet.

Простой трейлинг-стоп
Простой трейлинг-стоп
  • www.mql5.com
Очень простой советник для сопровождения сделок трейлинг-стопом.
 
Tretyakov Rostyslav #:

Corrigé

Merci !

Je ne savais pas que l'on pouvait mettre un double dans une fonction void.

 
Mihail Matkovskij #:

C'est parce que vos règles ne fonctionnent pas :

Vous auriez dû le faire il y a longtemps et marquer des points. Mais non...

Je n'en pouvais plus et je vous ai trouvé un exemple tout fait: https://www.mql5.com/ru/code/30808.

Et un article: https://www.mql5.com/ru/articles/134

Il peut être compliqué pour les débutants, mais je pense que vous le comprendrez si vous êtes vraiment intéressé par le sujet.

Merci.

 

Bon après-midi ! !!

Pouvez-vous me dire si la fonction Hour() renvoie l'heure actuelle du dernier serveur connu à Greenwich ou l'heure actuelle appelée sur l'ordinateur ????

 
EVGENII SHELIPOV l'heure actuelle appelée sur l'ordinateur ????


 
Tretyakov Rostyslav #:


Quelle est la réponse à la question ?

 
EVGENII SHELIPOV #:

Quelle est la réponse à cette question ?

Je suis désolé. Je pensais que tu savais lire.


 
EVGENII SHELIPOV heure actuelle appelée sur l'ordinateur ????

Et qui vous a dit que l'heure du serveur doit être GMT ?

 

Fonction pour mt4 et mt5 - démarrage, arrêt et .....

//+------------------------------------------------------------------+
//|                                                   time Start.mq4 |
//|                        Copyright 2021, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//--- input parameters
input datetime InpHoursFrom = D'1970.01.01 02:00'; // Start (Only time)
input datetime InpHoursTo   = D'1970.01.01 23:00'; // Stop (Only time)
input bool     InpClose     = true;                // Close Time
input datetime InpHoursTo1  = D'1970.01.01 23:00'; // Close (Only time)
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(TimeStartStop(InpHoursFrom,InpHoursTo))
     {
      Print("Start time :",InpHoursFrom," || ","Stop time :",InpHoursTo);
     }
   if(TimeClose(InpHoursTo1))
     {
      if(InpClose)
         Print("close_time :",InpHoursTo1);
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeStartStop(datetime HoursFrom,datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if((HoursFrom<HoursTo && hour0>=HoursFrom && hour0<HoursTo) ||
      (HoursFrom>HoursTo && (hour0<HoursTo || hour0>=HoursFrom)))
      return(true);
   return(false);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
bool TimeClose(datetime HoursTo)
  {
//---
   MqlDateTime currTime;
   TimeToStruct(TimeLocal(),currTime);
   long hour0=currTime.hour*60*60+currTime.min*60+currTime.sec;
   if(hour0<HoursTo)
      return(false);
   if(hour0>HoursTo+1*10)
      return(false);
   return(true);
  }
//+------------------------------------------------------------------+