![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
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);
}
//+------------------------------------------------------------------+
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
Stanwell,
Un paio di foto che mostrino tutto ciò aiuterebbe.
Big BeCiao 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
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!
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 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.
Ciao,
Ho un indicatore e voglio limitare il calcolo delle barre.
Il codice originale era:
{
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);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.
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