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

 
Andrey Sokolov #:

Bonne année à vous aussi. Qu'avez-vous fait vous-même qui ne fonctionne pas ?

J'ai un tipster assemblé et qui fonctionne.

La question est de savoir s'il faut l'arrêter ou le suspendre. Je viens de commencer à creuser dans cette direction.

Ma compréhension est la suivante :

int OnInit()
  {
Start          = TimeCurrent();
MaxMartinLot   = Lot*MathPow(1.4,OrdersClose);
MaxMartinLot2  = Lot*MathPow(K_Martin2,OrdersClose2);

Le conseiller expert démarre à tout moment.

plus loin :

void OnTick()
  {
// Получим значение индикатора
   dMA = iMA(Symbol(), 0,PeriodMA, MovingShift, MODE_SMA, PRICE_CLOSE, 0); // MODE_SMA - простое усреднение , значение 0. PRICE_CLOSE- цена закрытия, значение 0.

// Если нет открытых ордеров, то входим в условие
      if(CountOrders()==0)
     {
// Если появился сигнал на покупку, то откроем ордер на покупку
      if(bSignalBuy() == true)
         vOrderOpenBuy();

// Если появился сигнал на продажу, то откроем ордер на продажу
      if(bSignalSell() == true)
         vOrderOpenSell();
     }

il s'avère que, dès queCountOrders()==0&& (OrderLots()>=Lotcontrol)- "le lot fixé a été atteint".

J'ai besoin d'arrêter/de stopper l'envoi du signalbSignalBuy/bSignalSellpour N-heures/jours.

Il s'avère que j'ai besoin de comparerTimeCurrent() avec un paramètre, comme TimeControl (le nom n'a pas d'importance).

et si TimeCurrent()>=TimeControl- alors bSignalBuy/bSignalSell repart.

J'ai déjà posé la question à propos de (Sleep). On m'a répondu qu'il n'était pas recommandé d'arrêter le processus.

La question n'est pas de savoir ce que je ne peux pas faire, mais si je pense correctement et quelle fonction dois-je utiliser pour décrire TimeControl ?

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

J'ai un tipster assemblé et qui fonctionne.


   input int HourPause  = 1;        // Пауза в часах
   datetime  Start      = 0;
//----------------------------------------------------
   // выключаем торговлю
   if (OrderLots()>=Lotcontrol)
     {
      Start=TimeCurrent()+(HourPause*60*60));
     }
// Если нет открытых ордеров, то входим в условие
      if(CountOrders()==0&&Start<=TimeCurrent())
 

Tretyakov Rostyslav #:

Merci.

J'ai commencé à penser comme ça :

Si (TimeCurrent() >=(OrderCloseTime() + (Pause*60*60)))

Est-ce que c'est mal ?

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

Merci.

J'ai commencé à penser comme ça :

Si (TimeCurrent() >=(OrderCloseTime() + (Pause*60*60)))

Est-ce que c'est mal ?

Vous pouvez le faire aussi.
 
Tretyakov Rostyslav #:
C'est également possible

Mais vous devez d'abord sélectionner la dernière commande via if(OrderSelect()-droit ?

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

Mais vous devez d'abord sélectionner la dernière commande via if(OrderSelect()-droit ?

oui
 

Pouvez-vous me dire s'il existe des solutions toutes faites pour la clôture FIFO ? Je n'ai trouvé que pour MT5.

Pour MT4 Open Time pending est égal à son temps d'activation ou d'installation ?

 
leonerd #:

Pouvez-vous me dire s'il existe des solutions toutes faites pour la clôture FIFO ? Je n'ai trouvé que pour MT5.

Pour MT4 Open Time pending est égal à son temps d'activation ou d'installation ?

Il n'est pas en attente après l'activation.

Qu'est-ce que le FIFO ?

 
Tretyakov Rostyslav #:

Une fois activée, elle n'est plus en attente.

Qu'est-ce que le FIFO ?

FIFO = Fist Input Fist Output - First In First Out Sortir dans le même ordre que l'entrée = File d'attente

FILO = Fist Input Last Output - First In Last Out Sortir dans l'ordre inverse = Stack

 
a007 #:

FIFO = Fist Input Fist Output - First In First Out Sortir dans le même ordre que celui de l'entrée = File d'attente

FILO = Fist Input Last Output - First In Last Out Sortir dans l'ordre inverse = Stack

Je n'en ai même pas entendu parler...