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
Hi,
Estou pensando como posso codificar este indicador/ferramentas.
Preciso de um indicador, roteiro ou algo parecido onde eu possa decidir alguma faixa em dias (ex 12/10/2012-15/10/2012 ou 15/10/2012-15/10/2012) e depois de escrever em um arquivo csv ou excel o aberto alto baixo e fechado para a vela exibida no gráfico dependendo da TF (ex. se eu decidir apenas um dia e anexá-lo em 1hr TF ele escreve 24 vela com sua especificação).
Agradecemos antecipadamente por sua ajuda.
Problema de sinal de alerta.
Olá a todos na casa, há este pequeno problema com um código MT4 que eu escrevi. Este código supõe que se deve observar três indys, stoichastic,RSI,e CCI.se o stoichastic cruzar sua linha de sinal para cima ou para baixo E o RSI do período 70 e 6 cruzar-se para cima ou para baixo e CCI estiver acima ou abaixo de zero, deve haver um sinal de compra se os 3 indys inteiros estiverem acima de suas linhas de sinal ou deve haver um sinal de venda se os 3 indys estiverem abaixo de suas linhas de sinal........ este código funciona, mas sempre que há alerta, ele continua se repetindo a cada tick-tack da vela. o que posso fazer para fazer este alerta soar apenas uma vez se as três condições forem atendidas na vela atual e não reaparecer o som. este é o código abaixo.
if(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
duplo RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0); duplo RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
duplo b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0); double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
duplo b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
duplo nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alertas
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alerta("Buy Arrow","\n","Tempo atual é ",TimeToStr(CurTime()),"\n", Símbolo());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alerta("Seta de Venda", "\n", "Hora atual é ",TimeToStr(CurTime()),"\n", Símbolo());
}
}
pooh
É simplesmente porque os valores de símbolos diferentes podem diferir tanto (por exemplo, GBPJPY está em torno de 126 agora e EURUSD está aproximadamente 100 vezes menos - quando você desenha esses valores no mesmo gráfico, o valor de EURUSD está simplesmente "fora de cena porque o metatrader toma os valores de GBPJPY como critério de escala do gráfico).
Dê uma olhada nesta linha : https://www.mql5.com/en/forum/178052. Já existem algumas soluções para problemas similares nesse tópicoObrigado, Mladen. Segui seu link e encontrei o indicador que atende às minhas necessidades.
pooh
Tente assim :
{
static datetime lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alerts
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
}Olá a todos na casa, há este pequeno problema com um código MT4 que eu escrevi. Este código supõe que se deve observar três indys, stoichastic,RSI,e CCI.se o stoichastic cruzar sua linha de sinal para cima ou para baixo E o RSI do período 70 e 6 cruzar-se para cima ou para baixo e o CCI estiver acima ou abaixo de zero, deve haver um sinal de compra se os 3 indys inteiros estiverem acima de suas linhas de sinal ou deve haver um sinal de venda se os 3 indys estiverem abaixo de suas linhas de sinal........ este código funciona, mas sempre que há alerta, ele continua se repetindo a cada tick-tack da vela. o que posso fazer para fazer este alerta soar apenas uma vez se as três condições forem atendidas na vela atual e não reaparecer o som. este é o código abaixo.
if(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
duplo RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0); duplo RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
duplo b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0); double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
duplo b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
duplo nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alertas
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alerta("Buy Arrow","\n", "Tempo atual é ",TimeToStr(CurTime()),"\n", Símbolo());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alerta("Seta de Venda", "\n", "Hora atual é ",TimeToStr(CurTime()),"\n", Símbolo());
}
}Problemas de alerta
Nunca tomo nota da função LastAlert() e, por favor, você pode me informar onde obter o diretório de todas estas funções mt4 "tranche rouse".
Mastercash
Tenha cuidado: isso não é uma função, mas uma variável estática que é usada para armazenar o tempo (tempo de barra) do último alerta e dessa forma evita múltiplos alertas na mesma barra. Infelizmente não existe uma função como LastAlert() no metatrader, então temos que encontrar soluções para resolver a falta de funções.
Nunca tomo nota da função LastAlert() e, por favor, você pode me informar onde obter o diretório de todas estas funções mt4 "tranche rouse".
Oi mladen.
Preciso ceder 24 variáveis cada uma para a vela de 24 horas do último dia.
Preciso fazer alguns cálculos com a vela e o resultado será atribuído em um buffer.
Como eu posso codificar para trabalhar com cada uma das 24 horas da vela do dia anterior?
Obrigado.
dasio
Você pode usar algo semelhante a isto (este modo não usa arrays). Além disso, este exemplo é para os dias atuais
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
Oi mladen.
Preciso ceder 24 variáveis cada uma para a vela de 24 horas do último dia.
Preciso fazer alguns cálculos com a vela e o resultado será ceder em um buffer.
Como eu posso codificar para trabalhar com cada uma das 24 horas da vela do dia anterior?
Obrigadodasio
Você pode usar algo semelhante a isto (este modo não usa arrays). Além disso, este exemplo é para os dias atuais
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
Obrigado mladen.
Neste exemplo:
fechamento duplo = iClose(NULL,PERÍODO_H1,i); //
duplo aberto = iOpen(NULL,PERÍODO_H1,i); //
Qual vela rapaz e como posso mudar para a próxima vela? i+1?
Obrigado.
dasio
Ele já está passando por todas as horas do dia atual. Eu coloquei o iClose() e iOpen() apenas como exemplo de uma chamada de um período de tempo diferente de 1 hora. Se você quiser acessar um dia diferente do atual, substitua o "0" na data/hora de inícioTime=iTime(NULL,PERÍODO_D1,0); parte com qualquer dia para o qual você deseja que os dados coletados
Obrigado mladen.
Neste exemplo:
fechamento duplo = iClose(NULL,PERÍODO_H1,i); //
duplo aberto = iOpen(NULL,PERÍODO_H1,i); //
Qual vela rapaz e como posso mudar para a próxima vela? i+1?
Obrigado