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
Estou procurando uma solução para aplicar algoritmos de indicadores na matriz de preços.
na MQL4 alguns indicadores têm esta função, tais como: iCCIOnArray, iBandsOnArray...
Mas indicadores como o ADX não têm essa função.
Alguém tem idéia de como eu posso aplicar o cálculo do indicador sobre a matriz pré-definida (não do servidor de cotações)?[lang=pl]Se você souber como determinado indicador é chamado, você pode fazer tudo:)
Por favor, explique com mais precisão o que exatamente você precisa
Abraço,
Grzesiek[/lang]
...
ADX usa o que é chamadoatrue range(Max(High,PreviousClose)-Min(Low,PreviousClose) e essa é a base do cálculo ADX
Devido aos valores altos, baixos e fechados necessários, ele não pode ser aplicado a uma matriz, Em geral, se você vê que há um preço necessário, então o indicador deve ser aplicável a uma matriz. Se não houver nenhum parâmetro de preço, então quase certo que não pode ser aplicado a um array (assumindo que o indicador, em primeiro lugar, esteja operando sobre preços)
[lang=pl]Se você souber como determinado indicador é chamado, você pode fazer tudo:)
Por favor, explique com mais precisão o que exatamente você precisa
Abraço,
Grzesiek[/lang]Obrigado Grzesiek.
Eu estava procurando por uma boa solução. eventualmente, a melhor resolução, é incorporar o código indi no código de especialista.
De qualquer forma, a menos que alguém me mostre outro caminho, eu o aplicarei desta forma.
Você tem arquivo fonte? O arquivo *.ex4 é compilado, portanto Você não tem acesso ao código-fonte.
Atenciosamente
solicitação
estrela821
Experimente este aqui
________________________
Algumas explicações : Eu não usei as que você postou, mas as fiz (indicador anexado em seu post tem meu nome, mas essa versão não é feita por mim, mas essa não é a única razão pela qual eu não usei esse indicador). ...
com respeito a
Mladenhelo Mladen
é possível adaptar a stc EA para um HMA cor nrp-indi e High-low trend indi?
escrevi um pseudo-código (* não pode codificar de jeito nenhum... *):
************************************************************
externos:
Lote#
período para o HMA
???.
.....................
repetir:
obter a cor zig-zag-dot (barra fechada);
obtenha a cor da tendência HMA (barra de fechamento);
----------------------------------------------------------------
// venda aberta
se último zig-zag-dot = azul && HMA trend = vermelho -> abrir bilhete de venda (apenas uma vez por cor de tendência HMA)
se não pudesse abrir a venda-> tentar novamente 3 vezes
se não houver alerta de sucesso e e-mail: não foi possível abrir a venda por símbolo,TF, tempo;
senão
// compra aberta
se último zig-zag-dot =red && HMA trend = blue -> open BUY ticket (apenas uma vez por cor HMA trend)
se não pudesse abrir a compra-> tente novamente 3 vezes
se não houver alerta de sucesso & e-mail: não foi possível abrir a compra por símbolo,TF, tempo;
-------------------------------------------------------------------
se a tendência HMA ( vermelho ) mudar para azul -> fechar venda, aguarde 10 seg. ;
se a tendência HMA ( azul ) mudar para vermelho -> fechar compra, aguarde 10 seg..;
-------------------------------------------------------------------
fechar todas as negociações na sexta-feira às 12:00h (GMT).
****************************************************************
sei que haverá algumas perdas, mas isso não me incomoda...
eu não quero nenhum SL ...
cumprimentos
Cado
hma_color_nrp.ex4high_-_low_trend.mq4
ATR + MA & Largura de banda + MA
[Olá, preciso de um indicador personalizado que, em uma janela separada, escreva atr e a média móvel calcule sobre ele e a mesma coisa para a largura de banda. Eu fiz o código em mql4 e usei o IMAONARRAY para calcular o MA, mas o indicador não funciona...alguém pode me ajudar????
Este é um dos códigos teo...
Obrigado ...
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int AtrPeriod=14;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
double MaBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 1 additional buffer used for counting.
IndicatorBuffers(2);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,AtrBuffer);
SetIndexBuffer(1,TempBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,MaBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="ATR("+AtrPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,AtrPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Average True Range |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=AtrPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high=High;
double low =Low;
if(i==Bars-1) TempBuffer=high-low;
else
{
double prevclose=Close;
TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);
}
i--;
}
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
for(i=0; i<limit; i++)
AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);
//----
double MyArray[];
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
ArrayResize( MyArray, limit);
ArraySetAsSeries(MyArray,true);
for(i=0; i<limit; i++)
{
MyArray = AtrBuffer;
}
for(i=0; i<limit; i++)
{
MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);
}
//----
return(0);
}
//+------------------------------------------------------------------+[/lang]
...
Experimente agora
[Olá, preciso de um indicador personalizado que, em uma janela separada, escreva atr e a média móvel calcule sobre ele e a mesma coisa para a largura de banda. Eu fiz o código em mql4 e usei o IMAONARRAY para calcular o MA, mas o indicador não funciona...alguém pode me ajudar????
Este é um dos códigos teo...
Obrigado
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int AtrPeriod=14;
//---- buffers
double AtrBuffer[];
double TempBuffer[];
double MaBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 1 additional buffer used for counting.
IndicatorBuffers(2);
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,AtrBuffer);
SetIndexBuffer(1,TempBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,MaBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="ATR("+AtrPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,AtrPeriod);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Average True Range |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=AtrPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=AtrPeriod;i++) AtrBuffer=0.0;
//----
i=Bars-counted_bars-1;
while(i>=0)
{
double high=High;
double low =Low;
if(i==Bars-1) TempBuffer=high-low;
else
{
double prevclose=Close;
TempBuffer=MathMax(high,prevclose)-MathMin(low,prevclose);
}
i--;
}
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
for(i=0; i<limit; i++)
AtrBuffer=iMAOnArray(TempBuffer,Bars,AtrPeriod,0,MODE_SMA,i);
//----
double MyArray[];
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
ArrayResize( MyArray, limit);
ArraySetAsSeries(MyArray,true);
for(i=0; i<limit; i++)
{
MyArray = AtrBuffer;
}
for(i=0; i<limit; i++)
{
MaBuffer = iMAOnArray(MyArray,limit,10,0,MODE_SMA,i);
}
//----
return(0);
}
//+------------------------------------------------------------------+[Olá, alguém pode me ajudar a construir esta fórmula em código metatrader?
(isto está na fórmula metastock:)
Q1:=Input("PERIOD",1,1000,3);
Q2:=Input("PERIOD",0.001,100,1);
Q3:=Q2/100;
Q4:=Mov( Típico(),Q1,E) ;
Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV));
Q5
[/lang]
...
Interessante
A única coisa que você precisa ajustar para diferentes períodos de tempo é a porcentagem. 1% parece ser uma boa escolha para um gráfico de 4 horas, mas aqui está um exemplo de um gráfico de 15 minutos com 0,5% em vez do padrão de 1%.
PS: Eu não tenho idéia de qual é o nome original, assim chamado como está
cumprimentos
mladen
[Olá, alguém pode me ajudar a construir esta fórmula em código metatrader?
(isto está na fórmula metastock:)
Q1:=Input("PERIOD",1,1000,3);
Q2:=Input("PERIOD",0.001,100,1);
Q3:=Q2/100;
Q4:=Mov( Típico(),Q1,E) ;
Q5:=If((Q4*(1-Q3))>PREV,Q4*(1-Q3),If((Q4*(1+Q3))<PREV,Q4*(1+Q3),PREV));
Q5
[/lang]Interessante
A única coisa que você precisa ajustar para diferentes períodos de tempo é a porcentagem. 1% parece ser uma boa escolha para um gráfico de 4 horas, mas aqui está um exemplo de um gráfico de 15 minutos com 0,5% em vez do padrão de 1%.
PS: Eu não tenho idéia de qual é o nome original, assim chamado como está
cumprimentos
mladen[lang=tr]thank you mladen i will try it , i think it will work [/lang]