Chiedete! - pagina 7

 

Ciao, ho allegato un indicatore in mq4 che avvisa ogni volta che il cci<-150

Avverte su base tick per tick; qualcuno può modificarlo in modo che avverta solo alla chiusura della candela?

In questo caso vorrei essere avvisato solo quando il cci è < -150 alla fine di una candela di 5m

Grazie in anticipo

File:
 

Ok, seconda domanda, penso che questa sia facile:

Sto costruendo un indicatore utente per avvisarmi quando il prezzo vicino attraversa una MA

Sto usando iCustom per importare l'indicatore MA

e poi non so come usare la chiusura del prezzo; ho provato CLOSE e PRICE_CLOSE ma senza risultati:

se (CLOSE?>ma1)

adxvalue= -1;

se (PRICE_CLOSE?>ma1)

adxvalue= -1;

Inoltre, voglio che l'allarme suoni solo alla fine di una barra di 5m e non funzioni su base tick per tick: cos'altro dovrei cambiare (questa domanda è quella del mio post precedente)

Grazie

 

Ciao Codersguru,

Potresti aiutarmi a codificare un avviso in Osma Color in modo che avvisi quando i colori cambiano.

Grazie

Duncan

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

//| OsMA_color.mq4 ||

//| Rafael |

//| marynarz15@wp.pl ||

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

#proprietà copyright "Rafael"

#proprietà link "marynarz15@wp.pl"

//---- impostazioni dell'indicatore

#proprietà indicatore_separazione_finestra

#proprietà indicator_buffers 2

#proprietà indicator_color1 Lime

#proprietà indicator_color2 Red

//---- parametri dell'indicatore

extern int FastEMA=12;

extern int SlowEMA=26;;

extern int SignalSMA=9;

//---- buffer dell'indicatore

double ind_buffer1a[]

double ind_buffer1b[]

double ind_buffer2[]

double ind_buffer3[];

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

//|Funzione di inizializzazione personalizzata dell'indicatore |

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

int init()

{

//---- 2 buffer aggiuntivi sono utilizzati per il conteggio.

IndicatorBuffers(4);

//---- impostazioni di disegno

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexDrawBegin(0,SignalSMA);

SetIndexDrawBegin(1,SignalSMA);

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

//---- 3 buffer di indicatori mappati

if(!SetIndexBuffer(0,ind_buffer1a) &&

!SetIndexBuffer(1,ind_buffer1b) &&

!SetIndexBuffer(2,ind_buffer2) &&

!SetIndexBuffer(3,ind_buffer3))

Print("impossibile impostare i buffer degli indicatori!)

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

IndicatorShortName("OsMA("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");

//---- inizializzazione fatta

return(0);

}

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

//|Media mobile dell'oscillatore

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

int start()

{

int limite;

int counted_bars=IndicatorCounted();

//---- controllare eventuali errori

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

//---- l'ultima barra contata sarà ricontata

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//---- macd contati nel 1° buffer aggiuntivo

for(int i=0; i<limit; i++)

ind_buffer2=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)

-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);

//---- linea di segnale contata nel 2° buffer aggiuntivo

for(i=0; i<limit; i++)

ind_buffer3=iMAOnArray(ind_buffer2,Bars,SignalSMA,0,MODE_SMA,i);

//---- ciclo principale

doppio valore=0;

for(i=0; i<limit; i++)

{

ind_buffer1a=0,0;

ind_buffer1b=0.0;

valore=ind_buffer2-ind_buffer3;

se (valore>0) ind_buffer1a=valore;

se (valore<0) ind_buffer1b=valore;

}

//---- fatto

return(0);

}

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

 

Ciao

Ho un indicatore che è in grado di riconoscere il pattern butterfly ma è scritto per MT3 qualcuno può farmi un favore e convertirlo in MQL4.

File:
butterfly.mql  3 kb
 

Ho allegato due pdf.il succo del modello e le regole sono menzionate

File:
attachment2.pdf  141 kb
attachment1.pdf  189 kb
 

ciao

ciao ragazzi

forse tutti voi conoscete il nome di questo autore ma non avete mai saputo che

il suo metodo codificato in un software.

