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
Caras, eu preciso de um pouco de ajuda para codificar a relação RSI e SMA.
Como você vê na imagem, há sinais (setas para cima e para baixo), mas alguns deles são sinais falsos. Portanto, decidi eliminar os sinais falsos com RSI14 e SMA20 nele.
A lógica por trás disso é muito fácil, a seta para cima deve aparecer se RSI14 for ABOVE SMA20. A seta para baixo deve aparecer se o RSI for SMA20 ABAIXO.
Marquei mal algumas linhas para cima, porque o RSI é muito alto, mas essa parte eu mesmo posso codificar.
Eu encontrei muitos códigos de cruzamento RSI<MA, mas a maioria deles vai longo/curto se o cruzamento aparecer. Mas eu preciso de um termo onde RSI seja ABOVE ou BELOW e depois fazer algo.
Por enquanto, tenho que usar o IRSI e o array para isso, mas não consigo juntar esse código eu mesmo.triip
Você verificou o postado aqui : https://www.mql5.com/en/forum/general
TriipDid você confere o que foi postado aqui : https://www.mql5.com/en/forum/general
Sim, mas tudo o que encontrei foi um sinal de travessia. Eu preciso de condições se o RSI estiver acima/abaixo do SMA.
Entendo que primeiro tenho que declarar o que significa ABOVE e o que significa BELOW, depois disso posso usá-los na sentença IF.
triip
Você verificou o que foi postado aqui : https://www.mql5.com/en/forum/174476Sim, mas tudo o que encontrei foi um sinal de travessia. Eu preciso de condições se o RSI estiver acima/abaixo do SMA.
Entendo que primeiro tenho que declarar o que significa ABOVE e o que significa BELOW, depois disso posso usá-los na sentença IF.
Sim, mas tudo o que encontrei foi um sinal de travessia. Eu preciso de condições se o RSI estiver acima/abaixo do SMA. Entendo que primeiro tenho que declarar o que significa ABOVE e o que significa BELOW, depois disso posso usá-los na sentença IF.
triip
Não faço idéia do que o rsi estava usando para obter esses sinais em sua foto, então ... é tudo o que posso dizer. Sem o código não pode ajudar mais
triip Não faço idéia de que rsi você estava usando para obter esses sinais em sua foto, então ... é tudo o que posso dizer. Sem o código não pode ajudar mais...
Desculpe não ter mencionado que os sinais de seta não estão vindo do RSI. é outro código que eu uso. Mas vi que o RSI com SMA vai ajudar a evitar sinais errados. É por isso que gosto de editar o código do sinal para que ele também seja capaz de identificar as condições do RSI.
O que eu preciso é:
Os sinais de setas entram, mas todos eles não são sinais verdadeiros. Portanto, antes que a flecha chegue, tem que haver outra, se verificar o que controla as condições de RSI.
se (meu código atual && RSI está acima/abaixo do SMA)
{ mostrar seta
}
Eu preciso dessa parte vermelha.
Desculpe não ter mencionado que os sinais de seta não vêm do RSI. é outro código que eu uso. Mas vi que o RSI com SMA vai ajudar a evitar sinais errados. É por isso que gosto de editar o código do sinal para que ele também seja capaz de identificar as condições do RSI.
O que eu preciso é:
Os sinais das setas entram, mas todos eles não são sinais verdadeiros. Portanto, se a seta vier, então tem que haver outra se for verificado o que controla as condições do RSI.
se (meu código atual && RSI está acima/abaixo do SMA)
{ mostrar seta
}
Eu preciso dessa parte vermelha.triip
Você tem que fazer o seguinte :
1. Salvar os valores de RSI em um buffer
2. Use iMAOnArray() para calcular o SMA daquele valor de RSI
3. Compare o valor de RSI salvo e o valor de iMAOnArray() calculado e essa é a sua condição
triip
Você tem que fazer o seguinte :
1. Salvar os valores de RSI em um buffer
2. Use iMAOnArray() para calcular o SMA daquele valor de RSI
3. Compare o valor de RSI salvo e o valor de iMAOnArray() calculado e essa é a sua condiçãoEntão 1 e 2 algo parecido com isso?
1.
extern int rsi_p = 14;
extern int MA_Period=20;
extern int MA_Shift=0;
extern int MA_Method=0;
extern int NumberOfBarsToCalculate = 10000;
double Buffer0[];
double Buffer1[];
double Ma[];
double RSi[];
int init()
{
IndicatorBuffers(4);
SetIndexBuffer(0,Buffer0);
SetIndexBuffer(1,Buffer1);
SetIndexBuffer(2,Ma);
SetIndexBuffer(3,RSi);
return(0);
}
[/CODE]
2.
[CODE]int start() {
int shift;
double rsi = 0;
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){
RSi[shift] = iRSI(NULL,0,rsi_p,PRICE_CLOSE,shift);
}
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){
Ma[shift] = iMAOnArray(RSi,0,MA_Period,MA_Shift,MA_Method,shift);
Buffer0[shift] = RSi[shift];
Buffer1[shift] = Ma[shift];
}
return(0);
}
Então 1 e 2 algo parecido com isso?
1.
extern int rsi_p = 14;
extern int MA_Period=20;
extern int MA_Shift=0;
extern int MA_Method=0;
extern int NumberOfBarsToCalculate = 10000;
double Buffer0[];
double Buffer1[];
double Ma[];
double RSi[];
int init()
{
IndicatorBuffers(4);
SetIndexBuffer(0,Buffer0);
SetIndexBuffer(1,Buffer1);
SetIndexBuffer(2,Ma);
SetIndexBuffer(3,RSi);
return(0);
}
[/CODE]
2.
[CODE]int start() {
int shift;
double rsi = 0;
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){
RSi[shift] = iRSI(NULL,0,rsi_p,PRICE_CLOSE,shift);
}
for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){
Ma[shift] = iMAOnArray(RSi,0,MA_Period,MA_Shift,MA_Method,shift);
Buffer0[shift] = RSi[shift];
Buffer1[shift] = Ma[shift];
}
return(0);
}
Sim, você pode fazer isso também
E quando você precisar, basta comparar o buffer RSi e MA e você sempre será capaz de ver a posição relativa deles
Sim, você pode fazer isso também E quando você precisar, basta comparar RSi e MA buffer e você sempre será capaz de ver a posição relativa deles
Fantástico, grande obrigado mladen
codificador aprendizAqui está um indicador que tem tal procedimento de ordenação (é ordenação de matriz bidimensional) : spearman_rank_correlation_nmc.mq4
mladen
Algum exemplo de c/c++ fazendo essa mesma coisa?