Indicatore Domande varie - pagina 7

 

Sì, ma devi codificarlo.

Esempio:

Ora localeBroker ABroker B
00:00
(GMT)
01:00
(GMT+1)
02:00
(GMT+2)

Non potete usare PERIOD_D1 perché

  • La barra D1 del Broker A inizia alle 23:00 locali (1 ora prima)
  • La barra D1 del Broker B inizia alle 22:00 locali (2 ore prima)

Quindi dovete usare le barre H1 con iBarShift e iHighest / iLowest (o CopyHigh/CopyLow) per creare manualmente il vostro "giorno" come volete.

----

Ecco un rapido script che potrebbe illustrare il punto.

Lasciatelo su un grafico e vedrete che disegna un rettangolo intorno a un "giorno" che inizia alle 23:00 ora del server.

#define strict
#property show_inputs

#define DAY 86400
#define HOUR 3600

extern int time_shift = -1; // Hours to shift server time by

void OnStart()
  {
   time_shift*=HOUR;

   datetime oldest_bar = Time[Bars-1],
            midnight   = oldest_bar-(oldest_bar%DAY);

   while(midnight<=TimeCurrent())
     {
      datetime day_begin = midnight + time_shift,
               day_end   = day_begin + DAY - 1;
      double high[],
             low[];
      int high_cnt = CopyHigh(_Symbol, PERIOD_H1, day_begin, day_end, high),
          low_cnt  = CopyLow (_Symbol, PERIOD_H1, day_begin, day_end, low);
      if(high_cnt>0 && low_cnt>0)
        {
         double day_high = high[ArrayMaximum(high)],
                day_low  = low [ArrayMinimum(low)];
         string obj_name = TimeToString(day_begin,TIME_DATE);
         ObjectCreate(0, obj_name, OBJ_RECTANGLE, 0, day_begin, day_high, day_end, day_low);
        }
      midnight+=DAY;
     }
  }  


 
honest_knave:

Sì, ma bisogna codificarlo.

Dovrei studiare questo esempio.

Grazie mille.

 

Ancora una volta grazie mille per il tuo grande esempio.
Dopo il tuo commento ho risolto facilmente il mio problema.

---

Ho provato qualcosa per l'offset temporale impostato automaticamente per diversi broker, purtroppo non ha funzionato.

D: Posso scrivere del codice per impostare automaticamente l'offset del tempo per diversi broker, è possibile?
(Provo ancora qualcosa per questo)

Grazie mille.

 

Provo il seguente codice, ma non mi dà il valore corretto.

D: Cosa c'è di sbagliato nel codice sottostante? (Non ho capito)

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

Grazie mille.

 
Max Enrik:

Provo il seguente codice, ma non mi dà il valore corretto.

D: Cosa c'è di sbagliato nel codice sottostante? (Non ho capito)

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

Grazie mille.

Sembra che non tutti i broker lo impostino correttamente. Si prega di vedere qui
 
honest_knave:
Sembra che non tutti i broker lo impostino correttamente. Si prega di vedere qui

Non c'è alcuna possibilità!
Sto solo pensando che i programmatori professionisti e i codici hanno rinunciato?! Certo che no. : / ( ma lo sono )

Grazie mille.

( Ho idea che proverò almeno - più tardi )
 
Max Enrik:

Non c'è alcuna possibilità!
Sto solo pensando che i programmatori professionisti e i codici si sono arresi?! Certo che no. : / ( ma io sono )

Grazie mille.

( Ho idea che proverò almeno - più tardi )

Ci sono sempre dei workaround.

Per esempio, puoi andare indietro attraverso le barre H1 o M30 cercando un gap temporale più grande dell'arco di tempo di 1 barra (cioè il mercato era chiuso durante questo gap).

Ma devi fare attenzione ai fine settimana e ai giorni festivi, e alla storia incompleta.

 
honest_knave:

Ci sono sempre dei workaround.
Per esempio, puoi andare indietro attraverso le barre H1 o M30 cercando un gap temporale più grande dell'arco di tempo di 1 barra (cioè il mercato era chiuso durante questo gap).
Ma devi fare attenzione ai fine settimana e ai giorni festivi, e alla storia incompleta.

Grazie mille per il tuo utile commento.
 

Ho solo bisogno di imparare la data e l'ora, perché finora quando ho provato a scrivere il codice relativo alla data e all'ora ho sempre speso un sacco di tempo per quella parte di codice. (anche se ho finito con successo i miei script ma non ho mai capito più chiaramente)
Così ora cerco di ottenere i dati della prima barra (giorno corrente prima barra 1m, 5m, 15m, 30m, 1h e così via) del giorno, ma non ci riesco.

(Ho molte e molte schede nel browser di google chrome relative a questo - solo sciocchezze)

Quindi qualcuno può aiutarmi a scrivere il codice per la prima barra del giorno (M1, 5M e così via) con un esempio e spiegare, per favore.

Naturalmente domani continuerò la ricerca su questa preoccupazione.

Grazie mille in anticipo.

 

La prima barra del giorno dovrebbe essere la prima barra dopo che TimeHour() ha ricominciato il conteggio.

Questa sarà naturalmente la prima barra di qualsiasi cosa M1, M5, M15 ecc.