E vamos fazer um "desenho animado" (multicurrency) - página 4

 
rid писал(а) >>

talvez um destes sirva, -

A função PriceOpenLastPos().
Esta função retorna o preço aberto da última posição aberta. A seleção das posições a serem levadas em consideração é especificada por parâmetros externos:
sy - Nome do instrumento de mercado. Se este parâmetro for definido, a função considerará apenas as posições do símbolo especificado. O valor padrão - "" significa qualquer instrumento de mercado. O valor NULL significa o instrumento atual.
op - Operação comercial, tipo de posição. Valores válidos: OP_BUY, OP_SELL ou -1. O valor padrão -1 significa qualquer posição.
mn - Identificador de posição, MagicNumber. O valor padrão -1 significa qualquer identificador.

https://forum.mql4.com/ru/11287/page24

Obrigado, eu vou tentar, esta função também funciona no indicador?

 

Não sei dizer. Afinal de contas, o indicador não abre posições . Por que o indicador precisa do preço das posições abertas ou fechadas?

Ela tem outras tarefas.

Acho que funcionará também no indicador.

 
rid писал(а) >>

Não sei dizer. Afinal de contas, o indicador não abre posições . Por que o indicador precisa do preço das posições abertas ou fechadas?

Ela tem outras tarefas.

Acho que funcionará também no indicador.

Você sabe como inserir corretamente esta função no indicador?

Ao compilar, o editor gera um erro no primeiro colchete e nas variáveis seguintes.

double PriceOpenLastPos( string sy="", int op=-1, int mn=-1) {
data/hora t;
duplo r=0;
int k=OrdensTotal();

se (sy=="0") sy=Símbolo();
para (i=0; i<k; i++) {
se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy ||| sy==") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
se (op<0 || OrderType()==op) {
se (mn<0 || OrderMagicNumber()==mn) {
se (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrdemPreço Aberto();
}
}
}
}
}
}
}
retorno(r);
}
}

(' - definição de função inesperada D:\MT4=indicadores D:\MT4=indicadores D:\MT4 (627, 24)
'sy' - variável não definida D:MT4\experts\Astrea.mq4 (632, 7)
etc.

 

É difícil dizer. Eu não sou especialista em índices.

E não entendo porque o preço de abertura do pedido deve ser considerado no indicador.

Você tem certeza de que este indicador específico é necessário para seus propósitos?

Talvez fosse mais fácil implementar as funções que você precisa em uma EA separada que leve em conta as ordens?

 
rid писал(а) >>

É difícil dizer. Eu não sou especialista em índices.

E não entendo porque o preço aberto do pedido deve ser considerado no indicador.

Você tem certeza de que este indicador específico é necessário para seus propósitos?

Talvez fosse mais fácil implementar as funções necessárias em uma EA separada que considerará as ordens?

Eu implemento a lógica de geração de sinais comerciais em um indicador e envio o sinal gerado para a EA através de uma variável global para abrir/fechar ordens.

Eu preciso do preço aberto de uma ordem para tomar algumas decisões e é por isso que estou tentando resolver este problema. Eu tenho um indicador dinâmico, você só pode depurá-lo em uma demonstração ou em modo de visualização em um testador.

 

Agora inseri esta função no primeiro peru que encontrei (ATR) e tudo isso foi cumprido.

(1 advertência apenas, como deve ser).

E em que parte do código você insere esta função? Ele deve ser inserido logo no final do código, fora da função START.

E então, na função START, chame-o para calcular seu

 
rid писал(а) >>
Acabei de colar esta função no primeiro peru disponível (ATR) e tudo isso foi cumprido.

Como foi inserido? Todo o texto acima, um para um, ou como uma subfunção vazia?

 
Um a um.
 
rid писал(а) >>
>> Um a um.

Estranho, eu recebo erros quando compenso.

 
rid писал(а) >>

Agora inseri esta função no primeiro peru que encontrei (ATR) e tudo isso foi cumprido.

(1 advertência apenas, como deve ser).

E em que parte do código você insere esta função? Ele deve ser inserido logo no final do código, fora da função START.

Você deve chamá-lo na função START para fazer cálculos.

Eu o fiz, eu o inseri fora da função inicial, e a compilação foi feita.

>> Obrigado.

Razão: