[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 145

 
100yan:

Obrigado!
Mas não está funcionando - é um simples turno... e eu preciso saber o valor de MA 56 barras de volta! Alguém tem alguma dica? Obrigado de antemão!
 
ma_shift é o turno, turno é a barra na qual o MA é calculado
 
eddy:

duplo iMA( símbolo, prazo, período, ma_shift, ma_method, aplicado_preço, turno)
Parâmetros:
ma_shift
- deslocamento - deslocamento do indicador em relação ao gráfico de preços.
deslocamento- índice do valor obtido do buffer do indicador (deslocamento em relação à barra atual pelo número especificado de períodos de volta).

Eu também já li... talvez tenha me enganado, mas na prática eu tentei de maneiras diferentes... Não funciona! Por exemplo, com Alligator: Se você mudar tanto seu turno como ma_shift no indicador, o resultado é o mesmo - ele muda no gráfico... Por quê?
 
IgorM:
tudo está correto, apenas não há controle de que um pedido já tenha sido feito, ou seja, agora você terá um novo pedido a cada tique

Como você define este controle?
 
100yan:
Eu também li isso... talvez eu tenha me enganado, mas na prática eu tentei de maneiras diferentes... Não funciona! Por exemplo, com Alligator: Se você mudar tanto o turno como o ma_shift no indicador, o resultado será o mesmo - o gráfico mudará... Por quê?

Não há turno se ma_shift=0, deve ser porque não há valores após o turno, ou seja, porque a linha termina.

 
Você pode me dizer como mover ou copiar objetos (linhas verticais no meu caso) de uma janela para outra?
 
AndrejFX:
Você pode me dizer como mover ou copiar objetos (linhas verticais no meu caso) de uma janela para outra?

um sincronizador de objetos na base de código

Mas se apenas linhas verticais, esta é melhor.

 
sergeev:

o codebase tem um sincronizador de objetos

mas se apenas verticais, esta é melhor

bom roteiro, obrigado!
 

eddy:

por que meu MainBuffer[i] excede 100? onde está o erro?

Encontrei onde está o erro, mas não entendo por quê.

HighesBuffer[i]=MathMax(HighesBuffer[i],High[k]); //if(High[k]>maximum) maximum=High[k];
 LowesBuffer[i]=MathMin(LowesBuffer[i],Low[k]);   // if(Low[k]<minimum) minimum=Low[k];

não é o mesmo que.

if(High[k]>HighesBuffer[i]) HighesBuffer[i]=High[k];
if(Low[k]<LowesBuffer[i]) LowesBuffer[i]=Low[k];
 


Os caras ajudam, eu não entendo....
Entrada para comprar: Quando dois indicadores RSI com períodos de 14 e 17 cruzam simultaneamente e fecham acima de 30 para cima....

Entrada para vender: Quando dois indicadores RSI com períodos de 14 e 17 cruzam simultaneamente e fecham abaixo do nível de 70 de cima para baixo....

O que me interessa é uma cruz simultânea do sangue... ou seja, EXEMPLO

diRSI1 e diRSI2 estavam ambos abaixo de 30, e no fechamento da próxima vela ambos estavam acima de 30... Da mesma forma, com o nível 70!


double diRSI1=iRSI(NULL,0,14,PRICE_CLOSE,0);
double diRSI2=iRSI(NULL,0,17,PRICE_CLOSE,0);
double diRSI3=iRSI(NULL,0,14,PRICE_CLOSE,1);
double diRSI4=iRSI(NULL,0,17,PRICE_CLOSE,1);

if(AccountFreeMargin()<(100*Lots)){
Print("Não temos dinheiro. Margem Livre = ", AccountFreeMargin());
return(0);
}
if (!ExistPositions()){

if (( diRSI1>30 && diRSI2>30 && diRSI3<30 && diRSI4<30)){
OpenBuy();
return(0);
}

if ((diRSI1<70 && diRSI2<70 && diRSI3>70 && diRSI4>70)){
OpenSell();
return(0);
}
}


se correto então em teste ainda abre negócios que não se encaixam....

AJUDA...