Pergunte! - página 7

 

Olá, anexei um indicador em mq4 que alerta sempre que cci<-150

Ele alerta em uma base de tique por tique; qualquer pessoa pode modificá-lo para que ele só alerte ao fechar a vela?

Neste caso eu só gostaria de ser alertado quando cci está < -150 no final de uma vela de 5m.

Obrigado de antemão

Arquivos anexados:
 

Ok, segunda pergunta, eu acho que esta é fácil:

Estou construindo um indicador do usuário para me alertar quando o preço fecha um MA

Estou usando o iCustom para importar o indicador MA

e depois não sei como usar o preço fechado; tentei FECHAR e PREÇAR_PREÇO, mas sem resultados:

se (FECHAR? >ma1)

adxvalue= -1;

if (PRICE_CLOSE?>ma1)

adxvalue= -1;

Além disso, quero que o alerta soe apenas no final de uma barra de 5m e não funcione com base no tick by tick: o que mais devo mudar (esta pergunta é a do meu posto anterior)

Obrigado

 

Olá Codersguru,

Você poderia me ajudar a codificar um alerta em Osma Color para que ele alerte quando as cores mudarem.

Obrigado

Duncan

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

//| OsMA_color.mq4 |

//| Rafael |

//| marynarz15@wp.pl |

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

#propriedade copyright "Rafael

#link da propriedade "marynarz15@wp.pl

//---- definições de indicadores

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 2

#indicador de propriedade_color1 Lime

#indicador de propriedade_color2 Vermelho

//---- parâmetros indicadores

externo int FastEMA=12;

externo int SlowEMA=26;

extern int SignalSMA=9;

//---- buffers indicadores

duplo ind_buffer1a[];

duplo ind_buffer1b[];

duplo ind_buffer2[];

duplo ind_buffer3[];

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

//| Função de inicialização do indicador personalizado |

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

int init()

{

//---- 2 buffers adicionais são usados para a contagem.

IndicatorBuffers(4);

//---- definições de desenho

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 indicadores de mapeamento de buffers

if(!SetIndexBuffer(0,ind_buffer1a) &&

SetIndexBuffer(1,ind_buffer1b) &&

SetIndexBuffer(2,ind_buffer2) &&

SetIndexBuffer(3,ind_buffer3))

Imprimir("não pode definir buffers indicadores!");

//---- nome para DataWindow e subwindow do indicador

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

//---- inicialização feita

retorno(0);

}

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

//| Média Móvel do Oscilador |

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

int start()

{

limite int;

int counted_bars=IndicatorCounted();

//---- verificação de possíveis erros

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

//---- última barra contada será contada novamente

if(counted_bars>0) counted_bars--;

limite=barras_contadas_à_barras;

//---- macd contado no buffer adicional de 1-st

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);

//---- linha de sinal contada no buffer adicional 2-nd

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

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

//---- laço principal

valor duplo=0;

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

{

ind_buffer1a=0,0;

ind_buffer1b=0,0;

value=ind_buffer2-ind_buffer3;

if (valor>0) ind_buffer1a=valor;

if (valor<0) ind_buffer1b=valor;

}

//---- feito

retorno(0);

}

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

 

Hi

tenho um indicatore que é capaz de reconhecer o padrão borboleta mas está escrito para MT3 pode qualquer um me fazer um favor e convertê-lo para MQL4.

Arquivos anexados:
butterfly.mql  3 kb
 

anexei dois pdf.a essência do padrão e as regras são mencionadas

Arquivos anexados:
attachment2.pdf  141 kb
attachment1.pdf  189 kb
 

oi

Olá, pessoal,

todos vocês podem saber o nome deste autor, mas nunca souberam que

seu método codificado em software.

Pesavento se irritou entre os demais com estes livros maravilhosos:

* Razões de Fibonacci com Reconhecimento de Padrões

* Padrões rentáveis para a negociação de ações

* Astro-Cycles : Ponto de Vista dos Comerciantes

A propósito, sei que o software ENSIGN também tem sua ferramenta original de estudo de Padrões Pesavento, que pode ser vista no link seguinte.

