Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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.
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?
É 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
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.
Estranho, eu recebo erros quando compenso.
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.