Aiuto per la codifica - pagina 466

 

Buongiorno a tutti.

Ho visto molte versioni di questo indicatore e le candele rosse non appaiono mai, potrebbe correggere l'errore ????.

Grazie mille.

#proprietà indicator_separate_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 LimeGreen

#proprietà indicator_color2 Red

//---- buffer dell'indicatore

double ind_buffer1[]

double ind_buffer2[]

doppio ind_buffer3[]

//----

double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;

double resh = 0, resl = 0, deltah = 0, deltal = 0;

int CurrentBar=0;

//+------------------------------------------------------------------+

//|Funzione di inizializzazione dell'indicatore personalizzato |

//+------------------------------------------------------------------+

int init()

{

//---- 1 buffer aggiuntivo utilizzato per il conteggio.

IndicatorBuffers(3);

//---- impostazioni di disegno

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);

SetIndexDrawBegin(0, 34);

SetIndexDrawBegin(1, 34);

//---- 3 buffer di indicatori mappati

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("impossibile impostare i buffer degli indicatori!)

//---- nome per DataWindow e l'etichetta della sottofinestra dell'indicatore

IndicatoreNomeCorto("DeltaForce");

SetIndexLabel(0, "DF1");

SetIndexLabel(1, "DF2");

//---- inizializzazione fatta

return(0);

}

//+------------------------------------------------------------------+

//| Delta Force |

//+------------------------------------------------------------------+

int start()

{

for(CB = 0 ; CB <= Barre ; CB++)

{

CurrentBar = Bars - CB;

if(Close[CurrentBar] > Close[CurrentBar+1])

{

resl = 0;

se(resh == 0)

deltah = 0;

deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);

// valueh = High[CurrentBar];

resh= 1;

}

if(resh == 0)

deltah = 0;

ind_buffer1[CurrentBar] = deltah;

if(Close[CurrentBar] < Close[CurrentBar+1] )

{

resh = 0;

se(resl == 0)

deltal = 0;

deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);

//valuel = Low[CurrentBar];

resl= 1;

}

if(resl == 0 )

deltal=0;

ind_buffer2[CurrentBar] = deltal;

}

//---- fatto

return(0);

}

//+------------------------------------------------------------------+

 
rookiespain:
Buongiorno a tutti.

Ho visto molte versioni di questo indicatore e le candele rosse non appaiono mai, potrebbe correggere l'errore ????.

Grazie mille.

#proprietà indicator_separate_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 LimeGreen

#proprietà indicator_color2 Red

//---- buffer dell'indicatore

double ind_buffer1[]

double ind_buffer2[]

doppio ind_buffer3[]

//----

double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;

double resh = 0, resl = 0, deltah = 0, deltal = 0;

int CurrentBar=0;

//+------------------------------------------------------------------+

//|Funzione di inizializzazione dell'indicatore personalizzato |

//+------------------------------------------------------------------+

int init()

{

//---- 1 buffer aggiuntivo utilizzato per il conteggio.

IndicatorBuffers(3);

//---- impostazioni di disegno

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);

SetIndexDrawBegin(0, 34);

SetIndexDrawBegin(1, 34);

//---- 3 buffer di indicatori mappati

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("impossibile impostare i buffer degli indicatori!)

//---- nome per DataWindow e l'etichetta della sottofinestra dell'indicatore

IndicatoreNomeCorto("DeltaForce");

SetIndexLabel(0, "DF1");

SetIndexLabel(1, "DF2");

//---- inizializzazione fatta

return(0);

}

//+------------------------------------------------------------------+

//| Delta Force |

//+------------------------------------------------------------------+

int start()

{

for(CB = 0 ; CB <= Barre ; CB++)

{

CurrentBar = Bars - CB;

if(Close[CurrentBar] > Close[CurrentBar+1])

{

resl = 0;

se(resh == 0)

deltah = 0;

deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);

// valueh = High[CurrentBar];

resh= 1;

}

if(resh == 0)

deltah = 0;

ind_buffer1[CurrentBar] = deltah;

if(Close[CurrentBar] < Close[CurrentBar+1] )

{

resh = 0;

se(resl == 0)

deltal = 0;

deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);

//valuel = Low[CurrentBar];

resl= 1;

}

if(resl == 0 )

deltal=0;

ind_buffer2[CurrentBar] = deltal;

}

//---- fatto

return(0);

}

//+------------------------------------------------------------------+

Provatelo ora: _test.mq4

File:
_test.mq4  3 kb
test.gif  68 kb
 
Big Be:
Stanwell,

Un paio di foto che mostrino tutto ciò aiuterebbe.

Big Be

Ciao Big Be,

Buon punto, domani posterò alcuni grafici.

salute,

Stan

 

Ecco il grafico AUD che ho segnato manualmente. I riquadri rossi sono le barre sovrapposte. A sinistra, c'è un quadrato che mostra solo tre barre al suo interno, quindi non rientra nella definizione. Tuttavia, se questa gamba è significativa, diciamo maggiore di 6 X ATR, la conterei anche come uno swing (solo difficile da scambiare con solo tre barre), ma ho pensato che questo requisito avrebbe complicato la codifica, quindi possiamo lasciarlo fuori per il momento.

thx.

Stan

File:
 

Ciao Mladen e Mrtools!

Ho bisogno di nuovo del vostro aiuto, siete in grado di aggiungere un allarme visivo/acustico a questo indicatore per favore?

Grazie in anticipo, saluti!

File:
 

MLADEN, buongiorno.

Grazie mille, hanno provato il loro _test e appare giusto.

Qualsiasi aiuto che ho qui, anche se il suo dominio è molto più del mio, anche se in ProRealTime / VISUALCHART sì posso aiutare più.

Cordiali saluti.

 

Salve,

ho un indicatore e voglio limitare il calcolo delle barre.

Il codice originale era:

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);

È corretto? L'indicatore sembra funzionare bene ma ho il dubbio di aver davvero limitato il calcolo delle barre.

 
thefxpros:
Ciao,

Ho un indicatore e voglio limitare il calcolo delle barre.

Il codice originale era:

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);
è corretto? L'indicatore sembra funzionare bene ma ho il dubbio di aver davvero limitato il calcolo delle barre.

thefxpros

No. Fallo così:

int limit = MathMin(MathMin(Bars-counted_bars,Bars-1),NBars);

Ma in questo caso devi sempre assicurarti che NBars sia sempre > 0

 

Ciao mladen

se puoi aiutarmi, aggiungi gli assi X e Y, poi posso metterlo nell'angolo, e

e può regolare la dimensione del carattere, mi dispiace per il mio inglese.

X2014-PIPSv2

thx molto.

File:
 
blueface:
Ciao mladen

se potete aiutarmi, aggiungete gli assi X e Y, poi posso metterlo nell'angolo, e

e può regolare la dimensione del carattere, mi dispiace per il mio inglese.

X2014-PIPSv2

grazie mille.

blueface

Li hai già: le variabili posX e posY nel codice