Se alguém puder importá-lo do ENSIGN para o MetaTrader 4, será incrível.

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

 

oi novamente

encontrei o código para o padrão gartley 222 em duas plataformas.

Se alguém puder traduzi-lo para o MetaTrade 4, ele será soberbo!

aqui estão os códigos :

1.TradeStation código para o padrão Gartley 222 encontrado em "Trading the Gartley 222" de Aaron Behle e Mark Conway, p. 38:

Entradas:

Comprimento(100),

Força(8),

Tolerância(0,10),

BullColor(Azul),

BearColor(Vermelho);

Variáveis:

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(Falso),

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, High, Strength, Length);

P2Bar = SwingHighBar(2, Alta, Força, Comprimento);

T1Bar = SwingLowBar(1, Baixo, Força, Comprimento);

T2Bar = SwingLowBar(2, Baixo, Força, Comprimento);

Se P1Bar -1 e

P2Bar -1 e

T1Bar -1 e

T2Bar -1 Depois começar

{Teste para uma alta 222}

{Trough X é T2}

T2 = Baixo[T2Bar];

{Peak A é P2}

P2 = Alto[P2Bar];

{Trough B é T1}

T1 = Baixo[T1Bar];

{Peak C é P1}

P1 = Alto[P1Bar];

{D é o ponto de compra}

GD = Baixo;

PTVálido = P1Bar < T1Bar e T1Bar < P2Bar e P2Bar < T2Bar;

HLVálido = P1 T2 e P1 > T1;

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

Se PTVálido e HLVálido e InZone Então Comece

XA = P2 - T2;

AB = P2 - T1;

BC = P1 - T1;

CD = P1 - GD;

AD = P2 - GD;

ABdXA = AB / XA; {AB deve ser 61,8% de XA}

C1 = ABdXA > F1 - Tolerância e ABdXA < F1 + Tolerância;

BCdAB = BC / AB; {BC deve ser 61,8-78,6% de AB}

C2 = BCdAB > F1 - Tolerância e BCdAB < F2 + Tolerância;

CDdBC = CD / BC; {CD deve ser 127-161,8% de BC}

C3 = CDdBC > F3 - Tolerância e CDdBC < F4 + Tolerância;

ADdXA = AD / XA; {AD deve ser 78,6% de XA}

C4 = ADdXA > F2 - Tolerância e ADdXA < F2 + Tolerância;

Se C1 e C2 e C3 e C4 então começa

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

Se TL1 >= 0 Então Comece

TL_SetColor(TL1, BullColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

TL_SetSize(TL1, 2); Fim;

TL2 = TL_Novo(Data[P2Bar], Hora[P2Bar], P2, Data[T1Bar], Hora[T1Bar], T1);

Se TL2 >= 0 Então começa

TL_SetColor(TL2, BullColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

TL_SetSize(TL2, 2); End;

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

Se TL3 >= 0 Então começa

TL_SetColor(TL3, BullColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

TL_SetSize(TL3, 2); End;

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

Se TL4 >= 0 Então começa

TL_SetColor(TL4, BullColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

TL_SetSize(TL4, 2); End;

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

Se TL5 >= 0 Então começa

TL_SetColor(TL5, BullColor);

TL_SetStyle(TL5, Tool_Dotted);

Fim;

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

Se TL6 >= 0 Então começa

TL_SetColor(TL6, BullColor);

TL_SetStyle(TL6, Tool_Dotted);

Fim;

Fim;

Fim; Fim; Fim; Fim;

{Test for a bearish 222}

{Peak X é P2}

{Trough A é T2}

{Peak B é P1}

{Trough C é T1}

{GD é o ponto curto}

GD = Alto;

PTVálido = T1Bar < P1Bar e P1Bar < T2Bar e T2Bar < P2Bar;

HLVálido = T1 > T2 e P1 < P2 e T1 < P1;

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

Se PTVálido e HLVálido e InZone Então Comece

XA = P2 - T2;

AB = P1 - T2;

BC = P1 - T1;

CD = GD - T1;

AD = GD - T2;

ABdXA = AB / XA; {AB deve ser 61,8% de XA}

C1 = ABdXA > F1 - Tolerância e ABdXA < F1 + Tolerância;

BCdAB = BC / AB; {BC deve ser 61,8-78,6% de AB}

C2 = BCdAB > F1 - Tolerância e BCdAB < F2 + Tolerância;

CDdBC = CD / BC; {CD deve ser 127-161,8% de BC}

C3 = CDdBC > F3 - Tolerância e CDdBC < F4 + Tolerância;

ADdXA = AD / XA; {AD deve ser 78,6% de XA}

C4 = ADdXA > F2 - Tolerância e ADdXA < F2 + Tolerância;

Se C1 e C2 e C3 e C4 então começa

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

Se TL1 >= 0 Então comece

TL_SetColor(TL1, BearColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

TL_SetSize(TL1, 2); Fim;

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

Se TL2 >= 0 Então começa

TL_SetColor(TL2, BearColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

TL_SetSize(TL2, 2); Fim;

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

Se TL3 >= 0 Então começa

TL_SetColor(TL3, BearColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

TL_SetSize(TL3, 2); Fim;

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

Se TL4 >= 0 Então começa

TL_SetColor(TL4, BearColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

TL_SetSize(TL4, 2); Fim;

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

Se TL5 >= 0 Então começa

TL_SetColor(TL5, BearColor);

TL_SetStyle(TL5, Tool_Dotted);

Fim;

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

Se TL6 >= 0 Então começa

TL_SetColor(TL6, BearColor);

TL_SetStyle(TL6, Tool_Dotted);

Fim;

Fim;

Fim; Fim; Fim;

Fim; Fim; Fim; Fim; Fim; Fim; Fim; Fim;

2.Wealth-Lab code:

procedimento Gartley222

(

VPFactor: flutuar;

Tolerância: flutuar;

Lookback: inteiro;

HoldBars: inteiro;

VolMin: inteiro

);

começar

var ATRValue, VP, Reversão: flutuar;

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

var Barra, P1Bar, P2Bar, T1Bar, T2Bar, p: inteiro;

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

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

var BT, BS, ST, SS: flutuador;

{Fibonacci Constants}

F1 := 0.618;

F2 := 0.786;

F3 := 1.27;

F4 := 1.618;

InstallTimeBasedExit(HoldBars);

para Bar := Lookback to BarCount() - 1 do

começar

AplicarAutoStops(Bar);

ATRValue := ATR(Bar, Lookback);

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

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

{Picos e calhas}

Reversão := Int(VPFactor * VP);

P1 := Pico(Barra, #Alto, F1 * Reversão);

P1Bar := PeakBar(Bar, #Alto, F1 * Reversão);

P2 := Pico(P1Bar, #Alto, F1 * Reversão);

P2Bar := PicoBar(P1Bar, #Alto, Reversão);

T1 := Calha(Barra, #Baixo, F1 * Reversão);

T1Bar := TroughBar(Bar, #Low, F1 * Reversão);

T2 := Trough(T1Bar, #Low, F1 * Estorno);

T2Bar := TroughBar(T1Bar, #Low, #Low, Reversão);

{Teste para uma alta 222}

{Trough X é T2}

{Peak A é P2}

{Trough B é T1}

{Peak C é P1}

{D é a zona de compra}

D := PriceLow(Bar);

PTVálido := (P1Bar > T1Bar) e (T1Bar > P2Bar) e (P2Bar > T2Bar);

HLVálido := (P1 T2) e (P1 > T1);

InZone := (D T2);

if (MarketPosition = 0) e

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

(PTValid) e (HLValid) e (InZone) então

começar

XA := P2 - T2;

AB := P2 - T1;

BC := P1 - T1;

XD := P2 - (F2 * XA);

CD := P1 - XD;

AD := P2 - XD;

ABdXA := AB / XA; {AB deve ser 61,8% de XA}

C1 := (ABdXA > F1 - Tolerância) e (ABdXA < F1 + Tolerância);

BCdAB := BC / AB; {BC deve ser 61,8-78,6% de AB}

C2 := (BCdAB > F1 - Tolerância) e (BCdAB < F2 + Tolerância);

CDdBC := CD / BC; {CD deve ser 127-161,8% de BC}

C3 := (CDdBC > F3 - Tolerância) e (CDdBC < F4 + Tolerância);

ADdXA := AD / XA; {AD deve ser 78,6% de XA}

C4 := (ADdXA > F2 - Tolerância) e (ADdXA < F2 + Tolerância);

se C1 e C2 e C3 e C4 então

começar

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

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

DrawLine(P1Bar, P1, T1Bar, T1, T1, 0, #Azul, #Sólido);

DrawLine(Barra, D, P1Bar, P1, 0, #Azul, #Sólido);

DrawLine(Barra, D, T1Bar, T1, 0, #Azul, #Dotted);

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

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

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

DT := F1 * CD;

BT := XD + DT;

BS := T2;

fim;

fim;

{teste para um 222} bearish

{Peak X é P2}

{Trough A é T2}

{Peak B é P1}

{Trough C é T1}

{D é a zona curta}

D := PriceHigh(Bar);

PTVálido := (T1Bar > P1Bar) e (P1Bar > T2Bar) e (T2Bar > P2Bar);

HLVálido := (T1 > T2) e (P1 < P2) e (T1 < P1);

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

if (MarketPosition = 0) e

(PriceClose( Bar ) >= 5) e

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

(PTValid) e (HLValid) e (InZone) então

começar

XA := P2 - T2;

AB := P1 - T2;

BC := P1 - T1;

XD := T2 + (F2 * XA);

CD := XD - T1;

AD := XD - T2;

ABdXA := AB / XA; {AB deve ser 61,8% de XA}

C1 := (ABdXA > F1 - Tolerância) e (ABdXA < F1 + Tolerância);

BCdAB := BC / AB; {BC deve ser 61,8-78,6% de AB}

C2 := (BCdAB > F1 - Tolerância) e (BCdAB < F2 + Tolerância);

CDdBC := CD / BC; {CD deve ser 127-161,8% de BC}

C3 := (CDdBC > F3 - Tolerância) e (CDdBC < F4 + Tolerância);

ADdXA := AD / XA; {AD deve ser 78,6% de XA}

C4 := (ADdXA > F2 - Tolerância) e (ADdXA < F2 + Tolerância);

se C1 e C2 e C3 e C4 então

começar

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

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

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

DrawLine(Barra, D, T1Bar, T1, 0, #Vermelho, #Sólido);

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

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

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

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

DT := F1 * CD;

ST := XD - DT;

SS := P2;

fim;

fim;

se LastPositionActive então

começar

se MarketPosition = 1 então comece

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

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

fim;

se MarketPosition = -1 então começa

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

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

fim;

fim;

fim;

fim;

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

 

O que é SMCMA e WCMA ???

Qualquer pessoa sabe alguma coisa sobre essas duas coisas MA e onde obtê-las e usá-las para Meta Trader 4

1. SMCMA

2. WCMA

A única coisa que eu posso saber é que estes são algum tipo de MA

( Médiasmóveis ), mas onde obtê-los e como utilizá-los ??

tchau

Zero_Forex

 

Usando outros pares de moedas em um EA?

Alguém sabe como fazer um Expert Advisor verificar outros gráficos de pares de moedas para ajudar a decidir se você quer fazer uma compra ou venda? Por exemplo, como eu poderia fazer um EA olhar para o usd-chf como parte do critério para decidir se eu quero comprar ou vender no gbp-chf? Eu tenho um EA que eu gosto até agora, mas eu acho que poderia ser melhor se eu também pudesse tê-lo escrito no programa para verificar outros pares relacionados. Codersguru, ou qualquer outra pessoa que possa ajudar, por favor, me avise.

Obrigado!

 
codersguru:
Olá, pessoal,

Tenho muitas mensagens particulares me pedindo ajuda com algumas peças de código.

Aqui você pode postar suas perguntas relacionadas à MQL4, e eu farei o meu melhor para respondê-las.

Olá Coder.

É possível ter um som de alerta apenas uma vez por barra de 5 minutos?

É possível que um alerta soe apenas uma vez quando a condição é atendida?

Então desligue.

Em seguida, na abertura da próxima barra para atualizar o indicador pronto para soar novamente.

Depois desligue novamente até que a condição de 0,0005 seja atendida novamente.

Em seguida, ligue novamente e assim por diante......

O indicador abaixo pode soar muitos alertas por barra quando acionado.

Veja abaixo.

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

//| Juice.mq4 |

//| Perky_z |

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

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

#propriedade "perky" dos direitos autorais

#link da propriedade "http://fxovereasy.atspace.com/index"

//---- definições de indicadores

#janela_indicadora de propriedade_separarate_window

#property indicator_buffers 2

#indicador de propriedade_color1 LimeGreen

#indicador de propriedade_color2 FireBrick

//---- parâmetros indicadores

DoAlerts externo = falso;

alerta externo intAlertaDePips = 5;

extern int Periyod=7;

extern double Level=5;

bool externoNíveis de sucoVisível = verdadeiro;

extern int JuiceStartPips = 5;

Exterior int JuiceStepPips = 5;

Exterior int JuiceLevelsNumber = 4;

cor externa JuiceLevelColor = prata;

//---- buffers indicadores

duplo OsMAUpBuffer[];

duplo OsMADownBuffer[];

duplo OsMAValue[]; duplo OsMAUpBuffer[]; duplo OsMAValue[];

dupla correnteJuiceLevel;

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

//| Função de inicialização do indicador personalizado |

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

int init()

{

//---- 2 buffers adicionais são usados para a contagem.

IndicatorBuffers(2);

//---- definições de desenho

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);

SetIndexDrawBegin(0,Nível);

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

//---- 2 mapeamento de buffers indicadores

if(!SetIndexBuffer(0,OsMAUpBuffer) &&

SetIndexBuffer(1,OsMADownBuffer))

Imprimir("não pode definir buffers indicadores!");

//---- nome para DataWindow e subwindow do indicador

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

//---- inicialização feita

retorno(0);

}

int SetLevelLines()

{

nível de cordaLabel;

if(JuiceLevelsVisible)

{

SetLevelStyle(STYLE_DASH,1,JuiceLevelColor);

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

{

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

SetLevelValue(i,currentJuiceLevel);

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

SetIndexLabel(i,levelLabel);

}

}else

{

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

{

SetLevelValue(i,0.0);

}

}

}

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

//| Média Móvel do Oscilador |

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

int start()

{

//if ( Período != 15) Alerta ("Recomenda-se o Suco somente para Tabela de 15 Minutos!")

limite int,i;

int counted_bars=IndicatorCounted();

sumo duplo;

bool TurnOnAlert = verdadeiro;

//---- verificar possíveis erros

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

//---- última barra contada será contada novamente

if(counted_bars>0) counted_bars--;

limite=barras_contadas_à_barras;

Nível = Nível*Ponto;

if (Período()==5 ) Nível=Nível/2;

SetLevelLines();

//---- laço principal

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

{

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

if(Suco>0){

OsMAUpBuffer=Juice;

OsMADownBuffer=0;

}else if(Juice<0){

OsMADownBuffer=Juice;

OsMAUpBuffer=0;

}else{

OsMAUpBuffer=0;

OsMADownBuffer=0;

}

}

se (DoAlerts)

{

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

{

se (TurnOnAlert)

{

Alerta("Suco acima ",AlertaDePips*Point", para ", Símbolo());

PlaySound("Tick.wav");

TurnOnAlert = falso;

}

}

senão

{

TurnOnAlert = verdadeiro;

}

}

//---- feito

retorno(0);

}

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

Sua ajuda seria muito apreciada.

Muito obrigado.

Leigh.

Razão: