[Scriverò qualsiasi esperto o indicatore gratuitamente. - pagina 7

 
Buon pomeriggio...

C'è un tacchino come questo
//+------------------------------------------------------------------+
//| Tick_on_Chart.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"

#proprietà indicator_separate_window
#proprietà indicator_buffers 2
#property indicator_color1 Cornsilk
#property indicator_color2 Red
//---- buffer
doppio ExtMapBuffer1[];
doppio ExtMapBuffer2[];
int tik,t;
double buf[];MaxB,MinB=1000;
extern int period=200;

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int init()
{
//---- indicatori
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_NONE);
SetIndexBuffer(1,ExtMapBuffer2);

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione dell'indicatore Custor
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di iterazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int start()
{
int i,b;
//----
t++;
b=periodo;
ArrayResize(buf,b);

se(tik==0)
{
for(i=0;i<b;i++)
{
buf[i]=Bid;
}
ExtMapBuffer2[0]=Bid+5*Point;
ExtMapBuffer2[1]=Bid-5*Point;
tik=1;
}
MaxB=0;MinB=1000;
for(i=b-1;i>0;i--)
{
buf[i]=buf[i-1];
if(MaxB<buf[i])MaxB=buf[i];
se(MinB>buf[i])MinB=buf[i];
}
buf[0]=Bid;
for(i=0;i<b;i++)
{
ExtMapBuffer1[i]=buf[i];
}
if(MathCeil(t/10)*10==t)
{
for(i=b;i<Bars;i++)
{
ExtMapBuffer1[i]=Bid;
}
ArrayInitialize(ExtMapBuffer2,Bid);
if(MaxB-Bid<5*Point)ExtMapBuffer2[0]=Bid+5*Point;
if(Bid-MinB<5*Point)ExtMapBuffer2[1]=Bid-5*Point;
//Stampa(MaxB, "+",Bid, "+",MinB);
}
//----
ritorno(0);
}
//+------------------------------------------------------------------+

Sulla sua base facciamo CCI... lo stesso tick...

Indice del canale delle materie prime
ORIGINALE
Calcolo
Trova un prezzo tipico. Per farlo, aggiungete il prezzo alto, basso e vicino di ogni barra e dividete la somma per 3.
TP = (ALTO + BASSO + CHIUSURA) / 3
Calcola una media mobile semplice di n periodi dei prezzi tipici.
SMA (TP, N) = SOMMA (TP, N) / N
Sottrarre la SMA(TP, N) risultante dai prezzi tipici TP di ciascuno degli n periodi precedenti.
D = TP - SMA(TP, N)
4. Calcolare la media mobile semplice di n periodi dei valori assoluti di D
SMA (D, N) = SOMMA (D, N) / N
5) Moltiplicare SMA (D, N) per 0,015
M = SMA (D, N) * 0,015
6. dividere M per D
CCI = M / D
dove:
HIGH - prezzo massimo della barra;
LOW - prezzo minimo della barra;
CLOSE - prezzo di chiusura;
SMA - media mobile semplice;
SUM - somma;
N - numero di periodi utilizzati per il calcolo.
Cioè... punto per punto... cosa si deve fare


1) Trova un prezzo tipico. Per fare questo aggiungete il prezzo alto, basso e di chiusura di ogni barra e dividete la somma per 3.
TP = (ALTO + BASSO + CHIUSURA) / 3
Poiché non ci sono HIGH e LOW sui tick, prendiamo semplicemente il valore del prezzo sul tick

2) Calcolare una media mobile semplice di n periodi
SMA (TP, N) = SOMMA (TP, N) / N
Calcola la media mobile semplice di n periodi dei prezzi da #1
3) Sottrarre la SMA(TP, N) risultante dai prezzi tipici TP di ciascuno degli n periodi precedenti.
D = TP - SMA(TP, N)
Sottrarre la SMA risultante (#2) da (#1) di ciascuno degli n periodi precedenti.

4) Calcolare la media mobile semplice di n periodi dei valori assoluti D
SMA (D, N) = SOMMA (D, N) / N

Questo è il modo in cui lo facciamo.
5) Moltiplicare lo SMA ottenuto (D, N) per 0,015
M = SMA (D, N) * 0,015
Ecco come facciamo...
6) Dividere M per D
CCI = M / D
Ecco come facciamo...
ORA IN FINE ... disegno di ToR (spero di averlo descritto chiaramente sopra)...
Disegnando un indice TUTTO il sopra descritto ....
AGGIUNGI...
Nelle impostazioni dell'indicatore (INPUT PARAMETERS)... fare questi parametri regolabili... (indicherò le aggiunte con spiegazioni)
1) Specificare il periodo CCI (qui è tutto chiaro)
Specificare "Periodo CCI" nelle impostazioni.
2) Specificare il valore (0.015) con la possibilità di cambiarlo ... (non influisce su nulla in particolare - ma per comodità ...)
Nelle impostazioni specificare "Znach".

3) Facciamo "avvisi" ...
TUTTI gli "avvisi" con possibilità di attivare (True) e disattivare (False)
TUTTI gli "avvisi" con possibilità di segnale sonoro (configurabile - quindi può essere on/off)

3.1) INDJUNCTION = 0 (livello = NULL)
Impostare su "Uroven0".

3.2) Intersezione di tutti i valori INDUCLE = qualsiasi Setpoint... (livello)
Per esempio (livello = 100) o (livello = -35) con una POSSIBILE capacità di cambiare... (livello)... per produrre un segnale...
INSTALLATO PER valori in + e valori in -
con possibilità di accenderli (True) e spegnerli (False) SEMPRE
Nelle impostazioni è impostato come "Uroven+".
Nelle impostazioni indicare "Uroven-".
INOLTRE... Nelle impostazioni dell'indicatore (COLORI) = rendere possibile cambiare i colori,
uno qualsiasi dei parametri corrispondenti.
ora vogliamo ottenere una corretta visualizzazione (grafica) dell'indicatore dato
ESEMPIO in Fig. (poi spiegazioni)...

1) Dividere ogni nuovo minuto con una linea verticale (rossa nell'immagine)
2) Stampa il tempo in ore:min. All'apertura della BARRA corrente (o della CORRENTE corrente).

Quindi se c'è stato un minuto perso, invece di 07:06 sarà 07:09 per esempio.
ORA le aggiunte desiderate...(se possibile)

1) (prima e ultima... )))))))) possibilità di impostare la MA con valori già ricevuti... (vedi fig.) Spero che tutto sia chiaro...

E di nuovo con la possibilità di scegliere...
1.1) PERIODO di un dato MA
1.2) colore del MA dato
1.3) e gli "avvisi" impostati dall'intersezione del livello=0 di questa MA
1.4) e anche separati per МА sulle intersezioni dei livelli (per esempio, +200 e -50) ALERT
 
Buon pomeriggio...

C'è un tacchino come questo
//+------------------------------------------------------------------+
//| Tick_on_Chart.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp.
#proprietà link "http://www.metaquotes.net"

#proprietà indicator_separate_window
#proprietà indicator_buffers 2
#property indicator_color1 Cornsilk
#property indicator_color2 Red
//---- buffer
doppio ExtMapBuffer1[];
doppio ExtMapBuffer2[];
int tik,t;
double buf[];MaxB,MinB=1000;
extern int period=200;

//+------------------------------------------------------------------+
//| funzione di inizializzazione dell'indicatore personalizzato
//+------------------------------------------------------------------+
int init()
{
//---- indicatori
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_NONE);
SetIndexBuffer(1,ExtMapBuffer2);

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione dell'indicatore Custor
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
ritorno(0);
}
//+------------------------------------------------------------------+
//| funzione di iterazione dell'indicatore personalizzata
//+------------------------------------------------------------------+
int start()
{
int i,b;
//----
t++;
b=periodo;
ArrayResize(buf,b);

se(tik==0)
{
for(i=0;i<b;i++)
{
buf[i]=Bid;
}
ExtMapBuffer2[0]=Bid+5*Point;
ExtMapBuffer2[1]=Bid-5*Point;
tik=1;
}
MaxB=0;MinB=1000;
for(i=b-1;i>0;i--)
{
buf[i]=buf[i-1];
if(MaxB<buf[i])MaxB=buf[i];
se(MinB>buf[i])MinB=buf[i];
}
buf[0]=Bid;
for(i=0;i<b;i++)
{
ExtMapBuffer1[i]=buf[i];
}
if(MathCeil(t/10)*10==t)
{
for(i=b;i<Bars;i++)
{
ExtMapBuffer1[i]=Bid;
}
ArrayInitialize(ExtMapBuffer2,Bid);
if(MaxB-Bid<5*Point)ExtMapBuffer2[0]=Bid+5*Point;
if(Bid-MinB<5*Point)ExtMapBuffer2[1]=Bid-5*Point;
//Stampa(MaxB, "+",Bid, "+",MinB);
}
//----
ritorno(0);
}
//+------------------------------------------------------------------+

Sulla sua base facciamo CCI... lo stesso tick...

Indice del canale delle materie prime
ORIGINALE
Calcolo
Trova un prezzo tipico. Per farlo, aggiungete il prezzo alto, basso e vicino di ogni barra e dividete la somma per 3.
TP = (ALTO + BASSO + CHIUSURA) / 3
Calcola una media mobile semplice di n periodi dei prezzi tipici.
SMA (TP, N) = SOMMA (TP, N) / N
Sottrarre la SMA(TP, N) risultante dai prezzi tipici TP di ciascuno degli n periodi precedenti.
D = TP - SMA(TP, N)
4. Calcolare la media mobile semplice di n periodi dei valori assoluti di D
SMA (D, N) = SOMMA (D, N) / N
5) Moltiplicare SMA (D, N) per 0,015
M = SMA (D, N) * 0,015
6. dividere M per D
CCI = M / D
dove:
HIGH - prezzo massimo della barra;
LOW - prezzo minimo della barra;
CLOSE - prezzo di chiusura;
SMA - media mobile semplice;
SUM - somma;
N - numero di periodi utilizzati per il calcolo.
Cioè... punto per punto... cosa si deve fare


1) Trova un prezzo tipico. Per fare questo aggiungete il prezzo alto, basso e di chiusura di ogni barra e dividete la somma per 3.
TP = (ALTO + BASSO + CHIUSURA) / 3
Poiché non ci sono HIGH e LOW sui tick, prendiamo semplicemente il valore del prezzo sul tick

2) Calcolare una media mobile semplice di n periodi
SMA (TP, N) = SOMMA (TP, N) / N
Calcola la media mobile semplice di n periodi dei prezzi da #1
3) Sottrarre la SMA(TP, N) risultante dai prezzi tipici TP di ciascuno degli n periodi precedenti.
D = TP - SMA(TP, N)
Sottrarre la SMA risultante (#2) da (#1) di ciascuno degli n periodi precedenti.

4) Calcolare la media mobile semplice di n periodi dei valori assoluti D
SMA (D, N) = SOMMA (D, N) / N

Questo è il modo in cui lo facciamo.
5) Moltiplicare lo SMA ottenuto (D, N) per 0,015
M = SMA (D, N) * 0,015
Ecco come facciamo...
6) Dividere M per D
CCI = M / D
Ecco come facciamo...
ORA IN FINE ... disegno di ToR (spero di averlo descritto chiaramente sopra)...
Disegnando un indice TUTTO il sopra descritto ....
AGGIUNGI...
Nelle impostazioni dell'indicatore (INPUT PARAMETERS)... fare questi parametri regolabili... (indicherò le aggiunte con spiegazioni)
1) Specificare il periodo CCI (qui è tutto chiaro)
Specificare "Periodo CCI" nelle impostazioni.
2) Specificare il valore (0.015) con la possibilità di cambiarlo ... (non influisce su nulla in particolare - ma per comodità ...)
Nelle impostazioni specificare "Znach".

3) Facciamo "avvisi" ...
TUTTI gli "avvisi" con possibilità di attivare (True) e disattivare (False)
TUTTI gli "avvisi" con possibilità di segnale sonoro (configurabile - quindi può essere on/off)

3.1) INDJUNCTION = 0 (livello = NULL)
Impostare su "Uroven0".

3.2) Intersezione di tutti i valori INDUCLE = qualsiasi Setpoint... (livello)
Per esempio (livello = 100) o (livello = -35) con una POSSIBILE capacità di cambiare... (livello)... per produrre un segnale...
INSTALLATO PER valori in + e valori in -
con possibilità di accenderli (True) e spegnerli (False) SEMPRE
Nelle impostazioni è impostato come "Uroven+".
Nelle impostazioni indicare "Uroven-".
INOLTRE... Nelle impostazioni dell'indicatore (COLORI) = rendere possibile cambiare i colori,
uno qualsiasi dei parametri corrispondenti.
ora vogliamo ottenere una corretta visualizzazione (grafica) dell'indicatore dato
ESEMPIO in Fig. (poi spiegazioni)...

1) Dividere ogni nuovo minuto con una linea verticale (rossa nell'immagine)
2) Stampa il tempo in ore:min. All'apertura della BARRA corrente (o della CORRENTE corrente).

Quindi se c'è stato un minuto perso, invece di 07:06 sarà 07:09 per esempio.
ORA le aggiunte desiderate...(se possibile)

1) (prima e ultima... )))))))) possibilità di impostare la MA con valori già ricevuti... (vedi fig.) Spero che tutto sia chiaro...

E di nuovo con la possibilità di scegliere...
1.1) PERIODO di un dato MA
1.2) colore del MA dato
1.3) e gli "avvisi" impostati dall'intersezione del livello=0 di questa MA
1.4) e anche separati per МА sulle intersezioni dei livelli (per esempio, +200 e -50) ALERT
 
riso
 
figura 2
 
20099 >> :
Figura 2.

Per qualche ragione penso che tu abbia dimenticato di allegare una foto.

 

Caro Kubodel!

è possibile fare un EA da questo indicatore 'T3 TRIX (ROC di T6)'?

quello giallo incrocia quello blu verso il basso - vendere, verso l'alto - comprare
L'operazione viene aperta all'apertura della candela che segue il crossover
Potrei essere un po' programmatore io stesso, ma non ho il cervello per questo (((

come opzione - la posizione viene chiusa quando il blu si muove verso il basso o verso l'alto, cioè cambiando direzione

pronto a pagare 10 Usd.

 
Kubodel >> :

Bigboom, manda la produzione a integrum-perm@mail.ru. Finché non lo vedrò, non posso dire nulla di preciso.

Egay! Bravo a Kubodel!

Ho il mio esperto :)

L'implementazione tecnica è super, esattamente come avevo bisogno.

Ho intenzione di testarlo per un paio di settimane su demo e poi forse darò il mio account al compagno elettronico.

>> Grazie mille.

 

Buon pomeriggio!!!

Che posto interessante avete qui!!!

Prendete i manichini nei vostri ranghi?! :)

 
Kubodel >> :

Per qualche ragione penso che tu abbia dimenticato di allegare una foto.

 

Ancora una volta non vuole...allegare perché non lo so...?
Forse un'email privata... o un account di posta elettronica?