Ajuda na codificação - página 301

 
sunshineh:
Hi,

Eu estou usando as funções de arquivo e elas funcionam bem!

Estou usando arquivos bastante grandes e estou trabalhando com um for-loop.

Em cada ciclo eu estou lendo uma linha do arquivo. Por isso, às vezes quero mudar uma palavra em uma dessas linhas.

Existe uma maneira fácil de fazer isso? Se eu fechar o arquivo para leitura e abri-lo para escrita, então meu ponteiro de arquivo vai até o final do arquivo.

Mas existe a possibilidade de obter a posição real do ponteiro do arquivo? Então eu também posso escrever diretamente f.e. no meio do arquivo.

Não há uma maneira fácil se as linhas não forem de tamanho fixo (então você tem que reescrever o arquivo inteiro).

Se as linhas forem de tamanho fixo use FileSeek(fileHandle,lineSize*(numberOfLine-1),SEEK_SET); e então escreva as mudanças nessa linha específica

 

Desculpe se eu repito minha mensagem...mas é importante para mim....Eu preciso de um exemplo de código:

Olá, Mladen,

Eu gostaria de um pequeno indicador que, em 5 minutos, me mostrasse quando o stoc 5-3-3 está abaixo de 20 em 15 minutos.

Eu não quero stoc multitimeframe....mas sinal de maior intervalo de tempo em tf inferior.

Agradecemos antecipadamente

 

Olá Mladen ,

Quero exportar os valores não lag ma nrp para o arquivo CSV. As cores vermelho (tomate) devem ser negativas e as cores azuis devem ser positivas... Obrigado.

 
nevar:
Olá Mladen, quero exportar os valores de não atraso ma nrp para o arquivo CSV. As cores vermelho (tomate) devem ser negativas e as cores azuis devem ser positivas... Obrigado.

nevar

Aqui está um roteiro que faz isso: export_nonlag_ma_data.mq4

Você precisa do "NonLag ma nrp nmc" deste post também na pasta de indicadores : https://www.mql5.com/en/forum/general

Arquivos anexados:
 
mladen:
AZRUL

