Discussão do artigo "Aplicar um indicador a outro" - página 2

 

Talvez eu não esteja entendendo bem a pergunta, mas tentarei dar outra ideia

indicator_applied_price

int

define o valor padrão do campo "Apply to" (Aplicar a). Você pode definir um dos valores da enumeração ENUM_APPLIED_PRICE. Se a propriedade não for definida, o valor padrão PRICE_CLOSE será aplicado

 
Rosh:

Talvez eu não esteja entendendo bem a pergunta, mas tentarei dar outra ideia

indicator_applied_price

int

define o valor padrão do campo "Apply to" (Aplicar a). Você pode definir um dos valores da enumeração ENUM_APPLIED_PRICE. Se a propriedade não for definida, o valor padrão será PRICE_CLOSE

A ideia é boa, mas é um pouco lateral (como pular na largura:).

É necessário transferir o valor do parâmetro applied_price que o usuário selecionou no indicador externo para o interno.

Por exemplo, há uma MA construída sobre os dados selecionados (esse é um indicador interno), e o valor dessa MA deve ser subtraído do preço.

Consequentemente, se PRICE_CLOSE for selecionado, a MA deverá ser construída com base nesse preço e o mesmo preço deverá ser usado na fórmula de cálculo do indicador.

1 инд
МА(app_price)
2 инд
МА(app_price)-price(app_price)
 

A partir do exemplo acima, podemos ver que o app_price é simplesmente solicitado a ser declarado como input, mas o usuário terá que especificar o parâmetro necessário duas vezes.

Uma vez em Inputs e outra em Parametrs. Isso não é bom.

Pode haver casos em que isso seja necessário, mas há casos em que isso é ruim.

 
Acho que não é fatal. Com que frequência esse problema ocorre na vida cotidiana? Uma vez pode ser especificado na inicialização.
 

Eu dou suporte ao usuário Urain. Como descobrir o que está contido na matriz price[]? Qual é exatamente o preço?

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
{

Se for impossível descobrir, então o objetivo de usar a matriz price[] também será perdido.

Esse problema surge sempre que programamos um indicador de várias moedas. Por exemplo, queremos criar um indicador de correlação entre moedas. Já temos uma matriz com preços. Esse é o price[]. Carregamos os preços do segundo instrumento. Mas de que tipo?

Teremos de trazer o parâmetro app_price para a entrada e carregar duas matrizes com preços de forma independente, ignorando price[].

Não é conveniente!

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов
  • 2010.05.17
  • Alexey Klenov
  • www.mql5.com
В последнее время возрос интерес к кластерному анализу рынка FOREX. MQL5 открывает новые возможности исследования закономерностей движения валютных пар. Важным преимуществом MQL5, по сравнению с MQL4, является возможность использования неограниченного количества индикаторных буферов. В данной статье описан пример построения мультивалютного индикатора.
 
EvgeTrofi:

Eu dou suporte ao usuário Urain. Como descobrir o que está contido na matriz price[]? O que é exatamente o preço?

E qual é a lógica nele? Não estamos ajustando, estamos apenas calculando a matriz de preços.

Mas se precisar calcular em um preço específico, use a chamada OnCalculate no primeiro formulário com app_price explicitamente fora.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
sergeev:

Por que isso é lógico? Não estamos ajustando, estamos apenas calculando em uma matriz de preços.

Mas se você precisar calcular em um preço específico, use a chamada OnCalculate no primeiro formulário com app_price explicitamente fora.


Alex, dê uma olhada no título do tópico...

Você chama um indicador a partir de um indicador que, por sua vez, chama outro indicador; todos os indicadores são construídos no OnCalculate de acordo com o esquema com "preço",

como passar para os indicadores inferiores ao chamar qual app_price é necessário.

Não é econômico carregar todo o conjunto de preços para cada indicador se o usuário tiver definido claramente um. Mas se você escolher a sobrecarga OnCalculate com o conjunto completo, será assim.

Se você aplicar uma versão reduzida do OnCalculate e, ao mesmo tempo, colocar app_price nas entradas, haverá confusão e o usuário poderá cometer um erro especificando um app_price nas entradas e outro nos parâmetros.

 

O que está faltando é a possibilidade de chamar um indicador externo usando o buffer do indicador atual.

Por exemplo, vamos supor que não haja estocástico na entrega.

Calculei a linha %K e a coloquei no buffer.

Em seguida, preciso calcular a linha %D.

E é aqui que eu chamaria um assistente externo.

Eu seria instruído a calculá-la eu mesmo usando o buffer %K.

Mas o que devo fazer?

1. se eu não souber o código desse assistente e tiver comprado esse assistente como um indicador compilado.

2. Os indicadores incorporados são contados muito mais rapidamente do que seus equivalentes MQL.

Também seria muito útil poder chamar indicadores no buffer de entrada.

Talvez tudo isso já esteja disponível, então forneça um link para a documentação.
.

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
VladMsk:

O que está faltando é a possibilidade de chamar um indicador externo usando o buffer do indicador atual.

Por exemplo, vamos supor que não haja estocástico na entrega.

Calculei a linha %K e a coloquei no buffer.

Em seguida, preciso calcular a linha %D.

E é aí que eu chamaria um assistente externo.


Você precisa desse assistente externo para cumprir essa possibilidade da documentação?


 
sergeev:


Você precisa que a máscara externa corresponda a essa possibilidade da documentação?


Alexey,
Obrigado pela atenção.
De acordo com a documentação, é necessário passar o identificador do indicador OTHER,
e eu falei sobre a possibilidade de processar o buffer do indicador atual.
Mais.
O identificador do indicador OTHER pode ser passado, mas não encontrei onde especificar qual dos buffers deve ser usado.