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 8

 
gyfto:

Da minha perspectiva, acho que Close[] pode ser passado no loop do Bars-1 a 0, e você pode coletar esta matriz em dll e trabalhar com ela lá. Eu ainda não tentei, mas está chegando.

Você não precisa passar a matriz em si. Basta passar um ponteiro para ele e seu tamanho.

https://docs.mql4.com/ru/array/ArrayCopySeries

https://docs.mql4.com/ru/array/ArrayCopyRates

 

Pessoal, por favor, me dêem uma condição simples "sepreço atual> preço aberto do bar, então executem a ação". Eu ainda não trabalhei com bares. E meu cérebro não consegue chegar às 4:49

 
oDin48:

Pessoal, por favor, me dêem uma condição simples "se preço atual> preço de barra aberta, então executem a ação". Eu ainda não trabalhei com bares. E meu cérebro não consegue chegar às 4:49



if(Close[0]>Open[0])
    {
  //Ваше действие
    }
 
Olá a todos .... como pode ser abreviada a seguinte expressão : if(a>b && a>c && a>d)
 

Saudações!

Não sei onde perguntar melhor, mas decidi não criar um novo tópico afinal de contas. Tentei encontrar um Expert Advisor na CodeBase e parece haver suficientes, mas como não sou especialista em mql, percebi que não serei capaz de alocar as funções de que preciso. Você pode me aconselhar, se houver uma simples EA que possa acompanhar as ordens já abertas (e reabertas) e se uma delas fechar (por stop loss primeiro), uma nova ordem pendente será criada com parâmetros da ordem fechada (preço, take profit, stop)?

E mais uma pergunta. Temos o indicador i-SignalOfTrade. Uma vez que os terminais móveis não fornecem notificações sonoras de eventos, este indicador pode ser muito útil. Mas tem algumas funções extras que não podem ser desativadas se você comercializar sozinho - notifica você sobre eventos como criação e modificação de ordens pendentes, etc. Ou seja, notificação de ações das quais você já tem conhecimento. Eu ficaria grato se você pudesse me ajudar a desativá-los (ou talvez haja outro indicador semelhante), eu preciso deixar apenas a notificação de ordem pendente acionando, tomando e parando de acioná-los.

 
i999i:
Olá a todos, .... como podem abreviar a seguinte expressão : if(a>b && a>c && a>d)

Você poderia escrever se((b-a)*(c-a)*(d-a)>0), mas não necessariamente mais rápido. A multiplicação lógica AND é binária, é apenas mais uma notação da mesma expressão, a única diferença é o tamanho dos tipos de variáveis. a>b é uma variável booleana, 4 bytes, enquanto b-a, se forem o dobro, então a diferença será o dobro (8 bytes), e esta multiplicação é pelo menos 2 vezes maior.

Zhunko:

Você não precisa passar a matriz em si. Basta passar um ponteiro para ele e seu tamanho.


Conselhos inestimáveis.

gyfto:

a>b é uma variável booleana, 4 bytes

Deixe-me explicar. Você pode reescrever sua expressão como se(((a>b)*(a>c)*(a>d)==1), porque as expressões entre parênteses tomam valores 0 ou 1 (e elas, por sua vez, são definidas no pré-compilador como falsas e verdadeiras).
 
gyfto:

Você poderia escrever se((b-a)*(c-a)*(d-a)>0), mas não necessariamente mais rápido. A multiplicação lógica AND é binária, é apenas mais uma notação da mesma expressão, a única diferença é o tamanho dos tipos de variáveis. a>b é uma variável booleana, 4 bytes, e b-a, se forem o dobro, então a diferença será o dobro (8 bytes), e esta multiplicação é pelo menos 2 vezes maior.


Conselhos inestimáveis.


gyfto:

Você pode escrever se((b-a)*(c-a)*(d-a)>0), mas não tem certeza de que vai funcionar mais rápido. A multiplicação lógica AND é binária, é apenas mais uma notação da mesma expressão, a única diferença é o tamanho dos tipos de variáveis. a>b é uma variável booleana, 4 bytes, e b-a, se forem o dobro, então a diferença será o dobro (8 bytes), e esta multiplicação é pelo menos 2 vezes maior.


Conselhos inestimáveis.

obrigado pela dica .... existe alguma outra forma de calcular o menor e o maior valor de a,b,c?
 
i999i:

Obrigado pela dica .... Existe alguma outra forma de calcular os menores e maiores valores de a,b,c?


MathMax(MathMax(a,b),c) e vice versa MathMin. Se quatro valores, então int max = MathMax(MathMax(x1, x2), MathMax(x3, x4)). Se os valores são uma carga de carro, forme uma matriz através do ArrayMaximum também.
 
gyfto:

MathMax(MathMax(a,b),c) e vice versa MathMin. Se quatro valores, então int max = MathMax(MathMax(x1, x2), MathMax(x3, x4)). Se você precisar formar um array através do ArrayMaximum também.
.

você terá que usar o ArrayMaximum, existem dezenas de valores ....a O ArrayMaximum será mais rápido que isso - a>b && a>c && a>d
 
i999i:

obrigado pelo conselho .... há alguma outra maneira de calcular os menores e maiores valores de a,b,c?


Primeiro, diga-me por que você precisa disso. Você precisa saber a razão. É apenas por diversão e interesse, ou há algum propósito por trás disso?