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

 
Artyom Trishkin:
È sufficiente sapere che giorno della settimana era il primo del mese. Il resto è calcolato.

È come grattarsi l'orecchio destro con la mano sinistra.

 
Darirunu:

Mi dispiace, probabilmente non stavi prestando attenzione alla domanda.

Come si scrive la condizione nella quattro: se il primo venerdì del mese è stato rialzista e

il secondo lunedì è ribassista allora apriamo un trade di vendita.

DayOfWeek()==1 lunedì è chiaro, ma quale lunedì del mese? Beh, nel vostro non è necessario che sia chiaro. Non chiedo del vostro))

Capito! Stai parlando del tuo algoritmo, che solo tu conosci. Ho scritto: determinare il giorno della settimana per il primo giorno del mese! E poi usiamo una tabella o due semplici formule per determinare le date dei giorni che ci interessano.

Controlla la tabella sul calendario.

Se il primo giorno del mese è 6, allora il numero del primo venerdì è 7. Altrimenti, il primo venerdì è uguale a 6 - il giorno dell'inizio del mese.

Se il giorno del mese inizia < 2, il secondo lunedì è uguale a 9 - giorno del mese. Altrimenti il secondo numero di lunedì è 16 - il giorno del mese.

Usando le funzioni matematiche il resto della divisione e il modulo saranno molto più brevi

 
LRA:

Capito! Stai parlando del tuo algoritmo, che solo tu conosci. Quello che voglio dire è di determinare il giorno della settimana per il primo giorno del mese! E poi usiamo una tabella o due semplici formule per determinare le date dei giorni di interesse.

Controlla la tabella sul calendario.

Se il primo giorno del mese è 6, allora il numero del primo venerdì è 7. Altrimenti, il primo venerdì è uguale a 6 - il giorno dell'inizio del mese.

Se il giorno del mese inizia < 2, il secondo lunedì è uguale a 9 - giorno del mese. Altrimenti il secondo lunedì è uguale a 16 - il giorno del mese

Grazie, che Dio vi benedica... controllerò.
 
Darirunu:
Grazie, che Dio vi benedica, continuerò a controllare.

Grazie mille per il vostro desiderio. E metti ancora uno spazio dopo il punto e uno spazio prima del punto. Aiuterà nella programmazione. Buona fortuna e, se ne hai bisogno, profitti!

 
LRA:

Grazie mille per i vostri suggerimenti. E potresti voler mettere uno spazio dopo un punto e saltare uno spazio prima di un punto. Aiuterà nella programmazione. Buona fortuna e, se ne hai bisogno, buona fortuna!


Viene fuori molto complicato. Ci deve essere un'opzione più semplice. Qualcuno può condividere?

Diciamo che domani cambierà qualcosa negli aggiornamenti e dovremo riscrivere tutto.

 
Darirunu:

Viene fuori molto complicato. Ci deve essere un'opzione più semplice. Qualcuno può condividere?

Diciamo che domani cambia qualcosa negli aggiornamenti e dobbiamo riscrivere tutto.

Non è così difficile. Ma per ogni situazione dobbiamo impostare valori diversi, quante barre giornaliere devono essere copiate e quali devono essere importate nelle strutture.

/********************Script program start function********************/
void OnStart()
{
 MqlDateTime mqlDateTime0, mqlDateTime1;
 datetime arrDateTime[7];
 CopyTime(_Symbol, PERIOD_D1, 0, 7, arrDateTime);
 TimeToStruct(arrDateTime[0], mqlDateTime0);
 TimeToStruct(arrDateTime[6], mqlDateTime1);
 if(mqlDateTime0.day_of_week == FRIDAY && mqlDateTime0.mon != mqlDateTime1.mon)
  {
   Print("Ура!!! Сегодня первая пятница");
   // Дальше можно брать по времени пятницы открытие и закрытие бара и на основании этого определяем бычья или медвежья свеча...
  }
}/********************************************************************/

È meglio prendere i parametri delle candele nella struttura MqlRates

 
Alexey Viktorov:

Ma per ogni situazione devi impostare valori diversi, quante barre giornaliere copiare e quali mettere nelle strutture.



Questo è ciò di cui sto parlando e sono interessato solo a MQL4.

 
Darirunu:

Questo è quello di cui sto parlando e sono interessato solo a MQL4 ...Dobbiamo trovare un'altra soluzione.

Ecco cos'è mql4.
File:
00.mq4  2 kb
 
double ma;
   int    res;
   int nomber = OrdersHistoryTotal();
   int tip=OrderType();
   if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
   {
   tip=OrderType();
   }
   ma=iMA(NULL,0,MovingPeriod,120,MODE_SMA,PRICE_CLOSE,1);
   if(Bid<ma)
   if(tip!=OP_SELL)
   {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TP*Point,"",MAGICMA,0,Red);
      return;
     }



Buon pomeriggio. Ho bisogno di aiuto. Se c'è un ordine Sell chiuso, allora l'ordine successivo può essere solo Buy aperto.
 
Darirunu:

Questo è quello di cui sto parlando e sono interessato solo a MQL4.

Ho anche questa idea.

Se avete bisogno del primo venerdì, il numero deve essere inferiore a 8. Se il primo venerdì del mese è venerdì, il venerdì successivo sarà l'ottavo. Di conseguenza, possiamo facilmente ricalcolare a qualsiasi giorno della settimana e a qualsiasi giorno, secondo, terzo...

Motivazione: