Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 926

 

Boa noite a todos!

Surgiu uma pergunta sobre a qual nunca tinha pensado antes. O que é um carrapato? Como ele é formado? Quando o volume suficiente de negócios é acumulado? Não pode ser um preço mínimo ou uma etapa de tempo, pois os carrapatos não são distribuídos uniformemente no tempo e podem repetir os valores de oferta e procura anteriores.

E como funcionam os negócios na MT? Por exemplo, pedimos o preço Ask, fazemos os cálculos e enviamos uma ordem de compra. Será executado ao preço Ask que recebemos ou ao preço do próximo tick (assumindo que todos os cálculos sejam feitos antes de recebermos informações sobre um novo tick) ? Isto é, existe uma certa duração do tick e de que depende, se sim?

 
AlexeyVik:

Dependendo do número de linhas, declarar buffers indicadores e simultaneamente escrever o valor em um dos buffers onde a linha é desenhada. E depois leia este valor do Expert Advisor através do iCustom().

São duas palavras.

Você sabe que ao traçar a linha, você especifica a hora de início e de término e o preço, respectivamente. Para o buffer, um laço deve ser desenhado sobre todas as barras. Você deve primeiro dar uma olhada no código e depois dar conselhos. Caso contrário, seu conselho é inútil 0......
 
nikelodeon:
Você sabe que ao traçar a linha, você especifica a hora de início e de término e, correspondentemente, o preço. O buffer deve passar por todas as barras. Você deveria ter consultado o código primeiro, e depois dar conselhos. Caso contrário, seu conselho é inútil 0......

Você tem que colocar o preço no buffer.

E o loop só é necessário para garantir que as leituras sejam para todas as barras. Para ser mais preciso, é apenas pela beleza, e como regra, todos trabalham com leituras das duas últimas barras, 0 e 1.

Se um indicador não contém o processamento de todas as barras, parece que não é necessário.

Sou tão preguiçoso quanto muitos outros para entender o código, talvez até mais preguiçoso do que todos eles juntos, e você me aconselha a olhar o código... o que eu preciso? Eu perguntei em poucas palavras. Qualquer que seja a pergunta, essa é a resposta. E se meu conselho é inútil, isso significa que estou aconselhando o cara errado.

 
AlexeyVik:

É o preço que precisa ser colocado no buffer.

E o loop só é necessário para garantir que as leituras sejam para todas as barras. Para ser mais preciso, é apenas pela beleza, e como regra, todos trabalham com leituras das duas últimas barras, 0 e 1.

Se seu indicador não contém processamento de todas as barras, você provavelmente não precisa dele.

Sou tão preguiçoso quanto a maioria das pessoas para escavar este código, e talvez até mais preguiçoso que todos eles juntos, e você me aconselha a olhar o código... o que eu preciso? Eu perguntei em poucas palavras. Qualquer que seja a pergunta, essa é a resposta. E se meu conselho é inútil, isso significa que estou aconselhando o cara errado.

Eu não quero, embora não seja um programador muito bom, mas escrevo código, não importa quão feio possa ser. E a essência da pergunta é esta. COMO organizar um loop para que o buffer exiba os níveis de opções sobre o histórico. Para que possamos então trabalhar com este histórico, verificar as hipóteses e salvar os dados. Precisamos organizar um loop competente. Acho que é aqui que a tarefa se torna interessante...... Mas eu não consigo pensar em nenhuma idéia.... como fazer isso. Sinto que é necessário se ligar aos encontros e, de alguma forma, dançar a partir deles. Mas há um problema com o cronograma. Em geral, isso se revela um grande problema .... Eu gostaria de ouvir uma opinião sobre mais detalhes. E o fato de que no buffer você precisa escrever o preço!!!! Eu não sou tão burro, acredite, para não entender.....

 
Acho que devemos esperar até o início da semana e ver se os profissionais voltam do campo e começam a aconselhar.....
 
nikelodeon:

