[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 198
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
Date un'occhiata qui.
Molte grazie SK, Vinin!
Un grande esempio per il workaraund.
Deve essere valsa la pena di diventare così sofisticata. :-)
Sembra che MQL4 sappia come "ottimizzare" il tempo del programmatore. :-)
Guarda qui.
Grazie, articolo molto utile.
Grazie mille SK, Vinin!
Grazie, articolo molto utile.
Se siete interessati a questo argomento, date un'occhiata a questo articolo http://www.forextrade.ru/mqlabs/sozdaniie-indikatora-kaghi
Discute molti dettagli per le linee orizzontali, e mostra la soluzione tecnica (alternanza).
Anche le linee verticali sono illustrate. Ma non ho ancora capito alcune regole. Per esempio, è sufficiente cambiare la parità dei buffer ind., man mano che l'immagine oscilla (blocco 4-5, cambiare i numeri dei buffer da 6 e 7 a 5 e 6, e rendere il 5° 7m).
Qual è l'ordine degli indicatori e degli esperti?
Ho 2 indicatori su un grafico.
E nel complesso, il loro tempo di esecuzione è a volte molto più lungo del tempo tra i tick.
Quale indicatore viene eseguito per primo?
Se non vengono eseguiti in parallelo, forse è ragionevole metterli in grafici diversi, ovviamente, se non c'è un ordine di esecuzione in grafici diversi.
Quale indicatore o Expert Advisor viene eseguito per primo se sono sullo stesso grafico e se sono su grafici diversi?
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
Non funziona.
Per favore, ditemi cosa fare. Non so cosa fare.
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
Non funziona.
Per favore, ditemi cosa fare. Non riesco a capirlo.
>> Cosa fare? >> Mostra tutto il codice!
Cosa fare? Mostra tutto il codice!
//+------------------------------------------------------------------+
//| Momentum.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp.
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net/"
#proprietà indicator_separate_window
#proprietà indicator_buffers 1
#property indicator_color1 DodgerBlue
//---- parametri di ingresso
extern int MomPeriod=14;
int ret;
doppio x[];
//---- buffer
doppio MomBuffer[];
doppio ocfor[];
doppio octen[];
//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int init()
{
stringa short_name;
//---- linea di indicazione
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,MomBuffer);
//---- nome per DataWindow e l'etichetta della sottofinestra dell'indicatore
short_name="Mamma("+MomPeriod+")";
IndicatoreNomeCorto(nome_corto);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,MomPeriod);
//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| Momentum |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
se(Bars<=MomPeriod) return(0);
//----
i=Barre;
mentre(i>=0)
{
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
i--;
}
ritorno(0);
}
//+------------------------------------------------------------------+
Se sostituite Double x[]; con Double x;, tutto funziona, ma il punto è assegnare mombuffer[i]= x[i]
.
.
int start()
{
int i,counted_bars=IndicatorCounted();
//----
se(Bars<=MomPeriod) return(0);
//----
i=Barre;
ArrayResize(x, i+1);
mentre(i>=0)
{
x[i]=(Open[i]-Close[i]);
MomBuffer[i]=x[i];
i--;
}
ritorno(0);
}
Se sostituite Double x[]; con Double x;, tutto funziona, ma il punto è assegnare mombuffer[i]= x[i].
Avete dichiarato un array ma non avete allocato la memoria per esso.
Vinin ha dato un modo di allocare la memoria, voi potete usare il secondo, attraverso la funzione ArrayResize()