[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 525

 
Sarguss:

Boa noite.

Eu sou um pouco "cruciano" quando se trata de codificação :) Estou construindo um Consultor Especialista baseado no indicador Fibonacci. Não estou prestando atenção à estratégia até agora. O problema é 7 níveis de Fibonacci, como fazer com que cada nível cruzado defina apenas 2 ordens pendentes diferentes e não mais.

Agradecia quaisquer dicas.

Desculpe pelo meu incômodo russo.


Trabalho

P.S. "Um lúcio para uma carpa cruciana não dorme" (provérbio russo).

 
Roll:


Trabalho

P.S. "Um lúcio para uma carpa cruciana" (provérbio russo).


Obrigado pelo provérbio:)))) Bem no assunto -

Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Sem você em nenhum lugar - 4.

Acabe com isso - qualquer resposta Profi!

 

Olá especialistas, por favor, ajudem-me a criar um roteiro. Há dois indicadores MA(Moving Average) no gráfico, MA1 é marcado em vermelho e MA2 é marcado em azul. A tarefa do roteiro: cruzar MA1 e MA2 para que a linha vermelha cruze a linha azul de cima para baixo. Vamos chamar este ponto A e se a linha vermelha cruzar a azul de cima para baixo, será o ponto B. Então, no ponto A, precisamos do scrip para fechar uma ordem de venda e abrir uma ordem de compra e no ponto B para fechar uma ordem de compra e abrir uma ordem de venda. Este laço deve ser infinito. Anexado um código similar, por favor, ajude-me, ficarei muito grato

Arquivos anexados:
 
Lisi4ka330:
Para não piorar a confusão, quero corrigir o erro que cometi na resposta anterior - a notação "array1[Bars*6-60,60][0]" não é correta, porque Bars*6 é o número total de elementos no array1.Cada barra tem 6 propriedades, vamos supor que temos 30 barras, multiplicando por 6 obtemos o número de elementos na primeira matriz - 180. A segunda matriz tem apenas 60 "células" livres (ou seja, 10 x 6 propriedades), portanto, devemos selecionar apenas 60 elementos da primeira matriz para copiar. Usando a expressão [Bars*6-60,60] subtraímos 60 do total, ou seja, 180 - 60 = 120, ou seja, 120 elementos da primeira matriz serão copiados para elemento zero da segunda, 121 para a primeira, e assim por diante. Outra questão é como se conclui que as informações sobre as últimas barras formadas não são escritas no início da primeira série, mas no final ... Mas aparentemente a resposta está no código de função, e não faz sentido cavar mais fundo...


Bem, eu tenho um banco de dados, não tem nada a ver com isso. Natalya escreveu logicamente corretamente. E mesmo no caso em que temos 30 barras, o valor do índice doarray1 é 120. Correspondentemente, o valor do índice correspondente doarray2 já é declarado como 10 durante a inicialização.

https://docs.mql4.com/ru/array/ArrayCopy

double array2[10][6];

Em um livro em C, eu li isso:

A linguagem C não controla as ultrapassagens de matriz, o que significa que tecnicamente vocêvocê podeescrever algo em um elemento com um índice inexistente, por exemplo em A[345] ou em A[-12].Mas ao fazer isso, você apagará alguma célula na memória que não pertence à matriz, entãoas conseqüências de tal passo são imprevisíveis e o programa fica pendurado em muitos casos.

Acontece que o índice de matriz1(a matriz de origem) é maior do que o índice correspondente dematriz2 (a matriz de destino). E, conseqüentemente, você não deve fazer isso dessa maneira! Era isso que eu queria dizer...

 

Olá a todos!

Eu tentei escrever meu primeiro EA :-), mas algumas dificuldades surgiram.

A lógica por trás disto é a seguinte, há um indicador que mostra o máximo e o mínimo para as últimas n barras, quando ele quebra um máximo ou mínimo uma ordem deve abrir.

Quando eu prendo a EA à tabela, ela abre uma posição de VENDA. Não sei por que isso acontece dessa maneira.

Acho que o erro está na função iCustom(), que envia parâmetros indicadores.

Anexei a EA e o indicador.

Arquivos anexados:
xox.mq4  10 kb
 
E aqui está o indicador.
Arquivos anexados:
go_go_1.mq4  2 kb
 
Pacman:

Olá a todos!

Eu tentei escrever meu primeiro EA :-), mas algumas dificuldades surgiram.

A lógica por trás disto é a seguinte, há um indicador que mostra o máximo e o mínimo para as últimas n barras, quando ele quebra um máximo ou mínimo uma ordem deve abrir.

Quando eu prendo a EA à tabela, ela abre uma posição de VENDA. Não sei por que isso acontece dessa maneira.

Acho que o erro está na função iCustom(), que envia parâmetros indicadores.

Anexei o Consultor Especialista e o indicador.

Não se preenche o índice 0 das matrizes indicadoras,

   for(k=1; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }

mas você tem acesso a ele:

   double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
   double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

É um pouco (estruturalmente) embaraçoso, mas serve pela primeira vez. Meu conselho: "Acostume-se a corrigir imediatamente as abordagens para escrever código. Por exemplo, utilizando esta condição em seu código:

       if(Total==0 && Opn_B==true)              //Открытых ордеров нет + 
É analfabeto, porque mais cedo ou mais tarde, você passará de testador para comércio on-line, e há vários Expert Advisors trabalhando em paralelo, e este código não funcionará.
 
Pacman:
E aqui está o indicador.

Qual é o seu problema com iHighest() e iLowest()?
 
 
0x é exatamente o número de 16 dígitos.
Razão: