Mais uma vez obrigado por sua ajuda. Incorporei as mudanças que você delineou, mas ainda estou tendo problemas/erros (ver arquivo anexo). Seria ótimo se eu pudesse obter alguma orientação adicional.
Obrigado.
Eu carrego um programa fixo e uma amostra completa.
Naguisa Unada: Faço o upload de um programa fixo e de uma amostra completa.
Obrigado mais uma vez por sua ajuda, eu fiz as mudanças conforme sugerido (veja arquivo anexo e código abaixo). Ainda estou recebendo inúmeros erros ao compilar (ver imagem anexa de erros de compilação), suspeito que tenha a ver com linhas destacadas no código abaixo.
Tenha em mente que estou procurando incorporar outros prazos, pares de moedas, e também outros indicadores eventualmente (como ADX), dentro deste arquivo de indicadores.
Qualquer outra ajuda seria muito apreciada.
#property description"Indicator alerts when candle size is larger than CandlePoint value for specified period"#property strict#property indicator_chart_window#property indicator_buffers0#property indicator_plots0//+------------------------------------------------------------------+//| Declaring Constants |//+------------------------------------------------------------------+#define RESET 0//+------------------------------------------------------------------+//| Enumeration for the indication of operation |//+------------------------------------------------------------------+//+------------------------------------------------------------------+//| Input parameters of the indicator |//+------------------------------------------------------------------+//--- Candle point sizeinputuint CandlePointM1 = 5; // Minimum candle points for Period M1inputuint CandlePointM5 = 5; // Minimum candle points for Period M5int timeFrame[] = {PERIOD_M1, PERIOD_M5, PERIOD_H1};
string currencyPairs[] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"}//+------------------------------------------------------------------+//| Custom indicator initialisation function |//+------------------------------------------------------------------+intOnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Deinitialisation |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Custom iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
//+------------------------------------------------------------------+//| Candle size indicator |//+------------------------------------------------------------------+
{
int range;
staticdatetime alertBar[] = {0, 0, 0}; // used for one alert/bardatetime candleTime[3];
for(int i=0; i<3; i++)
{
for (int j=0 ;j<3 ;j++)
{
double candleLow, candleHigh;
candleLow = iLow(currencyPairs[i],timeFrame[j],0);
candleHigh = iHigh(currencyPairs[i],timeFrame[j],0);
range = int((candleHigh-candleLow)/_Point);
candleTime[j] = iTime(currencyPairs[i],timeFrame[j],0);
if (alertBar[j] != candleTime[j])
{
if (timeFrame[j] == PERIOD_M1 && range>int(CandlePointM1))
{
Alert(currencyPairs[i], "PERIOD_M1", "candle >", CandlePointM1, "points");
alertBar[j] = candleTime[j];
}
if (timeFrame[j] == PERIOD_M5 && range>int(CandlePointM5))
{
Alert(currencyPairs[i], "PERIOD_M5", "candle >", CandlePointM5, "points");
alertBar[j] = candleTime[j];
}
}
}
}
Obrigado mais uma vez por sua ajuda, eu fiz as mudanças conforme sugerido (veja arquivo anexo e código abaixo). Ainda estou recebendo inúmeros erros ao compilar (ver imagem anexa de erros de compilação), suspeito que tenha a ver com linhas destacadas no código abaixo.
Tenha em mente que estou procurando incorporar outros prazos, pares de moedas, e também outros indicadores eventualmente (como ADX), dentro deste arquivo de indicadores.
Qualquer outra ajuda seria muito apreciada.
1. No final da linha ;was faltando.
Moeda de cordaPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"};
2. Faltavam as seguintes linhas.
Retorno (tarifas_total); }
3. 3. Coloquei mal a dimensão da matriz. Ela foi modificada da seguinte forma e movida para a área global.
Muito obrigado, mais uma vez. Agora está alertando em todos os prazos e pares de moedas listados.
Entretanto, ele não está mais alertando uma vez por barra, está alertando para cada aumento de ponto de vela acima do tamanho mínimo de pontos de vela. As linhas 78, 84 e 90 em 'Sample.mq4' que você anexou à sua mensagem anterior não estão garantindo que ela só alerta uma vez por vela. Eu tentei mudar os valores dentro do '[]', mas isto obviamente não resolveu o problema. Como se corrige isto?
Como sempre, qualquer ajuda adicional seria muito apreciada. Obrigado.
Entretanto, ele não está mais alertando uma vez por barra, ele está alertando para cada aumento de pontos de vela acima do tamanho mínimo dos pontos de vela. As linhas 78, 84 e 90 em "Sample.mq4" que você anexou à sua mensagem anterior não estão garantindo que ela só alerta uma vez por vela. Eu tentei mudar os valores dentro do '[]', mas isto obviamente não resolveu o problema. Como se corrige isto?
Claro que sim. Eu deveria escrever as seguintes linhas em "OnInit".
intOnInit ()
{
//--- indicator buffers mapping
TFNO = ArraySize (timeFrame);
CPNO = ArraySize (currencyPairs);
ArrayResize (candleTime, CPNO);
ArrayResize (alert_bar, CPNO);
ArrayInitialize (alert_bar, 0 );
if ( StringLen ( Symbol ()) > 6 )
{
sufix = StringSubstr ( Symbol (), 6 , 0 );
for ( int i = 0 ; i < CPNO; i++)
currencyPairs[i] += sufix;
}
//---return ( INIT_SUCCEEDED );
}
Os números em [ ] são ajustados com "ArrayResize" acima. Mesmo que o número de pares de moedas aumente, ele será ajustado automaticamente aqui, mas se você quiser adicionar outro período de tempo, você tem que modificar o programa diretamente. Isto é porque é a especificação da MQL4.
Claro que sim. Eu deveria escrever as seguintes linhas em "OnInit".
Os números em [ ] são ajustados com "ArrayResize" acima. Mesmo que o número de pares de moedas aumente, ele será ajustado automaticamente aqui, mas se você quiser adicionar outro intervalo de tempo, você tem que modificar o programa diretamente. Isto é porque é a especificação da MQL4.
Mais uma vez, obrigado. Eu acrescentei o código.
O alerta ainda está alertando para cada aumento de pontos de vela acima do tamanho mínimo de pontos de vela - mesmo depois de apagar o indicador do gráfico, recompilar, sair do MT etc. Como posso corrigir isso?
Como sempre, qualquer ajuda adicional seria muito apreciada. Obrigado.
O alerta ainda está alertando para cada aumento de pontos de vela acima do tamanho mínimo de pontos de vela - mesmo depois de apagar o indicador do gráfico, recompilar, abandonar a MT etc. Como posso corrigir isso?
Em meu PC funciona normalmente sem problemas. Acho que algo está errado, mas não sei o que é.
alguém pode modificar este indicador, quando a estocagem se cruza as setas aparecem na segunda vela, mas eu preciso que a seta apareça na vela atual, imediatamente toda vez que a estocagem se cruza
alguém pode modificar este indicador, quando a estocagem se cruza as setas aparecem na segunda vela, mas eu preciso que a seta apareça na vela atual, imediatamente toda vez que a estocagem se cruza
//for(i=1; i<=limit; i++) for(i=0; i<=limit; i++)
É muito fácil. Corrigir i = 1 para i = 0 na linha 77.
Mais uma vez obrigado por sua ajuda. Incorporei as mudanças que você delineou, mas ainda estou tendo problemas/erros (ver arquivo anexo). Seria ótimo se eu pudesse obter alguma orientação adicional.
Obrigado.
Faço o upload de um programa fixo e de uma amostra completa.
Obrigado mais uma vez por sua ajuda, eu fiz as mudanças conforme sugerido (veja arquivo anexo e código abaixo). Ainda estou recebendo inúmeros erros ao compilar (ver imagem anexa de erros de compilação), suspeito que tenha a ver com linhas destacadas no código abaixo.
Tenha em mente que estou procurando incorporar outros prazos, pares de moedas, e também outros indicadores eventualmente (como ADX), dentro deste arquivo de indicadores.
Qualquer outra ajuda seria muito apreciada.
Obrigado mais uma vez por sua ajuda, eu fiz as mudanças conforme sugerido (veja arquivo anexo e código abaixo). Ainda estou recebendo inúmeros erros ao compilar (ver imagem anexa de erros de compilação), suspeito que tenha a ver com linhas destacadas no código abaixo.
Tenha em mente que estou procurando incorporar outros prazos, pares de moedas, e também outros indicadores eventualmente (como ADX), dentro deste arquivo de indicadores.
Qualquer outra ajuda seria muito apreciada.
1. No final da linha ;was faltando.
Moeda de cordaPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"};
2. Faltavam as seguintes linhas.
Retorno (tarifas_total);
}
3. 3. Coloquei mal a dimensão da matriz. Ela foi modificada da seguinte forma e movida para a área global.
datetime alert_bar [3] [3] [3];
data-time candleTime [3] [3] [3];
1. No final da linha ;was em falta.
Moeda de cordaPairs [] = {"AUDCAD", "AUDNZD", "AUDJPY", "AUDUSD"};
2. Faltavam as seguintes linhas.
Retorno (tarifas_total);
}
3. 3. Coloquei mal a dimensão da matriz. Ela foi modificada da seguinte forma e movida para a área global.
datetime alert_bar [3] [3] [3];
data-time candleTime [3] [3] [3];
Muito obrigado, mais uma vez. Agora está alertando em todos os prazos e pares de moedas listados.
Entretanto, ele não está mais alertando uma vez por barra, está alertando para cada aumento de ponto de vela acima do tamanho mínimo de pontos de vela. As linhas 78, 84 e 90 em 'Sample.mq4' que você anexou à sua mensagem anterior não estão garantindo que ela só alerta uma vez por vela. Eu tentei mudar os valores dentro do '[]', mas isto obviamente não resolveu o problema. Como se corrige isto?
Como sempre, qualquer ajuda adicional seria muito apreciada. Obrigado.
Entretanto, ele não está mais alertando uma vez por barra, ele está alertando para cada aumento de pontos de vela acima do tamanho mínimo dos pontos de vela. As linhas 78, 84 e 90 em "Sample.mq4" que você anexou à sua mensagem anterior não estão garantindo que ela só alerta uma vez por vela. Eu tentei mudar os valores dentro do '[]', mas isto obviamente não resolveu o problema. Como se corrige isto?
Claro que sim. Eu deveria escrever as seguintes linhas em "OnInit".
Os números em [ ] são ajustados com "ArrayResize" acima. Mesmo que o número de pares de moedas aumente, ele será ajustado automaticamente aqui, mas se você quiser adicionar outro período de tempo, você tem que modificar o programa diretamente. Isto é porque é a especificação da MQL4.
Claro que sim. Eu deveria escrever as seguintes linhas em "OnInit".
Os números em [ ] são ajustados com "ArrayResize" acima. Mesmo que o número de pares de moedas aumente, ele será ajustado automaticamente aqui, mas se você quiser adicionar outro intervalo de tempo, você tem que modificar o programa diretamente. Isto é porque é a especificação da MQL4.
Mais uma vez, obrigado. Eu acrescentei o código.
O alerta ainda está alertando para cada aumento de pontos de vela acima do tamanho mínimo de pontos de vela - mesmo depois de apagar o indicador do gráfico, recompilar, sair do MT etc. Como posso corrigir isso?
Como sempre, qualquer ajuda adicional seria muito apreciada. Obrigado.
O alerta ainda está alertando para cada aumento de pontos de vela acima do tamanho mínimo de pontos de vela - mesmo depois de apagar o indicador do gráfico, recompilar, abandonar a MT etc. Como posso corrigir isso?
Em meu PC funciona normalmente sem problemas. Acho que algo está errado, mas não sei o que é.
Em meu PC funciona normalmente sem problemas. Acho que algo está errado, mas não sei o que é.
Estou executando o MT4 build 1090. Não tenho certeza de qual é o problema. Talvez outra pessoa possa ajudar?
Obrigado.
alguém pode modificar este indicador, quando a estocagem se cruza as setas aparecem na segunda vela, mas eu preciso que a seta apareça na vela atual, imediatamente toda vez que a estocagem se cruza
thanx
alguém pode modificar este indicador, quando a estocagem se cruza as setas aparecem na segunda vela, mas eu preciso que a seta apareça na vela atual, imediatamente toda vez que a estocagem se cruza
É muito fácil. Corrigir i = 1 para i = 0 na linha 77.