Indicatore Domande varie - pagina 8

 
Marco vd Heijden:

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.

Lo proverò presto, inoltre sto lavorando su questo problema.

Grazie mille.

 

Leggo ancora i forum e faccio ricerche, posso trovare forum simili, ma non riesco a trovare esattamente quello che voglio. ( forse non capisco il loro stile di codice o ... )
Ho fatto rapidamente screenshot, spero che questo possa aiutarvi a capirmi chiaramente.

il primo bar del giorno

Grazie in anticipo.

 
datetime open;

open=iOpen(Symbol(),PERIOD_D1,0);

// put in ontick

if(iOpen(Symbol(),PERIOD_D1,0)!=open)
{
  if(TimeHour(open)==0)
   {
    Alert("New Day !!");
   }
  open=iOpen(Symbol(),PERIOD_D1,0); // assign new value every hour
}

Ho bevuto alcune birre, quindi spero che abbiate capito l'idea che è sbagliata in tutti i modi possibili.

Penso che open debba essere sostituito dal tempo.

iTime(

O forse si può anche fare:

if(TimeHour(TimeCurrent())==0)
{
  Alert("NEw DAy m8");
}
ps. cosa è successo all'altro thread? era quasi 40 pagine?
 
Marco vd Heijden:

Ho bevuto qualche birra, quindi spero che abbiate capito l'idea che è sbagliata in tutti i modi possibili.
O forse si può anche fare:

ps. cosa è successo all'altro thread, che era di quasi 40 pagine?
Signor William - (Ho rispetto per lei e per i suoi commenti.) Ho affrontato alcune volte che lei ha scritto questa frase: Non ci sono lettori del pensiero qui.
Ora penso che se non posso scrivere più chiaramente sul mio problema, come può la gente capirmi chiaramente?

---

Signor Marco - grazie mille per il suo commento. Lo so già, anche io ho usato codici simili nei miei indicatori.

(Ho cercato di spiegare il mio problema nella sezione codice sorgente)

iTime( Symbol(), PERIOD_D1, 0 )
// this code gives me Hour 00:00 - but actually D1 time should show Hour 01:00 | this mean my broker shows absolutely wrong Hour for period PERIOD_D1
// But I need to write code to get first H1 bar Time of the day ( e.g: if first H1 bar 00:00 or 01:00 or ... ) instead of PERIOD_D1
// But I really struggle to write code for get today first H1 time

---

P.S

Pensate che io non apra dei sub topic?
Ci sto ancora lavorando. Posso trovare soluzioni nei forum. Ora sta andando bene anche un po' lentamente.

Inoltre:
Quando ho iniziato a scrivere gli EA di Trade Panel ho pensato di dover scrivere 4 script di funzione Sell, Buy, Close all Order, EXIT (rimuovere) EA.
Mentre ci lavoravo ho avuto un sacco di idee... ora gli EA hanno più di 3k linee.
Ancora dovrei scrivere quasi 10 funzioni più utili se decidessi di tutte.

Inoltre forse quando finirò il mio che Trade Panel EA's scriverò una piccola storia su come ho iniziato a scrivere lo script per il mio Trade Panel EA's. (anche se non l'ho finito - in realtà credo che chi lo vedrà, la maggior parte delle persone dirà: Wow fantastico! ) hehe :)

---

Grazie signor Marco.

Grazie a tutti voi (che rispondete ai miei commenti) molto e per i vostri aiuti.

 
#property strict
#property show_inputs
#define HOUR 3600
#define DAY 86400
extern int local_offset = 1; // local time offset from broker (hours)

void OnStart()
  {
   local_offset*=HOUR;

   int D1_shift = (TimeCurrent()%DAY > local_offset) ? 0 : 1;

   datetime broker_midnight = iTime(_Symbol,PERIOD_D1,D1_shift);
   datetime local_midnight  = broker_midnight + local_offset;

   int      M5_shift = iBarShift(_Symbol,PERIOD_M5,local_midnight);
   datetime M5_time  = iTime(_Symbol,PERIOD_M5,M5_shift);
   double   M5_open  = iOpen(_Symbol,PERIOD_M5,M5_shift);

   printf("M5_time: %s M5_open: %f", TimeToString(M5_time),M5_open);
  }
 
honest_knave:

Grazie per il tuo grande esempio.
Forse se mi prendo un po' di tempo proverò a spiegare con video / immagine domani.

Ho fatto delle ricerche su questo tema così difficili.

( anche io cerco come queste parole chiave in google seo ( commento non utile finora in seo): site:mql4.com | site:mql5.com prima barra del giorno )

 

Stai cercando un modo per rilevare automaticamente l'offset dell'ora locale del > broker? per esempio +1 ora

Se hai intenzione di avere un'impostazione manuale (questo è meglio perché a volte non vuoi usare l'ora locale ma un altro fuso orario) i passi da seguire sono come nel mio script sopra:

1. Ottieni la mezzanotte sull'ora del broker (usando iTime o tramite calcolo)

2. Convertirla in una mezzanotte locale usando le tue impostazioni di offset

3. Metti la mezzanotte locale attraverso iBarShift per ottenere la barra corretta sul timeframe scelto.

 
honest_knave:

Stai cercando un modo per rilevare automaticamente l'offset dell'ora locale del broker? per esempio +1 ora
Se hai intenzione di avere un'impostazione manuale (questo è meglio perché a volte non vuoi usare l'ora locale ma un altro fuso orario) i passi da seguire sono come nel mio script qui sopra:
1. Ottieni la mezzanotte sull'ora del broker (usando iTime o attraverso il calcolo)
2. Converti la mezzanotte locale usando l'ora del broker. Convertirla in una mezzanotte locale usando la tua impostazione di offset
3. Metti la mezzanotte locale attraverso iBarShift per ottenere la barra corretta sul timeframe scelto.

Avete assolutamente capito bene - che sto cercando un modo per automaticamente... - Quindi, perché? Ho pochi indicatori importanti (fatti da me - con diversi forum aiutati) se scelgo il modo manuale - potrei cambiare le loro impostazioni... che è un modo lungo - sono così pigro. :)
Grazie ancora tanto!
Forse ho trovato la soluzione (in questo momento sembra che funzioni - ho già provato 2 diversi broker e ho ottenuto il tempo corretto).

Credo che la domanda venga dalla mancanza di esperienza.

D: Come posso mantenere solo l'ora 1 nel risultato sottostante, per favore?
( In realtà ho trovato come posso mantenere solo " 1 " dal risultato sottostante - ma ho bisogno di un metodo professionale, per favore )
( es: risultato: 2017.02.2701:00:00 - Ma ho bisogno di mantenere solo: 1 )

2017.00.00 00:00:00.000 Custom Indicator EURUSD,M5:  Bar Time: 2017.02.27 01:00:00

Grazie mille per tutto.

( Condividerò come ho trovato la soluzione. - se non mi hai aiutato non posso trovare la soluzione - un altro grazie mille. )

 

Stavo cercando proprio sotto il codice.
Ma ho ancora bisogno di testarlo.

Period_Look=iTime(Symbol(),PERIOD_W1,0); // actually I need PERIOD_D1 - but did not work correctly - I still need to see first Hour of Monday for test.
Period_Shift=iBarShift(Symbol(),PERIOD_H4,Period_Look);
Period_Time=iTime(Symbol(),PERIOD_H4,Period_Shift-1);

GMT_Offset=(Period_Time-iTime(Symbol(),PERIOD_W1,0)-PeriodSeconds(PERIOD_D1))/PeriodSeconds(PERIOD_H1); // result: 1

Se il codice di cui sopra non è corretto, per favore fatemelo sapere.

Grazie mille @honest_knave e @Marco

 

Bene Max considera questo, se stai scansionando per un pattern, e si forma, allora il tuo trigger scatterà a prescindere dalla marca temporale.

Così il trigger può avere diversi timbri di tempo su diversi broker, ma il momento esatto del trigger sarebbe circa lo stesso su tutti i broker.

Non esattamente, ma abbastanza vicino.