Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Beh, se si tratta di passare da un fotogramma all'altro, allora il timer non è una buona opzione perché il timer viene distrutto quando si cambia fotogramma.
Puoi creare le tue linee nella funzione OnInit(), e aggiornarle nelle funzioni OnTick() o OnTimer().
Notate anche la funzione ObjectsDeleteAll() nella funzione OnDeint() che farà in modo che tutto venga rimosso prima di essere creato nuovamente nel nuovo frame.
---
Inoltre, se volete aggiornare le linee ogni volta che si presenta una nuova candela, potete combinare l'esempio della pagina precedente con l'ultimo per ottenere questo:
...
Se ci sono altri problemi, per favore mostra del codice.
Ho studiato i tuoi ultimi commenti.
Altri 2 grandi commenti. Sembra che il codice sia simile (il tuo commento #18) ma è molto diverso per me.
Quindi, sì, mi sentivo 'Timer' distruggere quando cambio cornice. Ma questo è molto utile per me perché il mio indicatore aggiorna una volta in un PERIODO_**'s.
Sì! Ho già creato le linee principali nella funzione speciale init(), e le aggiorno nella funzione OnTimer().
(potete capirmi più chiaramente dal codice qui sotto)
...nuove candele si possono combinare...
Se ci sono altriproblemi...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Come ho detto c'è un problema che richiede più tempo. In questo momento ho bisogno di mostrarvi un po' del mio codice indicatore. E non uso 'switch operator & ObjectMove()'nel mio indicatore.
@Marco
Per favore fammi sapere se il codice qui sotto è buono o cosa?
Qual è il tuo consigliopotrei iniziare la ricerca ampiamente i tuoi ultimi due commenti e potrei coinvolgere 'switch() e ObjectMove()' al mio indicatore? (Perché lo chiedo prima di farlo? - perché ci vuole molto tempo).
(come vedi ho ottenuto più benefici dal tuo commento #18 - e ora sono di fronte al dilemma tra il mio codice e i tuoi ultimi due grandi commenti)
int init()
{
EventSetMillisecondTimer( 1250 );
_CreateLines_M5();
return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int start()
{
return(0);
}
//|+--------------------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll( 0, _prefix );
return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
//---
if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
{
_dt_Prd_M5 = iTime( Symbol(), _prd_M5, 0 );
_CreateLines_M5();
}
return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
//---
int _dayCnt_M5 = _prd_cnt + 0;
int _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
for ( i = 0; i < _cnt_M5; i++ )
{
_time_M5 = Time[i];
_prdCvrt_M5 = PeriodSeconds( _prd_M5 );
_timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;
_vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );
if ( _Period < PERIOD_M15 )
{
if (
...
TimeHour( _timeCvrt_M5 ) == 12
)
{
ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0 );
}
}
}
return;
}
Tutto il meglio per te amico.
Non so gli altri, ma trovo il tuo mix di caratteri, colori, grassetto e corsivo ecc. distraente e fastidioso. Infatti non ho potuto essere disturbato a leggere questo post.
Ho ricercato i vostri ultimi commenti.
Altri 2 grandi commenti. Sembra che il codice sia simile (il tuo commento #18) ma è molto diverso per me.
Quindi, sì, mi sentivo 'Timer' distruggere quando cambio cornice. Ma questo è molto utile per me perché il mio indicatore aggiorna una volta in un PERIODO_**'s.
Sì! Ho già creato le linee principali nella funzione speciale init(), e le aggiorno nella funzione OnTimer().
(potete capirmi meglio dal codice qui sotto)
...nuove candele si possono combinare...
Se ci sono altriproblemi...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Come ho detto c'è un problema che richiede più tempo. In questo momento ho bisogno di mostrarvi un po' del mio codice indicatore. E non uso 'switch operator & ObjectMove()'nel mio indicatore.
@Marco
Per favore fammi sapere se il codice qui sotto è buono o cosa?
Qual è il tuo consigliopotrei iniziare la ricerca ampiamente i tuoi ultimi due commenti e potrei coinvolgere 'switch() e ObjectMove()' al mio indicatore? (Perché lo chiedo prima di farlo? - perché ci vuole molto tempo).
(come vedi ho ottenuto più benefici dal tuo commento #18 - e ora sono di fronte al dilemma tra il mio codice e i tuoi ultimi due grandi commenti)
int init()
{
EventSetMillisecondTimer( 1250 );
_CreateLines_M5();
return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int start()
{
return(0);
}
//|+--------------------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll( 0, _prefix );
return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
//---
if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
{
_dt_Prd_M5 = iTime( Symbol(), _prd_M5, 0 );
_CreateLines_M5();
}
return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
//---
int _dayCnt_M5 = _prd_cnt + 0;
int _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
for ( i = 0; i < _cnt_M5; i++ )
{
_time_M5 = Time[i];
_prdCvrt_M5 = PeriodSeconds( _prd_M5 );
_timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;
_vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );
if ( _Period < PERIOD_M15 )
{
if (
...
TimeHour( _timeCvrt_M5 ) == 12
)
{
ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0 );
}
}
}
return;
}
Tutto il meglio per te amico.
Bene, se funziona e se non funziona continua a provare.
Bene, se funziona e se non funziona continua a provare.
#Broker Time - ReOpen
Ho letto qualche forum qua e là. Forse la mia soluzione o di loro. Ma non ho capito.
Prima di questo commento - ho provato ancora una volta. Ma non riesco a trovare la soluzione.
Allora, ho 2 broker, A e B.
- A: Vline oggetti posti tempo corretto. Quale voglio. es: Tempo 2017.02.18 0:00 anche oggetto vline posto stesso tempo.
- B: Vline oggetto posto tempo sbagliato ( forse mi sbaglio ). es: Tempo 2017.02.18 1:00 ma oggetto vline posto 0:00.
Quindi se qualcuno capisce la mia preoccupazione, qualsiasi commento sarebbe meglio per me.Buon fine settimana.
#Broker Time - ReOpen
Ho letto qualche forum qua e là. Forse la mia soluzione o di loro. Ma non ho capito.
Prima di questo commento - ho provato ancora una volta. Ma non riesco a trovare la soluzione.
Allora, ho 2 broker, A e B.
- A: Vline oggetti posti tempo corretto. Quale voglio. es: Tempo 2017.02.18 0:00 anche oggetto vline posto stesso tempo.
- B: Vline oggetto posto tempo sbagliato ( forse mi sbaglio ). es: Tempo 2017.02.18 1:00 ma oggetto vline posto 0:00.
Quindi se qualcuno capisce la mia preoccupazione, qualsiasi commento sarebbe meglio per me.Buon fine settimana.
Il codice qui sotto mi dà risultati diversi in due diversi broker.
(Il mio commento precedente potrebbe aiutarvi a capirmi)
Grazie in anticipo.
{
// High
ObjectSet("PeriodHigh",OBJPROP_PRICE1,iHigh(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodHigh",OBJPROP_PRICE2,iHigh(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodHigh",OBJPROP_TIME1,TimeCurrent());
ObjectSet("PeriodHigh",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));
// Low
ObjectSet("PeriodLow",OBJPROP_PRICE1,iLow(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodLow",OBJPROP_PRICE2,iLow(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodLow",OBJPROP_TIME1,TimeCurrent());
ObjectSet("PeriodLow",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));
}
Se intendi che i valori di iHigh e iLow differiscono tra i broker, questo è abbastanza comune.
2 ragioni:
1. I prezzi variano leggermente tra i broker, e
2. Se i server dei broker hanno offset GMT diversi, le barre iniziano in tempi diversi.
Se intendi che i valori di iHigh e iLow differiscono tra i broker, questo è abbastanza comune.
2 ragioni:
1. I prezzi variano leggermente tra i broker, e
2. Se i server dei broker hanno offset GMT diversi, le barre iniziano in tempi diversi.
Intendo solo un tempo diverso.
Quindi, non c'è nessuna possibilità di risolvere questo problema, per favore?
Grazie mille.