[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 333
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
Non ho intenzione di discutere! Se lo provate, vedrete cosa c'è di sbagliato. Sto solo scrivendo per coloro che incontreranno questo problema. È invertito nel tempo, quindi il grafico è invertito nel tempo. Sto pubblicando il testo dell'indicatore. PRONTO. Guardate il grafico, con il quale si possono rilevare input molto interessanti. Mi sembra che entri prima e con più precisione di MASD
#proprietà indicator_separate_window
#proprietà indicator_buffers 1
#property indicator_color1 Red
double Buf_0[1000],Bears_array[1000],Bulls_array[1000],Line1[1000],Line2[1000];
int init()
{
SetIndexBuffer(0,Buf_0);
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
ritorno;
}
extern double PeriodPower=13;
extern double MA_Period=5;
int start()
{
int i=Bars-IndicatorCounted()-1;
mentre(i>=0)
{
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
ArraySetAsSeries(Bears_array,true); // Applicato per la sincronizzazione dell'indicizzazione nella funzione iMAOnArray
ArraySetAsSeries(Bulls_array,true);
Line1[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMMA,i);
Line2[i]=iMAOnArray(Bulls_array,0,MA_Period,0,MODE_SMMA,i);
Buf_0[i]=(Line2[i]+Line1[i])/Point/10;
i--;
}
ritorno;
}
Non ho intenzione di discutere! Se lo provate, vedrete cosa c'è di sbagliato. Sto solo scrivendo per coloro che incontreranno questo problema. È invertito nel tempo, quindi il grafico è invertito nel tempo. Sto pubblicando il testo dell'indicatore. PRONTO. Guardate il grafico, con il quale si possono rilevare input molto interessanti. Mi sembra che entri prima e con più precisione del MASD.
#proprietà indicator_separate_window
#proprietà indicator_buffers 1
#property indicator_color1 Red
double Buf_0[1000],Bears_array[1000],Bulls_array[1000],Line1[1000],Line2[1000];
int init()
{
SetIndexBuffer(0,Buf_0);
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
ritorno;
}
extern double PeriodPower=13;
extern double MA_Period=5;
int start()
{
int i=Bars-IndicatorCounted()-1;
mentre(i>=0)
{
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
ArraySetAsSeries(Bears_array,true); // Applicato per la sincronizzazione dell'indicizzazione nella funzione iMAOnArray
ArraySetAsSeries(Bulls_array,true);
Line1[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMMA,i);
Line2[i]=iMAOnArray(Bulls_array,0,MA_Period,0,MODE_SMMA,i);
Buf_0[i]=(Line2[i]+Line1[i])/Point/10;
i--;
}
ritorno;
}
Può essere avvitato, ma può essere fatto in modo normale.
L'indicatore può contenere fino a 8 buffer. Alcuni di essi possono essere utilizzati per i calcoli intermedi.
Tuttavia, se le prestazioni non sono critiche, allora sì, si può fare così.
Si può giocare o farlo normalmente.
L'indicatore può contenere fino a 8 buffer. Alcuni di essi possono essere utilizzati per i calcoli intermedi.
Anche se, se non è critico per te e per la performance, allora sì, puoi farlo in questo modo.
La nozione di normale è relativa. Così come la nozione di diritto. Questa è più una domanda filosofica. Ho cercato di implementare l'algoritmo in modo OTTIMALE. Per costruire un indicatore in UN ciclo. Secondo me è il minor carico di hardware, mentre si può ottenere lo stesso risultato.
>> E, per quanto riguarda il fatto che ci sono 8 buffer, e in tempo di guerra il loro numero può arrivare a 54 e mezzo, qualsiasi geniere lo sa. :-)
La normalità è relativa. Così come il concetto di diritto. Questa è più una domanda filosofica. Ho cercato di implementare l'algoritmo in modo OTTIMALE. In modo che l'indicatore sia costruito in UN solo ciclo. Secondo me, carica meno l'hardware quando il risultato è ancora corretto.
Circa 8 buffer, e il loro numero in tempo di guerra può arrivare fino a 54 e mezzo, ogni ingegnere lo sa. :-)
È possibile fare tutto in un ciclo, e usare un numero minimo di buffer, ma questa è un'altra storia.
Qualsiasi operazione con un array (non un buffer) richiede un tempo considerevole. Pertanto, era più facile e più veloce fare diversi loop piuttosto che stipare tutto in uno solo.
Più veloce nel senso di funzionamento dell'indicatore.
È possibile fare tutto in un ciclo, e usare un numero minimo di buffer, ma questo è tutto un altro discorso.
Qualsiasi operazione con un array (non un buffer) richiede molto tempo. Pertanto, era più facile e più veloce fare diversi loop piuttosto che stipare tutto in uno solo.
Più veloce nel senso della performance dell'indicatore.
Dimmi, Vinin, hai provato a dare un'occhiata alla tua idea e vedere cosa disegna?
È possibile fare tutto in un ciclo, e usare un numero minimo di buffer, ma questo è un discorso completamente diverso.
Qualsiasi operazione con un array (non un buffer) richiede molto tempo. Pertanto, era più facile e più veloce fare diversi loop piuttosto che stipare tutto in uno solo.
Più veloce nel senso della performance dell'indicatore.
Caro Vinin, hai provato a dare un'occhiata alla tua idea e a capirla?
int start()
{
int i, limit=Bars-IndicatorCounted()-1;
per (i=limite;i>=0;i--){
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i);
}
per (i=limite;i>=0;i--){
MA_Bears[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_EMA,i);
MA_Bulls[i]=iMAOnArray(Bulls_array,100,MA_Period,0,MODE_SMA,i);
}
ritorno;
}
Ho capito che nel primo ciclo si forma un array di tori e orsi. Nel secondo ciclo queste due matrici vengono smussate. Se vi piace così tanto, guardate il risultato e capirete tutto.
Guardate attentamente il GRAFICO AGRAFICO
Stavo parlando di questo tipo di codice indicatore in generale.
Sono d'accordo. Esce bene e tutto è corretto. Avevo solo bisogno di visualizzare il seguente output
Buf_0[i]=(Line2[i]+Line1[i])/Point/10;
Dovrebbe essere fatto in un ciclo separato. Preferisco la tua versione perché preferisco il ciclo FOR. Grazie per il vostro aiuto e la vostra attenzione.