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,
modifiquei o indicador padrão stepMA 9 neste em janela separada como histograma, mas não sei por que os sinais de compra não são sincronizados com o indicador padrão (os sinais de venda são). Com o novo eles ocorrem uma barra para trás do que o indicador original. Por que? Modifiquei apenas a parte do código que determina o aspecto gráfico do indicador.
stepma_9_histo_mtf.mq4
stepma_9.0.mq4
Hi,
modifiquei o indicador padrão stepMA 9 neste em janela separada como histograma, mas não sei por que os sinais de compra não são sincronizados com o indicador padrão (os sinais de venda são). Com o novo eles ocorrem uma barra para trás do que o indicador original. Por que? Modifiquei apenas a parte do código que determina o aspecto gráfico do indicador.
stepma_9_histo_mtf.mq4
stepma_9.0.mq4
thefxpros
Isso é o resultado de como as linhas são traçadas.
Quando se desenha uma linha, é preciso começar a traçar a linha 1 compasso para torná-la visível (caso contrário, seria um ponto e não seria visível no gráfico). Experimente estas duas e compare-as agora
Hi,
Tenho procurado uma EA que abrisse um comércio de maneira semelhante à de uma parada de trilha que funcionaria.
Digamos que estou esperando por um retrocesso em um instrumento. Eu gostaria de abrir meu comércio da forma mais alta (ou baixa) possível no preço. Assim, com um EA como este, eu seria capaz de definir meus parâmetros comerciais e este EA continuará seguindo o preço de forma semelhante a uma parada móvel. Quando há uma inversão, o comércio é atingido e aberto.
Você já viu um EA como este?
Obrigado
Olá a todos
eu tento fazer código, mas por que não posso abrir o comércio
for (int iTS = 0; iTS < 2000; iTS++) {
int varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");
int varZonEnd = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "10:00");
int JamStart=TimeHour(varZonStart);
int JamEnd=TimeHour(varZonEnd);
if (JamStart>JamEnd) {
varCurrentTime = decDateTradeDay(varCurrentTime);
//if (TimeDayOfWeek(varCurTime) < 1) varCurTime = decDateTradeDay(varCurTime);
if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime);
}
varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");
int varShiftStart = iBarShift(NULL, 0, varZonStart - 60 * Period());
int varShiftEnd = iBarShift(NULL, 0, varZonEnd);
varHighest = High;
varLowest = Low;
varCurrentTime = decDateTradeDay(varCurrentTime); //set 1 hari kebelakang
if (TimeDayOfWeek(varCurrentTime) < 1) varCurrentTime = decDateTradeDay(varCurrentTime); //jika minggu mundur lagi
if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime); //jika sabtu mundur lagi
}
for (int iTSh = 0; iTSh < 2000; iTSh++) {
for (int iTSl = 0; iTSl < 2000; iTSl++) {
if(((varHighest-varLowest)/Pip)<=5) varHL=(varHighest+varLowest)/2;
}
}
double isg10a = iOpen(Symbol(),PERIOD_M15,1);
double isg10b = iClose(Symbol(),PERIOD_M15,1);
int static isg10c = -1;
for (iTS = 0; iTS < 2000; iTS++) {
if(isg10avarHL)isg10c =0;
if(isg10a>varHL&&isg10b<varHL)isg10c =1;
}
if (isg10c==0) To code Buy
else if (isg10c==1) To code Sel
else no trade
JimEm vez de reescrever tudo isso, acrescentou um limite para calcular as barras e então todas essas barras são recalculadas. Isso deve resolver o problema refrescante (os tomates mantêm o BarsTocalculate em algum valor razoável - não muito grande nem muito pequeno. Eu usei 1000 como padrão e parece estar tudo bem assim). Experimente-o
Prezado mladen,
muito obrigado por seu esforço e por sua ajuda muito rápida.
Vou tentar.
Muito obrigado de Munique
Por favor, ajude-me a atualizar este indicador de volume para anexar no meu mt4
Olá gurus, por favor, me ajude a corrigir os erros neste indicador de volume. Acabei de notar que não foi possível anexá-lo ao meu gráfico mt4 recentemente. Fiz todo o possível para consertar os erros no arquivo, mas em vão. Suspeito que seja por causa da enorme atualização do mt4. Todos os outros indicadores em minha pasta mt4, tanto as versões mais antigas quanto as mais novas, estão funcionando bem. Estava funcionando há um ano atrás eu o usei pela última vez. Ainda não sou um programador.
Por favor, encontre o arquivo anexo
Olá MLaden e Mrtools,
Espero que você esteja bem
Preciso de uma confirmação sua sobre a RSX
Vejo que você usa uma fórmula mais simples para calcular a RSX :
__________________________
duplo Kg = (3,0)/(2,0+Comprimento);
duplo Hg = 1,0-Kg;
if (slope[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);
if (ArrayRange(wrkBuffer,0) != Barras) ArrayResize(wrkBuffer,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,Preço,i);
if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continue; }
//
//
//
//
//
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
double moa = MathAbs(mãe);
para (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mãe = 1,5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];
wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; moa = 1,5*wrkBuffer[r][kk+6] - 0,5 * wrkBuffer[r][kk+7];
}
se (moa != 0)
rsx = MathMax(MathMin((mom/moa+1.0)*50.0,100.00),0.00);
caso contrário rsx = 50;
____________________________________
Só para ter certeza de entender como a RSX é calculada com esta fórmula
Primeiro com a linha:
mãe = wrkBuffer[r][12]-wrkBuffer[r-1][12];
na verdade wrkBuffer[r][12] é a média móvel simples do preço, note o preço como com um RSI usual ?
Certo ? Mas eu não entendo qual é o período deste SMA (Provavelmente não é o período de duração) ?
E depois, se eu tiver entendido bem com as linhas:
para (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];
mãe = 1,5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
Na verdade, calcula 3 vezes a mãe (uma após a outra), com a primeira mãe acima (mãe = wrkBuffer[r][12]-wrkBuffer[r-1][12];)
É correto?
E depois disto é "clássico" com RSX=((mom/moa)+1)*50
Obrigado por sua próxima resposta, como codificador (em outra forma de placa), você sabe que eu gosto de entender como os códigos funcionam
Tenha um belo dia
Zilliq
Olá MLaden e Mrtools,
Espero que você esteja bem
Preciso de uma confirmação sua sobre a RSX
Vejo que você usa uma fórmula mais simples para calcular a RSX :
__________________________
duplo Kg = (3,0)/(2,0+Comprimento);
duplo Hg = 1,0-Kg;
if (slope[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);
if (ArrayRange(wrkBuffer,0) != Barras) ArrayResize(wrkBuffer,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,Preço,i);
if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continue; }
//
//
//
//
//
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
double moa = MathAbs(mãe);
para (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mãe = 1,5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];
wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; moa = 1,5*wrkBuffer[r][kk+6] - 0,5 * wrkBuffer[r][kk+7];
}
se (moa != 0)
rsx = MathMax(MathMin((mom/moa+1.0)*50.0,100.00),0.00);
caso contrário rsx = 50;
____________________________________
Só para ter certeza de entender como a RSX é calculada com esta fórmula
Primeiro com a linha:
mãe = wrkBuffer[r][12]-wrkBuffer[r-1][12];
na verdade wrkBuffer[r][12] é a média móvel simples do preço, note o preço como com um RSI usual ?
Certo ? Mas eu não entendo qual é o período deste SMA (Provavelmente não é o período de duração) ?
E depois, se eu tiver entendido bem com as linhas:
para (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];
mãe = 1,5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
Na verdade, calcula 3 vezes a mãe (uma após a outra), com a primeira mãe acima (mãe = wrkBuffer[r][12]-wrkBuffer[r-1][12];)
É correto?
E depois disto é "clássico" com RSX=((mom/moa)+1)*50
Obrigado por sua próxima resposta, como codificador (em outra forma de placa), você sabe que eu gosto de entender como os códigos funcionam
Tenha um belo dia
Zilliq"na verdade, wrkBuffer[r][12] é a média móvel simples do preço, note o preço como com um RSI usual" ?
Não. O período de cálculo para essa média é 1, o que significa que ela é igual ao preço da "média" utilizada. No metatader essa é a maneira mais rápida de obter o preço desejado (se você tentar escrever a estrutura "case" fazendo essa mesma coisa você verá que é muito mais lento do que a maneira usada no código rsx)
"Na verdade, calcula 3 vezes a mãe (uma após a outra), com a primeira mãe acima".
Não. Veja quais valores ela está usando em cada nova iteração. mãe e moa são constantemente alterados e reutilizados (nessa forma alterada) durante o processo de looping
Muito obrigado, Mladen,
É muito estranho, se bem entendi que o wrkBuffer[r][12] é igual ao preço, mas você usa uma média móvel com um período de 1 para acelerar o cálculo. Isso é tão curioso...
Para a segunda coisa, acho/suponha que é isso que eu tento dizer
calcula a mãe como uma dinâmica de preço
E calcula outra mãe com Kg e Hg. Ele dá uma nova mãe, que está acostumada a criar uma nova mãe, e assim por diante, 3 vezes
Algo "mais fácil" (para facilitar o não-destrutivo) como isso
mãe
mom1=kg*momãe
mom2=kg*mom1
mom3=kg*mom2
E no final usa mom3, e moa3
Eu estou certo ?
Muito obrigado, Mladen,
É muito estranho, se bem entendi que o wrkBuffer[r][12] é igual ao preço, mas você usa uma média móvel com um período de 1 para acelerar o cálculo. Isso é tão curioso...
Para a segunda coisa, acho/suponha que é isso que eu tento dizer
calcula a mãe como uma dinâmica de preço
E calcula outra mãe com Kg e Hg. Ele dá uma nova mãe, que está acostumada a criar uma nova mãe, e assim por diante, 3 vezes
Algo "mais fácil" (para facilitar o não-destrutivo) como isso
mãe
mom1=kg*momãe
mom2=kg*mom1
mom3=kg*mom2
E no final usa mom3, e moa3
Eu estou certo ?Zilliq,
sim, é assim que se faz