Eu não sou realmente um programador, mas ainda escrevo código, não importa o quão torto seja. E a própria essência da questão é. COMO organizar um loop para que o buffer exiba os níveis de opções sobre o histórico. Para que possamos então trabalhar com este histórico, verificar as hipóteses e salvar os dados. Precisamos organizar um loop competente. Acho que é aqui que a tarefa se torna interessante...... Mas eu não consigo pensar em nenhuma idéia.... como fazer isso. Sinto que é necessário se ligar aos encontros e, de alguma forma, dançar a partir deles. Mas há um problema com os prazos. Em geral, isso se revela um grande problema .... Eu gostaria de ouvir uma opinião sobre mais detalhes. E o fato de que no buffer você precisa escrever o preço!!!! Eu não sou tão burro, acredite, para não entender.....

Assim, aí está, todo o laço está no lugar e organizado corretamente e os amortecedores se enchem.

 for(i=limit; i>=0; i--){  
      if ((Close[i+5]>Level1)&&(Open[i+5]>Level1)&&(Close[i]>Level1)&&(Open[i]>Level1)&&(Close[i+1]>Level1)&&(Open[i+1]>Level1)&&(Close[i+2]>Level1)&&(Open[i+2]>Level1)&&(Close[i+3]>Level1)&&(Open[i+3]>Level1)&&(Close[i+4]>Level1)&&(Open[i+4]>Level1)) qLevel1=Level1+EnterUP;  
      if ((Close[i+5]<Level1)&&(Open[i+5]<Level1)&&(Close[i]<Level1)&&(Open[i]<Level1)&&(Close[i+1]<Level1)&&(Open[i+1]<Level1)&&(Close[i+2]<Level1)&&(Open[i+2]<Level1)&&(Close[i+3]<Level1)&&(Open[i+3]<Level1)&&(Close[i+4]<Level1)&&(Open[i+4]<Level1)) qLevel1=Level1-EnterDw;  
      if ((Close[i+5]>Level2)&&(Open[i+5]>Level2)&&(Close[i]>Level2)&&(Open[i]>Level2)&&(Close[i+1]>Level2)&&(Open[i+1]>Level2)&&(Close[i+2]>Level2)&&(Open[i+2]>Level2)&&(Close[i+3]>Level2)&&(Open[i+3]>Level2)&&(Close[i+4]>Level2)&&(Open[i+4]>Level2)) qLevel2=Level2+EnterUP;  
      if ((Close[i+5]<Level2)&&(Open[i+5]<Level2)&&(Close[i]<Level2)&&(Open[i]<Level2)&&(Close[i+1]<Level2)&&(Open[i+1]<Level2)&&(Close[i+2]<Level2)&&(Open[i+2]<Level2)&&(Close[i+3]<Level2)&&(Open[i+3]<Level2)&&(Close[i+4]<Level2)&&(Open[i+4]<Level2)) qLevel2=Level2-EnterDw;  
      if ((Close[i+5]>Level3)&&(Open[i+5]>Level3)&&(Close[i]>Level3)&&(Open[i]>Level3)&&(Close[i+1]>Level3)&&(Open[i+1]>Level3)&&(Close[i+2]>Level3)&&(Open[i+2]>Level3)&&(Close[i+3]>Level3)&&(Open[i+3]>Level3)&&(Close[i+4]>Level3)&&(Open[i+4]>Level3)) qLevel3=Level3+EnterUP;  
      if ((Close[i+5]<Level3)&&(Open[i+5]<Level3)&&(Close[i]<Level3)&&(Open[i]<Level3)&&(Close[i+1]<Level3)&&(Open[i+1]<Level3)&&(Close[i+2]<Level3)&&(Open[i+2]<Level3)&&(Close[i+3]<Level3)&&(Open[i+3]<Level3)&&(Close[i+4]<Level3)&&(Open[i+4]<Level3)) qLevel3=Level3-EnterDw;  
      if ((Close[i+5]>Level4)&&(Open[i+5]>Level4)&&(Close[i]>Level4)&&(Open[i]>Level4)&&(Close[i+1]>Level4)&&(Open[i+1]>Level4)&&(Close[i+2]>Level4)&&(Open[i+2]>Level4)&&(Close[i+3]>Level4)&&(Open[i+3]>Level4)&&(Close[i+4]>Level4)&&(Open[i+4]>Level4)) qLevel4=Level4+EnterUP;  
      if ((Close[i+5]<Level4)&&(Open[i+5]<Level4)&&(Close[i]<Level4)&&(Open[i]<Level4)&&(Close[i+1]<Level4)&&(Open[i+1]<Level4)&&(Close[i+2]<Level4)&&(Open[i+2]<Level4)&&(Close[i+3]<Level4)&&(Open[i+3]<Level4)&&(Close[i+4]<Level4)&&(Open[i+4]<Level4)) qLevel4=Level4-EnterDw;  
      if ((Close[i+5]>Level5)&&(Open[i+5]>Level5)&&(Close[i]>Level5)&&(Open[i]>Level5)&&(Close[i+1]>Level5)&&(Open[i+1]>Level5)&&(Close[i+2]>Level5)&&(Open[i+2]>Level5)&&(Close[i+3]>Level5)&&(Open[i+3]>Level5)&&(Close[i+4]>Level5)&&(Open[i+4]>Level5)) qLevel5=Level5+EnterUP;  
      if ((Close[i+5]<Level5)&&(Open[i+5]<Level5)&&(Close[i]<Level5)&&(Open[i]<Level5)&&(Close[i+1]<Level5)&&(Open[i+1]<Level5)&&(Close[i+2]<Level5)&&(Open[i+2]<Level5)&&(Close[i+3]<Level5)&&(Open[i+3]<Level5)&&(Close[i+4]<Level5)&&(Open[i+4]<Level5)) qLevel5=Level5-EnterDw;  
      if ((Close[i+5]>Level6)&&(Open[i+5]>Level6)&&(Close[i]>Level6)&&(Open[i]>Level6)&&(Close[i+1]>Level6)&&(Open[i+1]>Level6)&&(Close[i+2]>Level6)&&(Open[i+2]>Level6)&&(Close[i+3]>Level6)&&(Open[i+3]>Level6)&&(Close[i+4]>Level6)&&(Open[i+4]>Level6)) qLevel6=Level6+EnterUP;  
      if ((Close[i+5]<Level6)&&(Open[i+5]<Level6)&&(Close[i]<Level6)&&(Open[i]<Level6)&&(Close[i+1]<Level6)&&(Open[i+1]<Level6)&&(Close[i+2]<Level6)&&(Open[i+2]<Level6)&&(Close[i+3]<Level6)&&(Open[i+3]<Level6)&&(Close[i+4]<Level6)&&(Open[i+4]<Level6)) qLevel6=Level6-EnterDw;  
      if ((Close[i+5]>Level7)&&(Open[i+5]>Level7)&&(Close[i]>Level7)&&(Open[i]>Level7)&&(Close[i+1]>Level7)&&(Open[i+1]>Level7)&&(Close[i+2]>Level7)&&(Open[i+2]>Level7)&&(Close[i+3]>Level7)&&(Open[i+3]>Level7)&&(Close[i+4]>Level7)&&(Open[i+4]>Level7)) qLevel7=Level7+EnterUP;  
      if ((Close[i+5]<Level7)&&(Open[i+5]<Level7)&&(Close[i]<Level7)&&(Open[i]<Level7)&&(Close[i+1]<Level7)&&(Open[i+1]<Level7)&&(Close[i+2]<Level7)&&(Open[i+2]<Level7)&&(Close[i+3]<Level7)&&(Open[i+3]<Level7)&&(Close[i+4]<Level7)&&(Open[i+4]<Level7)) qLevel7=Level7-EnterDw;  
      if ((Close[i+5]>Level8)&&(Open[i+5]>Level8)&&(Close[i]>Level8)&&(Open[i]>Level8)&&(Close[i+1]>Level8)&&(Open[i+1]>Level8)&&(Close[i+2]>Level8)&&(Open[i+2]>Level8)&&(Close[i+3]>Level8)&&(Open[i+3]>Level8)&&(Close[i+4]>Level8)&&(Open[i+4]>Level8)) qLevel8=Level8+EnterUP;  
      if ((Close[i+5]<Level8)&&(Open[i+5]<Level8)&&(Close[i]<Level8)&&(Open[i]<Level8)&&(Close[i+1]<Level8)&&(Open[i+1]<Level8)&&(Close[i+2]<Level8)&&(Open[i+2]<Level8)&&(Close[i+3]<Level8)&&(Open[i+3]<Level8)&&(Close[i+4]<Level8)&&(Open[i+4]<Level8)) qLevel8=Level8-EnterDw;  
      if ((Close[i+5]>Level9)&&(Open[i+5]>Level9)&&(Close[i]>Level9)&&(Open[i]>Level9)&&(Close[i+1]>Level9)&&(Open[i+1]>Level9)&&(Close[i+2]>Level9)&&(Open[i+2]>Level9)&&(Close[i+3]>Level9)&&(Open[i+3]>Level9)&&(Close[i+4]>Level9)&&(Open[i+4]>Level9)) qLevel9=Level9+EnterUP;  
      if ((Close[i+5]<Level9)&&(Open[i+5]<Level9)&&(Close[i]<Level9)&&(Open[i]<Level9)&&(Close[i+1]<Level9)&&(Open[i+1]<Level9)&&(Close[i+2]<Level9)&&(Open[i+2]<Level9)&&(Close[i+3]<Level9)&&(Open[i+3]<Level9)&&(Close[i+4]<Level9)&&(Open[i+4]<Level9)) qLevel9=Level9-EnterDw;  
      if ((Close[i+5]>Level10)&&(Open[i+5]>Level10)&&(Close[i]>Level10)&&(Open[i]>Level10)&&(Close[i+1]>Level10)&&(Open[i+1]>Level10)&&(Close[i+2]>Level10)&&(Open[i+2]>Level10)&&(Close[i+3]>Level10)&&(Open[i+3]>Level10)&&(Close[i+4]>Level10)&&(Open[i+4]>Level10)) qLevel10=Level10+EnterUP;  
      if ((Close[i+5]<Level10)&&(Open[i+5]<Level10)&&(Close[i]<Level10)&&(Open[i]<Level10)&&(Close[i+1]<Level10)&&(Open[i+1]<Level10)&&(Close[i+2]<Level10)&&(Open[i+2]<Level10)&&(Close[i+3]<Level10)&&(Open[i+3]<Level10)&&(Close[i+4]<Level10)&&(Open[i+4]<Level10)) qLevel10=Level10-EnterDw;  
      
Buffer1[i]=qLevel1;      
Buffer2[i]=qLevel2;      
Buffer3[i]=qLevel3;      
Buffer4[i]=qLevel4;      
Buffer5[i]=qLevel5;      
Buffer6[i]=qLevel6;      
Buffer7[i]=qLevel7;      
Buffer8[i]=qLevel8;      
Buffer9[i]=qLevel9;           
Buffer10[i]=qLevel10;  
//Buffer11[i]=LevelsVerticalShift;
 }

Mas deve haver algum arquivo para este indicador. O que deveria estar nele não é conhecido.

 
nikelodeon:

Salve os valores das linhas de tendência (segmentos horizontais) para variáveis terminais, que para cada linha podem tomar a forma de elementos de matriz (se você quiser lê-los em um loop): {Linha[0][0], Linha[0][1], Linha[0][2]...}, {Linha[1][0], Linha[1][1], Linha[1][2]...}, etc. Mais um termo variável "Status 0/1" é usado para indicar a outro indicador/conselheiro quando os parâmetros de uma nova linha devem ser lidos, após o qual "Status" deve ser retornado à sua posição inicial. Se as linhas não forem lidas de uma só vez, mas conforme elas chegam, você pode fazer com apenas um conjunto de linhas[][][].
 
AlexeyVik:

Assim, aí está, todo o laço está no lugar e organizado corretamente e os amortecedores estão se enchendo.

Mas deve haver um arquivo para este indicador. O que deveria estar nele não é conhecido.

Quem faz coisas tão terríveis. O autor não pode pensar sobre isso?
 
Vinin:
Quem faz coisas tão assustadoras? O autor não pode pensar sobre isso?
E quanto a mim? Eu não sou o autor... Eu nem sequer tomei uma bebida com ele.
 
DD! Eu não consigo abrir uma janela no terminal. Está congelado até o núcleo. Alguns indicadores ficam pendurados ali e não permitem abrir a janela. Por favor, informe-me como posso ver quais indicadores estão definidos neste gráfico. Quero usá-lo como base para meu robô comercial.
Razão: