Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 882

 
Artyom Trishkin:
Examinar o código

Obrigado pela resposta rápida. Não quero ser indelicado, mas está perto, mas não é bem assim. Meu caso usa DRAW_COLOR_HISTOGRAM2

tem três amortecedores, dois para valores de início e fim de vela e o terceiro para armazenar a cor desta vela.

O exemplo mostrado acima usa DRAW_COLOR_HISTOGRAM , tem dois amortecedores (tamanho e cor do castiçal) e constrói barras somente a partir de "0". Um tal histograma não pode traçar a partir do nível (por exemplo, 50).

Devemos subtrair 50 do intervalo dos valores da matriz de indicadores para mudar o valor de -50 para 50, em vez de 0 para 100 como na fonte original. Ao invés do nível 50, será o nível 0. E

para organizar os histogramas acima e abaixo de 0, terei que usar dois deles, um "negativo", abaixo de 0, o outro "positivo", acima de 0. Acho que :-))

Isto, claro, também é uma opção e provavelmente é mais fácil de implementar para mim agora, mas eu quero entendê-lo e encontrar ERROR.


O que eu estou fazendo de errado? Os valores são calculados corretamente (eu os verifiquei no testador, passo a passo), o índice de cor muda corretamente, mas o próprio indicador não tem efeito, a cor não muda, não há conexão entre o índice de cor

SetIndexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX); 

e a tela. De qualquer forma, obrigado.

 

Fez mudanças, acrescentou impressões para ver as mudanças em cada tick

pode ser visto que o índice é igual ao valor verde "32768", deve ser, porque

ExtMainBuffer[i]>50

ou seja, o estocástico está acima de 50. Mas as barras do histograma ainda estão vermelhas.

Eu adicionei o arquivo com a impressão.

Arquivos anexados:
 

Usei o exemplo da Referência MQL5 como um exemplo para mim

Guia de Referência MQL5 / Indicadores Personalizados / Estilos de Indicadores em Exemplos / DRAW_COLOR_HISTOGRAM2

checou tudo, tudo como eles fazem, e não funciona!!!!
Quem sabe, por favor, informe onde o erro, o que está errado?

 
Seric29:

Eu apenas figurativamente chamei o programa de compilador, mas em geral, em que caso seria melhor?

usar muitas funções pequenas em vez de uma "grande dispersão" de código -@Ilyas aconselhou isto

 
Sergey Voytsekhovsky:

Usei o exemplo da Referência MQL5 como um exemplo para mim

Guia de Referência MQL5 / Indicadores Personalizados / Estilos de Indicadores em Exemplos / DRAW_COLOR_HISTOGRAM2

checou tudo, tudo como eles fazem, e não funciona!!!!
Quem sabe, por favor, informe onde o erro, o que está errado?

Eu lhe dei um link para aprender a trabalhar com um buffer de cores, não com um histograma. Abstrair-se do histograma e concentrar-se em como trabalhar com a cor.

 
Sergey Voytsekhovsky:

Boa noite. Tentei por muito tempo e em vão. O histograma desenha corretamente, mas a coloração em cores diferentes (acima e abaixo do nível 50) não venceu. Por favor, me diga onde eu fiz asneira. O texto abaixo, o arquivo está vinculado


A primeira coisa que me chamou a atenção foi a seqüência de amortecedores.

//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMainBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ColorHistogram_2Buffer1,INDICATOR_DATA);
   SetIndexBuffer(3,ColorHistogram_2Buffer2,INDICATOR_DATA);
   SetIndexBuffer(4,ExtHighesBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,ExtLowesBuffer,INDICATOR_CALCULATIONS);
   SetIn dexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX);

Os amortecedores devem SEMPRE ser consecutivos. Isto é, se os buffers de dados são os números 2 e 3, então o buffer de cores DEVE ser o número 4

Se este não for o único erro, então vamos olhar mais além.

 

Eu não consigo pensar direito.

Há meia hora que ando bisbilhotando e não consigo entender.

Por favor, me diga como saber o valor em rublos de 1 ponto de preço, se o tamanho do tick e seu preço são diferentes na especificação da ferramenta.

Por exemplo, se eu tiver uma variável com valor 10

é claro que para Uber são 10 rublos

rts 130 rublos

óleo 60 rublos

Como fica no código? Estou confuso, os pontos simples estão bem, mas o óleo de rts é diferente.

 
Konstantin Seredkin:

Eu não consigo pensar direito.

Há meia hora que ando bisbilhotando e não consigo entender.

Por favor, me diga como saber o valor em rublos de 1 ponto de preço, se o tamanho do tick e seu preço são diferentes na especificação da ferramenta.

Por exemplo, se eu tiver uma variável com valor 10

é claro que para Uber são 10 rublos

rts 130 rublos

óleo 60 rublos

Como fica no código? Estou confuso, os pontos simples estão bem, mas o óleo de rts é diferente.

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * volume

MQL4

 
Alexandr Sokolov:

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * volume

MQL4

A MQL5 é necessária

os futuros não são negociados em mt4


isto é o que você precisa


 
Konstantin Seredkin:

A MQL5 é necessária

os futuros não são negociados em mt4


isto é o que você precisa


Portanto, é o mesmo em mql5. É até um pouco mais extensa. Não é isso que precisamos?

SÍMBOLO_VALOR_COMERCIAL

SYMBOL_TRADE_TICK_VALUE_PROFITvalor

duplo

SÍMBOLO_COMERCIO_VALOR_LUCRO

Valor calculado do tick para posição lucrativa

duplo

SIMBOLO_TRADE_TICK_VALUE_LOSS

Valor calculado de um tick para uma posição perdida

duplo

SÍMBOLO_TAMANHO_DO_COMÉRCIO

Mudança de preço mínimo

duplo

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
Razão: