Ho usato ArraySetAsSeries( array[], false) nell'indicatore. In indicatore ho bisogno di usare iMa(...,i), risulta l'indicizzazione in un altro modo. Posso anche cambiare l'ordine di indicizzazione per iMa() come ArraySetAsSeries?
Finora ho fatto così: rates_total-i (count all'altra estremità), ma non sono sicuro che questa sia la soluzione giusta?
Ragazzi. Puoi per favore darmi il codice per legare un indicatore a un numero di conto, e oltre a legarlo a un conto, si potrebbe aggiungere una chiave di licenza?
Ho usato ArraySetAsSeries( array[], false) nell'indicatore. In indicatore ho bisogno di usare iMa(...,i), risulta l'indicizzazione in un altro modo. Posso anche invertire l'ordine di indicizzazione per iMa() come ArraySetAsSeries?
Finora ho fatto così: rates_total-i (conta dall'altra parte), ma non sono sicuro che questa sia la soluzione giusta?
Mi rispondo da solo (forse anche qualcuno ne avrà bisogno). Puoi creare (rifare) il buffer di dati per esempio includere MovingAverages.mqh (SimpleMAOnBuffer) e non preoccuparti nemmeno di ArraySetAsSeries, perché ha già ArrayGetAsSeries nell'esempio.
//+------------------------------------------------------------------+//| Data on array |//+------------------------------------------------------------------+int DataBuffer(constint rates_total,constint prev_calculated,constint begin,
constdouble& data[],double& buffer[])
{
int i,limit;
//--- check for data//--- save as_series flagsbool as_series_data=ArrayGetAsSeries(data);
bool as_series_buffer=ArrayGetAsSeries(buffer);
if(as_series_data)
ArraySetAsSeries(data,false);
if(as_series_buffer)
ArraySetAsSeries(buffer,false);
//--- first calculation or number of bars was changedif(prev_calculated==0) // first calculation
{
limit=begin+1;
//--- set empty value for first barsfor(i=0; i<limit-1; i++)
buffer[i]=0.0;
//--- calculate first visible valuedouble firstValue=0;
for(i=begin; i<limit; i++)
firstValue=data[i];
buffer[limit-1]=firstValue;
}
else
limit=prev_calculated-1;
//--- main loopfor(i=limit; i<rates_total-1; i++)
buffer[i]=data[i];
//--- restore as_series flagsif(as_series_data)
ArraySetAsSeries(data,true);
if(as_series_buffer)
ArraySetAsSeries(buffer,true);
//---return(rates_total);
}
//+------------------------------------------------------------------+
non ci saranno nomi di variabili dopo la compilazione,
Capisco, Igor, immagino che non funzionerà con grazia. Ho pensato di accorciare il percorso dei dati per chiarezza, ma avrò fogli di sostituzioni di casi e macro. Probabilmente mi accontenterò di un disco lungo. Ci penserò però, è una soluzione interessante, grazie!
Qual è il modo migliore per accedere a una proprietà di una classe a un'altra proprietà della stessa classe?
Cioè, invece di "questo", vorrei usare qualcosa come "genitore".
Ho usato ArraySetAsSeries( array[], false) nell'indicatore. In indicatore ho bisogno di usare iMa(...,i), risulta l'indicizzazione in un altro modo. Posso anche cambiare l'ordine di indicizzazione per iMa() come ArraySetAsSeries?
Finora ho fatto così: rates_total-i (count all'altra estremità), ma non sono sicuro che questa sia la soluzione giusta?Qual è il modo migliore per accedere a una proprietà di una classe a un'altra proprietà della stessa classe?
Cioè, invece di "questo", vorrei usare qualcosa come "genitore".
Imparare la matematica)
Ragazzi. Puoi per favore darmi il codice per legare un indicatore a un numero di conto, e oltre a legarlo a un conto, si potrebbe aggiungere una chiave di licenza?
Una domanda: come faccio a riferirmi a un elemento della struttura sostituendo il suo nome con una stringa?
Chi riesce a dirmelo, ben fatto!Ho usato ArraySetAsSeries( array[], false) nell'indicatore. In indicatore ho bisogno di usare iMa(...,i), risulta l'indicizzazione in un altro modo. Posso anche invertire l'ordine di indicizzazione per iMa() come ArraySetAsSeries?
Finora ho fatto così: rates_total-i (conta dall'altra parte), ma non sono sicuro che questa sia la soluzione giusta?Mi rispondo da solo (forse anche qualcuno ne avrà bisogno). Puoi creare (rifare) il buffer di dati per esempio includere MovingAverages.mqh (SimpleMAOnBuffer) e non preoccuparti nemmeno di ArraySetAsSeries, perché ha già ArrayGetAsSeries nell'esempio.
Una domanda: come faccio a riferirmi a un elemento della struttura sostituendo il suo nome con una stringa?
Chi lo richiederà, sarà ben fatto!Nessun nome di variabile dopo la compilazione,
Devo inventare qualcosa con le macrosostituzioni.
Non mi piace iltipo di stringa, mi aspetto sempre un sacco di cose inaspettate con essa:
UPD:
anche se sarebbe più logico mettere un metodo di lavoro con i campi nella struttura, cioè così:
non ci saranno nomi di variabili dopo la compilazione,
Capisco, Igor, immagino che non funzionerà con grazia. Ho pensato di accorciare il percorso dei dati per chiarezza, ma avrò fogli di sostituzioni di casi e macro. Probabilmente mi accontenterò di un disco lungo. Ci penserò però, è una soluzione interessante, grazie!
Una domanda: come faccio a riferirmi a un elemento della struttura sostituendo il suo nome con una stringa?
Chi riesce a dirmelo, ben fatto!