Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1837

 
Andrey Sokolov #:

Buon anno nuovo anche a te. Cosa avete fatto voi stessi che non funziona?

Ho un tipster assemblato e funzionante.

La questione è se fermarsi o sospendere. Ho appena iniziato a scavare in questa direzione.

La mia comprensione è la seguente:

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

L'Expert Advisor inizia in qualsiasi momento.

ulteriormente:

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();
     }

risulta che non appenaCountOrders()==0&& (OrderLots()>=Lotcontrol)- "il lotto impostato è stato raggiunto".

ho bisogno di fermare / interrompere l'invio del segnalebSignalBuy/bSignalSellper N ore/giorni

risulta che ho bisogno di confrontareTimeCurrent() con qualche parametro, come TimeControl (il nome non importa)

e se TimeCurrent()>=TimeControl- allora bSignalBuy/bSignalSell va di nuovo.

Ho già chiesto di (Sleep) e mi è stato detto che non è consigliabile fermare il processo.

La domanda non è cosa non posso fare, ma se sto pensando correttamente e quale funzione dovrei usare per descrivere TimeControl?

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

Ho un tipster assemblato e funzionante.


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

Tretyakov Rostyslav #:

Grazie.

Ho iniziato a pensare così:

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

è sbagliato?

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

Grazie.

Ho iniziato a pensare così:

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

è sbagliato?

Puoi fare anche questo.
 
Tretyakov Rostyslav #:
Questo è anche possibile

Ma prima dovete selezionare l'ultimo ordine tramite if(OrderSelect()- giusto?

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

Ma prima dovete selezionare l'ultimo ordine tramite if(OrderSelect()- giusto?

 

Potete dirmi se ci sono soluzioni pronte per la chiusura FIFO? Ho trovato solo per MT5.

Per MT4 Open Time pending è uguale al suo tempo di attivazione o al tempo di impostazione?

 
leonerd #:

Potete dirmi se ci sono soluzioni pronte per la chiusura FIFO? Ho trovato solo per MT5.

Per MT4 Open Time pending è uguale al suo tempo di attivazione o di installazione?

Non è in sospeso dopo l'attivazione.

Cos'è il FIFO?

 
Tretyakov Rostyslav #:

Una volta attivato, non è più in sospeso.

Cos'è il FIFO?

FIFO = Fist Input Fist Output - First In First Out Exit nello stesso ordine di entrata = Queue

FILO = Fist Input Last Output - First In Last Out Exit in reverse order = Stack

 
a007 #:

FIFO = Fist Input Fist Output - First In First Out Exit nello stesso ordine di entrata = Queue

FILO = Fist Input Last Output - First In Last Out Exit in reverse order = Stack

Non ne ho mai sentito parlare...