Você não está fornecendo o valor que você quer procurar na linha 180 (esta linha :

int ranking = rank();

portanto, a função de ranking não pode se comparar a nenhum valor. Sua chamada deve ser feita da seguinte forma :

int ranking = rank(someValueToRank);

Prezado SIR MLADEN,

Tentei obter a classificação para a saída Total do meu Indicador para fazer um RANK em Ordem Ascendente, mas não consegui... Só consegui 2 outputs e apenas um deles está correto... ( Acho que sim...) e o resto (mais 5) é (0) zero......

Eu tentei tudo o que pude pensar e fiquei sem idéias sobre como produzir um código para classificá-los em ordem ascendente ou descendente... 0 PODE POR FAVOR AJUDA.........

Seu tempo e sua experiência são sempre apreciados e necessários.......

seu tempo e conhecimento

AZRUL...

Arquivos anexados:
 
12BPRO:
Prezado SENHOR MLADEN,

Tentei obter a classificação para a saída Total do meu Indicador para fazer um RANK em Ordem Ascendente, mas não consegui... Só consegui 2 outputs e apenas um deles está correto... ( Acho que sim...) e o resto (mais 5) é (0) zero......

Eu tentei tudo o que pude pensar e fiquei sem idéias sobre como produzir um código para classificá-los em ordem ascendente ou descendente... 0 PODE POR FAVOR AJUDA.........

Seu tempo e sua experiência são sempre apreciados e necessários.......

seu tempo e conhecimento

AZRUL...

12BPRO

Acho que já lhe disse : você tem que fazer uma classificação 2 dimensões (já que você tem um valor + nome de símbolo em cada par que você quer exibir) Não é suficiente classificar apenas valores, já que dessa forma você está perdendo nomes de símbolos, você tem que fazer um procedimento próprio de classificação que irá mover o nome do símbolo também para o lugar correspondente quando o valor for movido para o seu lugar

 
mladen:
12BPROI acho que já lhe disse : você tem que fazer uma classificação em 2 dimensões (já que você tem um valor + nome de símbolo em cada par que você quer exibir) Não é suficiente classificar apenas valores, já que dessa forma você está perdendo nomes de símbolos você tem que fazer um procedimento de classificação próprio que irá mover o nome do símbolo também para o lugar correspondente quando o valor é movido para o seu lugar

Prezado SENHOR MLADEN,

Eu tentei este código adicionando o procedimento de classificação e ele está indicando algum valor... infelizmente parece ter falhado o último valor do array (TOTCAD)... você poderia POR FAVOR dar uma olhada...

Sinto muito2, não sou um PROGRAMA .... não entendo muito... meu querido GURU..... Estou fazendo o meu melhor para aprender esta......

Seu tempo e sua experiência são sempre apreciados e necessários.......

seu verdadeiro

AZRUL...

Arquivos anexados:
 
12BPRO:
Prezado SENHOR MLADEN,

Eu tentei este código adicionando o procedimento de classificação e ele está indicando algum valor... infelizmente parece ter falhado o último valor do array (TOTCAD)... você poderia POR FAVOR dar uma olhada...

Sinto muito2, não sou um PROGRAMA .... não entendo muito... meu querido GURU..... Estou fazendo o meu melhor para aprender esta......

Seu tempo e sua experiência são sempre apreciados e necessários.......

seu verdadeiro

AZRUL...

AZRUL

Aqui está uma rotina de classificação que classifica as matrizes bidimensionais:

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

// 2 dimenzional array shell sort

//

//

//

double PR[][2];

void SortIt()

{

int size ArrayRange(PR,0);

int i,j,increment = size / 2;

double temp,temi;

//

//

//

//

//

while (increment > 0)

{

for (i = increment; i < size; i++)

{

j = i;

temp = PR;

temi = PR;

while ((j >= increment) && (PR[j-increment,0] < temp))

{

PR[j,0] = PR[j-increment,0];

PR[j,1] = PR[j-increment,1];

j = j-increment;

}

PR[j,0] = temp;

PR[j,1] = temi;

}

if (increment == 2) increment = 1;

else increment = (increment / 2.2);

}

}

Preencher a matriz PR com colas e algum tipo de marca para um símbolo (por exemplo PR[0,0] = valor para eur, PR[0,1] = 1 (o que significaria que 1 é uma marca para EUR). A chamada do procedimento SortIt() e ler os valores e suas marcas correspondentes para símbolos (por exemplo, você obteria PR[5,1] == 1 (1 significando EUR) o que significaria que o valor PR[4,0] é o valor de EUR)

 
mladen:
AZRUL

Aqui está uma rotina de classificação que classifica as matrizes bidimensionais:

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

// 2 dimenzional array shell sort

//

//

//

double PR[][2];

void SortIt()

{

int size ArrayRange(PR,0);

int i,j,increment = size / 2;

double temp,temi;

//

//

//

//

//

while (increment > 0)

{

for (i = increment; i < size; i++)

{

j = i;

temp = PR;

temi = PR;

while ((j >= increment) && (PR[j-increment,0] < temp))

{

PR[j,0] = PR[j-increment,0];

PR[j,1] = PR[j-increment,1];

j = j-increment;

}

PR[j,0] = temp;

PR[j,1] = temi;

}

if (increment == 2) increment = 1;

else increment = (increment / 2.2);

}

}
Preencher a matriz PR com colas e algum tipo de marca para um símbolo (por exemplo PR[0,0] = valor para eur, PR[0,1] = 1 (o que significaria que 1 é uma marca para EUR). A chamada do procedimento SortIt() e ler os valores e suas marcas correspondentes para símbolos (por exemplo, você obteria PR[5,1] == 1 (1 significando EUR) o que significaria que o valor PR[4,0] é o valor de EUR)

Prezado SENHOR MLADEN,

MUITO OBRIGADO(GURU).... você é meu HERO E 6º Crédito...

Eu Amo tanto este FORUM.... graças ao GURU'S aqui....

Isto também seria benéfico para os outros....

OBRIGADO SENHOR....

seu verdadeiro

AZRUL...

 
mladen, mrtool...

need help to modify/add color changing rule by 2 moving averange (MA period 8 n MA period 24).

se MA8 > MA24, histo color=verde.

se MA8 < MA24, histo color=vermelho.

aqui está o link indicador : https://www.mql5.com/en/code/download/7992/BW_MFI.mq4

ainda à espera...já tentei por mim mesmo (antes de postar este pedido) mas nenhum bom resultado, preciso de mais buffers... ou porque não sou codificador/falta de habilidade de codificação. só quero saber se é possível combinar BW MFI com outro indicador.