![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
esta pobre alma precisa de sua ajuda
Ok. Eu acrescentei de volta a parte das condições de fechamento(anexada). Os erros que aparecem quando o original é compilado é o mesmo que o meu ajustado. Agora de volta às perguntas originais: consegui escrever o código de forma a preencher as condições que estabeleci quando comecei a postar meu pedido sobre isto. Que é comprado no RSI 6 Stoch 16.3.3 EMA 5 acima do nível ema50 acima de 70 e vendido quando
rsi 6 stoch16.3.3 ema5below ema50 nível abaixo de 30. também poderia interpretar as condições de fechamento para mim. o que fiz para corrigir o arquivo foi abrir os arquivos no meta editor e depois fazer com que a tela mostrasse de um lado um arquivo e outro arquivo , de forma azulejada, ao lado dele e apenas ia linha por linha para ver quais linhas estavam faltando ou diferentes. Eu não posso codificar, mas posso tentar decifrar o que alguém fez e por bom senso mudar uma coisa ou duas. você é uma estrela mileaden
Ok. Eu acrescentei de volta a parte das condições de fechamento(anexada). Os erros que aparecem quando o original é compilado é o mesmo que o meu ajustado. Agora de volta às perguntas originais: consegui escrever o código de forma a preencher as condições que estabeleci quando comecei a postar meu pedido sobre isto. O que é comprar no RSI 6 Stoch 16.3.3 EMA 5 acima do nível ema50 acima de 70 e vender quandorsi 6 stoch16.3.3 ema5below nível ema50 abaixo de 30. também poderia interpretar as condições de fechamento para mim. o que fiz para corrigir o arquivo foi abrir os arquivos no meta editor e depois fiz a tela mostrar um arquivo de um lado e outro arquivo, de forma azulejada, ao lado dele e simplesmente fui linha por linha para ver quais linhas estavam faltando ou diferentes. Eu não posso codificar, mas posso tentar decifrar o que alguém fez e por bom senso mudar uma coisa ou duas. você é uma estrela mileaden
doceiro752
Teste a EA. Esses são avisos de compilação, não erros. Independentemente dessas advertências, a EA deve funcionar
candyman752Teste o EA. Esses são avisos de compilação, não erros. Independentemente dessas advertências, o EA deve funcionar
presumo que seu silêncio ao confirmar é a confirmação de que consegui codificá-lo para fazer o seguinte:RSI 6 stoch 16-3-3 / 5EMA 50EMA.over comprado nível 70 oversold nível 30. Deve comprar quando 5ema se move acima de 50 ema e rsi e stoch estão acima de 70 e deve vender quando 5 ema está abaixo de 50ema e rsi e stoch estão abaixo de 30.
Olá madlen, deixe-me colocar meu pedido de outra forma
na EA original, as condições de compra ou venda eram
if(EMA5aEMA10&&RSI1>RSILevel&&&STOS<STOM&&&STOS<Overbought&&&STOM<Overbought)SBUY="true";
if(EMA5a>EMA10a&&&EMA5<EMA10&&&RSI1STOM&&&STOS>Vendido&&&STOM>Vendido)SSEL="true";
Eu então alterei o código da seguinte forma:
if(EMA5aEMA50&&RSI1>RSILevelb&&STOSOverbought&&&STOM>Overbought)SBUY="true";
if(EMA5a>EMA50a&&EMA5<EMA50&&RSI1STOM&&&STOS<Oversold&&&STOM<Oversold)SSEL="true";
RSI levelb=70 RSI levels=30 overbought=70 overbought=70 oversold=30.
A mudança que fiz no código corresponde às condições que declarei anteriormente. comprar quando 5ema rsi acima de 5ema rsi acima de 70 stochastic acima de 70 e vice-versa
presumo que seu silêncio ao confirmar é a confirmação de que consegui codificá-lo para fazer o seguinte:RSI 6 stoch 16-3-3 / 5EMA 50EMA.over comprado nível 70 oversold nível 30. Deve comprar quando 5ema se move acima de 50 ema e rsi e stoch estão acima de 70 e deve vender quando 5 ema está abaixo de 50ema e rsi e stoch estão abaixo de 30.
doceiro752
O que eu disse é que a lista que o compilador mostra após a compilação contém apenas avisos que não estão afetando a execução da EA (qualquer EA). Eu não verifiquei a lógica nem testei a EA. É por isso que eu disse que você tem que testá-la.
No que diz respeito ao código, ele vai funcionar. Cabe ao seu trabalho afiná-lo e ajustá-lo quando ele precisar de ajustes.
codificação feliz![](https://c.mql5.com/forextsd/smiles/smile.png)
Codificadores,
Estou tendo alguns problemas com o seguinte código.
Durante muito tempo, estou usando 2 indicadores como filtro. Eles mostram a tendência em um histograma na segunda janela.
Eu tentei criar um terceiro indicador que combina ambos os indicadores em um histograma.
Infelizmente não funciona, chamei ambos os indicadores com a função iCustom e uso o buffer correto. Mas o histograma fica em branco.
Para encontrar o problema, substituí as funções iCustom por uma função iMA. Naquele momento o código funcionou e o histograma mostrou as cores corretas
. Portanto, tem algo a ver com as funções do iCustom ou com as declarações do if.
Espero que alguém possa me ajudar.
Obrigado de antemão.
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_width1 3
#property indicator_width2 3
#property indicator_minimum 0
#property indicator_maximum 1
double Groen[];
double Rood[];
double zibo1g[],zibo1r[],zibo2g[],zibo2r[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0,Groen);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexLabel(0,"Groen");
SetIndexBuffer(1,Rood);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexLabel(1,"Rood");
IndicatorShortName("Zibo Combo");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
double dResult = 1;
for(int i=0; i<limit; i++){
zibo1g=iCustom(NULL,0,"zibo1",0,i); //green histogram
zibo1r=iCustom(NULL,0,"zibo1",1,i); //red histogram
zibo2g=iCustom(NULL,0,"zibo2",0,i); //green histogram
zibo2r=iCustom(NULL,0,"zibo2",1,i); //red histogram
if(zibo1g != EMPTY_VALUE && zibo2g != EMPTY_VALUE)
Groen = dResult;
else if(zibo1r != EMPTY_VALUE && zibo2r != EMPTY_VALUE)
Rood = dResult;
}
return(rates_total);
}m1-red.mq4
Olá a todos. Preciso de ajuda para fixar este indicador ... na prática preciso adicionar um (MA de 20 períodos) com a mesma função que o existente, e eliminar as caixas de cores, não utilizadas
Eu sempre peço perdão pelo meu inglês ruim![](https://c.mql5.com/forextsd/smiles/sad_smile.png)
Codificadores,
Estou tendo alguns problemas com o seguinte código.
Durante muito tempo, estou usando 2 indicadores como filtro. Eles mostram a tendência em um histograma na segunda janela.
Eu tentei criar um terceiro indicador que combina ambos os indicadores em um histograma.
Infelizmente não funciona, chamei ambos os indicadores com a função iCustom e uso o buffer correto. Mas o histograma fica em branco.
Para encontrar o problema, substituí as funções iCustom por uma função iMA. Naquele momento o código funcionou e o histograma mostrou as cores corretas
. Portanto, tem algo a ver com as funções do iCustom ou com as declarações do if.
Espero que alguém possa me ajudar.
Obrigado de antemão.
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
#property indicator_width1 3
#property indicator_width2 3
#property indicator_minimum 0
#property indicator_maximum 1
double Groen[];
double Rood[];
double zibo1g[],zibo1r[],zibo2g[],zibo2r[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SetIndexBuffer(0,Groen);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexLabel(0,"Groen");
SetIndexBuffer(1,Rood);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexLabel(1,"Rood");
IndicatorShortName("Zibo Combo");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
double dResult = 1;
for(int i=0; i<limit; i++){
zibo1g=iCustom(NULL,0,"zibo1",0,i); //green histogram
zibo1r=iCustom(NULL,0,"zibo1",1,i); //red histogram
zibo2g=iCustom(NULL,0,"zibo2",0,i); //green histogram
zibo2r=iCustom(NULL,0,"zibo2",1,i); //red histogram
if(zibo1g != EMPTY_VALUE && zibo2g != EMPTY_VALUE)
Groen = dResult;
else if(zibo1r != EMPTY_VALUE && zibo2r != EMPTY_VALUE)
Rood = dResult;
}
return(rates_total);
}Suas matrizes zibo1g[],zibo1r[],zibo2g[] e zibo2r[] são sempre matrizes de tamanho zero (elas nunca são inicializadas - redimensionadas para elementos de barra)
É melhor declará-los como amortecedores adicionais se você não estiver familiarizado com arrays em mql
m1-red.mq4
Olá a todos. Preciso de ajuda para fixar este indicador ... na prática preciso adicionar um (MA de 20 períodos) com a mesma função que o existente, e eliminar as caixas de cores, não utilizadas
Eu sempre peço perdão por meu inglês ruimNão há caixas coloridas na que você anexou. Enfim, tente isto: m1-red_1.mq4
Obrigado a Mladen por estar sempre disponível.
no post anterior eu estava me perguntando se era possível adicionar outro MA de 20 períodos com a mesma fórmula