Pesavento ha scritto tra gli altri questo meraviglioso libro:

* Rapporti di Fibonacci con riconoscimento dei modelli

* Modelli redditizi per il trading azionario

* Astro-Cicli: Punto di vista dei trader

A proposito, so che il software ENSIGN ha anche il suo strumento di studio originale Pesavento Patterns che può essere visto nel prossimo link.

Se qualcuno può importare da ENSIGN a MetaTrader 4 sarebbe fantastico.

http://www.ensignsoftware.com/help/pesavento.htm

 

ciao di nuovo

ho trovato il codice per il pattern gartley 222 su due piattaforme.

se qualcuno può tradurlo su MetaTrade 4 sarà superbo!

Ecco i codici:

1.Codice TradeStation per il pattern Gartley 222 trovato in "Trading the Gartley 222" di Aaron Behle e Mark Conway, pag. 38:

Ingressi:

Lunghezza(100),

Forza(8),

Tolleranza(0.10),

BullColor(Blue),

BearColor(Rosso);

Variabili:

F1(0.618),

F2(0.786),

F3(1.27),

F4(1.618),

P1Bar(-1),

P2Bar(-1),

T1Bar(-1),

T2Bar(-1),

P1(0.0),

P2(0.0),

T1(0.0),

T2(0.0),

PTValid(False),

HLValid(Falso),

InZone(Falso),

GD(0.0),

XA(0.0),

AB(0.0),

BC(0.0),

CD(0.0),

AD(0.0),

C1(Falso),

C2(Falso),

C3(Falso),

C4(Falso),

ABdXA(0.0),

BCdAB(0.0),

CDdBC(0.0),

ADdXA(0.0),

TL1(-1),

TL2(-1),

TL3(-1),

TL4(-1),

TL5(-1),

TL6(-1);

P1Bar = SwingHighBar(1, Alto, Forza, Lunghezza);

P2Bar = SwingHighBar(2, Alto, Forza, Lunghezza);

T1Bar = SwingLowBar(1, Low, Strength, Length);

T2Bar = SwingLowBar(2, Low, Strength, Length);

Se P1Bar -1 e

P2Bar -1 e

T1Bar -1 e

T2Bar -1 Allora inizia

{Test per un 222 rialzista}

{Ritorno X è T2}

T2 = Basso[T2Bar];

{Peak A è P2}

P2 = Alto[P2Bar];

{Passo B è T1}

T1 = Basso[T1Bar];

{Peak C è P1}

P1 = Alto[P1Bar];

{D è il punto di acquisto}

GD = Basso;

PTValid = P1Bar < T1Bar e T1Bar < P2Bar e P2Bar < T2Bar;

HLValid = P1 T2 e P1 > T1;

InZone = GD T2 e P2 >= Highest(High, T2Bar);

Se PTValid e HLValid e InZone allora inizia

XA = P2 - T2;

AB = P2 - T1;

BC = P1 - T1;

CD = P1 - GD;

AD = P2 - GD;

ABdXA = AB / XA; {AB dovrebbe essere il 61,8% di XA}

C1 = ABdXA > F1 - Tolleranza e ABdXA < F1 + Tolleranza;

BCdAB = BC / AB; {BC dovrebbe essere il 61,8-78,6% di AB}

C2 = BCdAB > F1 - Tolleranza e BCdAB < F2 + Tolleranza;

CDdBC = CD / BC; {CD dovrebbe essere 127-161,8% di BC}

C3 = CDdBC > F3 - Tolleranza e CDdBC < F4 + Tolleranza;

ADdXA = AD / XA; {AD dovrebbe essere il 78,6% di XA}

C4 = ADdXA > F2 - Tolleranza e ADdXA < F2 + Tolleranza;

Se C1 e C2 e C3 e C4 allora inizia

TL1 = TL_New(Data[T2Bar], Ora[T2Bar], T2, Data[P2Bar], Ora[P2Bar], P2);

Se TL1 >= 0 Allora inizia

TL_SetColor(TL1, BullColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

Fine;

TL2 = TL_New(Data[P2Bar], Ora[P2Bar], P2, Data[T1Bar], Ora[T1Bar], T1);

Se TL2 >= 0 Allora inizia

TL_SetColor(TL2, BullColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

Fine;

TL3 = TL_New(Data[T1Bar], Ora[T1Bar], T1, Data[P1Bar], Ora[P1Bar], P1);

Se TL3 >= 0 Allora inizia

TL_SetColor(TL3, BullColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

Fine;

TL4 = TL_New(Data[P1Bar], Ora[P1Bar], P1, Data, Ora, GD);

Se TL4 >= 0 Allora inizia

TL_SetColor(TL4, BullColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

Fine;

TL5 = TL_New(Data[T1Bar], Ora[T1Bar], T1, Data, Ora, GD);

Se TL5 >= 0 Allora inizia

TL_SetColor(TL5, BullColor);

TL_SetStyle(TL5, Tool_Dotted);

Fine;

TL6 = TL_New(Data[T2Bar], Ora[T2Bar], T2, Data, Ora, GD);

Se TL6 >= 0 Allora inizia

TL_SetColor(TL6, BullColor);

TL_SetStyle(TL6, Tool_Dotted);

Fine;

Fine;

Fine;

{Test per un orso 222}

{Peak X è P2}

{Trough A è T2}

{Peak B è P1}

{Trough C è T1}

{GD è il punto corto}

GD = Alto;

PTValid = T1Bar < P1Bar e P1Bar < T2Bar e T2Bar < P2Bar;

HLValid = T1 > T2 e P1 < P2 e T1 < P1;

InZone = GD > P1 e GD < P2 e T2 <= Lowest(Low, P2Bar);

Se PTValid e HLValid e InZone allora inizia

XA = P2 - T2;

AB = P1 - T2;

BC = P1 - T1;

CD = GD - T1;

AD = GD - T2;

ABdXA = AB / XA; {AB dovrebbe essere il 61,8% di XA}

C1 = ABdXA > F1 - Tolleranza e ABdXA < F1 + Tolleranza;

BCdAB = BC / AB; {BC dovrebbe essere il 61,8-78,6% di AB}

C2 = BCdAB > F1 - Tolleranza e BCdAB < F2 + Tolleranza;

CDdBC = CD / BC; {CD dovrebbe essere 127-161,8% di BC}

C3 = CDdBC > F3 - Tolleranza e CDdBC < F4 + Tolleranza;

ADdXA = AD / XA; {AD dovrebbe essere il 78,6% di XA}

C4 = ADdXA > F2 - Tolleranza e ADdXA < F2 + Tolleranza;

Se C1 e C2 e C3 e C4 allora inizia

TL1 = TL_New(Data[P2Bar], Ora[P2Bar], P2, Data[T2Bar], Ora[T2Bar], T2);

Se TL1 >= 0 Allora inizia

TL_SetColor(TL1, BearColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

Fine;

TL2 = TL_New(Data[T2Bar], Ora[T2Bar], T2, Data[P1Bar], Ora[P1Bar], P1);

Se TL2 >= 0 Allora inizia

TL_SetColor(TL2, BearColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

Fine;

TL3 = TL_New(Data[P1Bar], Ora[P1Bar], P1, Data[T1Bar], Ora[T1Bar], T1);

Se TL3 >= 0 Allora inizia

TL_SetColor(TL3, BearColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

Fine;

TL4 = TL_New(Data[T1Bar], Ora[T1Bar], T1, Data, Ora, GD);

Se TL4 >= 0 Allora inizia

TL_SetColor(TL4, BearColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

Fine;

TL5 = TL_New(Data[P1Bar], Ora[P1Bar], P1, Data, Ora, GD);

Se TL5 >= 0 Allora inizia

TL_SetColor(TL5, BearColor);

TL_SetStyle(TL5, Tool_Dotted);

Fine;

TL6 = TL_New(Data[P2Bar], Ora[P2Bar], P2, Data, Ora, GD);

Se TL6 >= 0 Allora inizia

TL_SetColor(TL6, BearColor);

TL_SetStyle(TL6, Tool_Dotted);

Fine;

Fine;

Fine;

Fine;

2.Wealth-Lab codice:

procedura Gartley222

(

VPFactor: float;

Tolleranza: float;

Lookback: intero;

HoldBars: intero;

VolMin: intero

);

inizio

var ATRValue, VP, Reversal: float;

var F1, F2, F3, F4, P1, P2, T1, T2: float;

var Bar, P1Bar, P2Bar, T1Bar, T2Bar, p: intero;

var XA, AB, BC, CD, AD, D, XD, DT, ABdXA, BCdAB, CDdBC, ADdXA: float;

var PTValid, HLValid, InZone, C1, C2, C3, C4: booleano;

var BT, BS, ST, SS: float;

{Costanti di Fibonacci}

F1 := 0.618;

F2 := 0.786;

F3 := 1.27;

F4 := 1.618;

InstallareTimeBasedExit(HoldBars);

per Bar := Lookback a BarCount() - 1 fare

iniziare

ApplyAutoStops(Bar);

ATRValue := ATR(Bar, Lookback);

SetShareSize( 1000 * Int( 10 / ATRValue ) );

VP := 100 * ATRValue / PriceClose(Bar);

{Trova i picchi e le depressioni}

Inversione := Int(VPFactor * VP);

P1 := Peak(Bar, #High, F1 * Reversal);

P1Bar := PeakBar(Bar, #High, F1 * Reversal);

P2 := Peak(P1Bar, #High, Reversal);

P2Bar := PeakBar(P1Bar, #High, Reversal);

T1 := Trough(Bar, #Low, F1 * Reversal);

T1Bar := TroughBar(Bar, #Low, F1 * Reversal);

T2 := Trough(T1Bar, #Low, Reversal);

T2Bar := TroughBar(T1Bar, #Low, Reversal);

{Test per un 222 rialzista}

{Trough X è T2}

{Peak A è P2}

{Grave B è T1}

{Peak C è P1}

{D è la zona di acquisto}

D := PriceLow(Bar);

PTValid := (P1Bar > T1Bar) e (T1Bar > P2Bar) e (P2Bar > T2Bar);

HLValid := (P1 T2) e (P1 > T1);

InZone := (D T2);

se (MarketPosition = 0) e

(SMA(Bar, #Volume, Lookback) >= VolMin) e

(PTValid) e (HLValid) e (InZone) allora

iniziare

XA := P2 - T2;

AB := P2 - T1;

BC := P1 - T1;

XD := P2 - (F2 * XA);

CD := P1 - XD;

AD := P2 - XD;

ABdXA := AB / XA; {AB dovrebbe essere il 61,8% di XA}

C1 := (ABdXA > F1 - Tolleranza) e (ABdXA < F1 + Tolleranza);

BCdAB := BC / AB; {BC dovrebbe essere 61,8-78,6% di AB}

C2 := (BCdAB > F1 - Tolleranza) e (BCdAB < F2 + Tolleranza);

CDdBC := CD / BC; {CD dovrebbe essere 127-161,8% di BC}

C3 := (CDdBC > F3 - Tolleranza) e (CDdBC < F4 + Tolleranza);

ADdXA := AD / XA; {AD dovrebbe essere il 78,6% di XA}

C4 := (ADdXA > F2 - Tolleranza) e (ADdXA < F2 + Tolleranza);

se C1 e C2 e C3 e C4 allora

iniziare

DrawLine(P2Bar, P2, T2Bar, T2, 0, #Blue, #Solid);

DrawLine(T1Bar, T1, P2Bar, P2, 0, #Blue, #Solid);

DrawLine(P1Bar, P1, T1Bar, T1, 0, #Blue, #Solid);

DrawLine(Bar, D, P1Bar, P1, 0, #Blue, #Solid);

DrawLine(Bar, D, T1Bar, T1, 0, #Blue, #Dotted);

DrawLine(Bar, D, T2Bar, T2, 0, #Blue, #Dotted);

AnnotateBar('B', Bar, True, #Blue, 10);

BuyAtLimit(Bar, XD, 'G222 LE');

DT := F1 * CD;

BT := XD + DT;

BS := T2;

fine;

fine;

{Test per un orso 222}

{Peak X è P2}

{Passo A è T2}

{Peak B è P1}

{Trough C è T1}

{D è la zona short}

D := PriceHigh(Bar);

PTValid := (T1Bar > P1Bar) e (P1Bar > T2Bar) e (T2Bar > P2Bar);

HLValid := (T1 > T2) e (P1 < P2) e (T1 < P1);

InZone := (D > P1) e (D < P2);

se (MarketPosition = 0) e

(PriceClose( Bar ) >= 5) e

(SMA(Bar, #Volume, Lookback) >= VolMin) e

(PTValid) e (HLValid) e (InZone) allora

iniziare

XA := P2 - T2;

AB := P1 - T2;

BC := P1 - T1;

XD := T2 + (F2 * XA);

CD := XD - T1;

AD := XD - T2;

ABdXA := AB / XA; {AB dovrebbe essere il 61,8% di XA}

C1 := (ABdXA > F1 - Tolleranza) e (ABdXA < F1 + Tolleranza);

BCdAB := BC / AB; {BC dovrebbe essere 61,8-78,6% di AB}

C2 := (BCdAB > F1 - Tolleranza) e (BCdAB < F2 + Tolleranza);

CDdBC := CD / BC; {CD dovrebbe essere 127-161,8% di BC}

C3 := (CDdBC > F3 - Tolleranza) e (CDdBC < F4 + Tolleranza);

ADdXA := AD / XA; {AD dovrebbe essere il 78,6% di XA}

C4 := (ADdXA > F2 - Tolleranza) e (ADdXA < F2 + Tolleranza);

se C1 e C2 e C3 e C4 allora

iniziare

DrawLine(T2Bar, T2, P2Bar, P2, 0, #Red, #Solid);

DrawLine(P1Bar, P1, T2Bar, T2, 0, #Red, #Solid);

DrawLine(T1Bar, T1, P1Bar, P1, 0, #Red, #Solid);

DrawLine(Bar, D, T1Bar, T1, 0, #Red, #Solid);

DrawLine(Bar, D, P1Bar, P1, 0, #Red, #Dotted);

DrawLine(Bar, D, P2Bar, P2, 0, #Red, #Dotted);

AnnotateBar('S', Bar, False, #Red, 10);

ShortAtLimit(Bar, XD, 'G222 SE');

DT := F1 * CD;

ST := XD - DT;

SS := P2;

fine;

fine;

se LastPositionActive allora

iniziare

se MarketPosition = 1 allora inizia

SellAtLimit(Bar+1, BT, #All, 'G222 LX+');

SellAtStop(Bar+1, BS, #All, 'G222 LX-');

fine;

se MarketPosition = -1 allora inizia

CoverAtLimit(Bar+1, ST, #All, 'G222 LX+');

CoverAtStop(Bar+1, SS, #All, 'G222 LX-');

fine;

fine;

fine;

end;

Gartley222(2.0, 0.1, 20, 7, 2000000);

 

Cosa sono SMCMA e WCMA?

Qualcuno sa qualcosa su queste 2 cose MA e dove ottenerle e usarle per Meta Trader 4

1. SMCMA

2. WCMA

L'unica cosa che posso sapere è che questi sono alcuni tipi di MA

(Moving Averages) ma dove trovarli e come usarli?

ciao

Zero_Forex

 

Usare altre coppie di valute in un EA?

Qualcuno sa come fare in modo che un Expert Advisor controlli i grafici di altre coppie di valute per aiutare a decidere se si vuole fare un acquisto o una vendita? Per esempio, come potrei fare in modo che un EA guardi il usd-chf come parte dei criteri per decidere se comprare o vendere sul gbp-chf? Ho un EA che per ora mi piace, ma penso che potrebbe essere migliore se potessi far scrivere nel programma anche il controllo di altre coppie correlate. Codersguru, o chiunque altro possa aiutarmi, per favore fatemelo sapere.

Grazie!

 
codersguru:
Ciao gente,

Ho molti messaggi privati che mi chiedono aiuto per alcuni pezzi di codice.

Qui potete postare le vostre domande relative a MQL4, e farò del mio meglio per rispondere.

Ciao Coder.

È possibile che un allarme suoni solo una volta per ogni barra di 5 minuti?

È possibile che un allarme suoni solo una volta quando la condizione è soddisfatta?

Poi si spegne.

Poi all'apertura della prossima barra per aggiornare l'indicatore pronto a suonare di nuovo.

Poi spegnere ancora una volta fino a quando la condizione di 0.0005 è di nuovo soddisfatta.

Poi riaccendi e così via......

L'indicatore qui sotto può suonare molti avvisi per barra quando viene attivato.

Vedi sotto.

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

//| Juice.mq4 ||

//| Perky_z |

//| http://fxovereasy.atspace.com/index ||

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

#proprietà copyright "perky"

#proprietà link "http://fxovereasy.atspace.com/index"

//---- impostazioni dell'indicatore

#proprietà indicator_separate_window

#proprietà indicator_buffers 2

#proprietà indicator_color1 LimeGreen

#property indicator_color2 FireBrick

//---- parametri dell'indicatore

extern bool DoAlerts = false;

extern int AlertFromPips = 5;

extern int Periyod=7;

extern double Level=5;

extern bool JuiceLevelsVisible = true;

extern int JuiceStartPips = 5;

extern int JuiceStepPips = 5;

extern int JuiceLevelsNumber = 4;

extern color JuiceLevelColor = Silver;

//---- buffer dell'indicatore

double OsMAUpBuffer[]

doppio OsMADownBuffer[]

doppio OsMAValue;

double currentJuiceLevel;

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

//|Funzione di inizializzazione dell'indicatore personalizzata

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

int init()

{

//---- 2 buffer aggiuntivi sono utilizzati per il conteggio.

IndicatorBuffers(2);

//---- impostazioni di disegno

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);

SetIndexDrawBegin(0,Level);

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

//---- mappatura di 2 buffer di indicatori

if(!SetIndexBuffer(0,OsMAUpBuffer) &&

!SetIndexBuffer(1,OsMADownBuffer))

Print("impossibile impostare i buffer degli indicatori!)

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

IndicatorShortName("Juice("+Periyod+", "+Level+")");

//---- inizializzazione fatta

return(0);

}

int SetLevelLines()

{

stringa levelLabel;

if(JuiceLevelsVisible)

{

SetLevelStyle(STYLE_DASH,1,JuiceLevelColor);

for(int i=1; i<= JuiceLevelsNumber; i++)

{

currentJuiceLevel = (JuiceStartPips + (i-1)*JuiceStepPips)*Point;

SetLevelValue(i,currentJuiceLevel);

levelLabel = "Livello "+i+": "+currentJuiceLevel";

SetIndexLabel(i,levelLabel);

}

}else

{

for(i=1; i<= JuiceLevelsNumber; i++)

{

SetLevelValue(i,0.0);

}

}

}

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

//| Media mobile dell'oscillatore

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

int start()

{

//if ( Period != 15) Alert ("Juice Is Recommended for 15 Min Chart only!!!");

int limit,i;

int counted_bars=IndicatorCounted();

doppio Juice;

bool TurnOnAlert = true;

//---- controllare eventuali errori

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

//---- l'ultima barra contata sarà ricontata

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

Livello = Livello*Punto;

if (Periodo()==5 ) Level=Level/2;

SetLevelLines();

//---- ciclo principale

for(i=0; i<limite; i++)

{

Juice=iStdDev (NULL,0,Periyod,MODE_EMA,0,PRICE_CLOSE,i)-Level;

if(Juice>0){

OsMAUpBuffer=Juice;

OsMADownBuffer=0;

}else if(Juice<0){

OsMADownBuffer=Juice;

OsMAUpBuffer=0;

}else{

OsMAUpBuffer=0;

OsMADownBuffer=0;

}

}

if (DoAlerts)

{

if (Juice > AlertFromPips*Point && Period() == 5)

{

if (TurnOnAlert)

{

Alert("Succo superiore a ",AlertFromPips*Point," per ", Symbol());

PlaySound("Tick.wav");

TurnOnAlert = false;

}

}

else

{

TurnOnAlert = true;

}

}

//---- fatto

return(0);

}

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

Il tuo aiuto sarebbe molto apprezzato.

Molte grazie.

Leigh.

Motivazione: