Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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
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.
anexei dois pdf.a essência do padrão e as regras são mencionadas
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!
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.