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 35

 
oDin48:

Na verdade, a única questão é atribuir um número de barra e escrevê-lo em uma variável, que pode então ser comparada ao valor atual.

Não é necessário. Cada barra já tem seu próprio número. Tudo o que você precisa saber é em qual bar uma posição de parada foi fechada. Para que servem as variáveis? E se o Expert Advisor for reiniciado? O valor da variável será perdido. E assim, você pode encontrar a barra em que qualquer posição fechada selecionada foi fechada, a qualquer momento.

Se você tem experiência em programação, você pode entender e implementar a lógica que descrevi.

 
artmedia70:

Tudo o que você precisa saber é em que barra a posição de parada foi fechada.

Isto não é um problema, pois preciso que o primeiro e o segundo não abram no mesmo bar.

Eu escrevo algo como:

se ((Total==0)&&(Condição)) {Opn_B=verdadeiro;} //exemplo.

A segunda ordem não abre, mas se a primeira falha, ela fecha na parada e a condição aciona novamente e a segunda barra se abre, que é exatamente o que eu não preciso. Mas se a próxima barra acionar o SL e a condição for cumprida, então você é bem-vindo.

Peço desculpas se estou sendo obtuso.

Mas a maneira como vejo as coisas é a seguinte.

1) Ao abrir uma ordem, devemos escrever o número da barra em que ela é aberta em uma variável.

2) Quando o número de pedidos for 0. Verificamos o lucro do último comércio (já escrito).

3) Ao abrir o próximo pedido com base no sinal, verificamos se o pedido anterior foi rentável ou não. Se estava perdendo, verificamos os números da barra atual e da barra, a última ordem foi aberta. Se eles não corresponderem, abrimos um pedido. (não há problema para escrever)

Conclusão: Só preciso de uma função que me permita saber o número da barra para poder atribuir este valor à variável no passo 1 e compará-lo com o valor atual (número da barra) no passo 3.

 
oDin48:

Isto não é um problema, pois preciso que o primeiro e o segundo não abram no mesmo bar.

Eu escrevo algo como:

se ((Total==0)&&(Condição)) {Opn_B=verdadeiro;} //exemplo.

A segunda ordem não abre, mas se a primeira falha, ela fecha na parada e a condição aciona novamente e a segunda barra se abre, que é exatamente o que eu não preciso. Mas se a próxima barra acionar o SL e a condição for cumprida, então você é bem-vindo.

Peço desculpas se estou sendo obtuso.

Mas a maneira como vejo as coisas é a seguinte.

1) Ao abrir uma ordem, devemos escrever o número da barra em que ela é aberta em uma variável.

2) Quando o número de pedidos for 0. Verificamos o lucro do último comércio (já escrito).

3) Ao abrir o próximo pedido com base no sinal, verificamos se o pedido anterior foi rentável ou não. Se estava perdendo, verificamos os números da barra atual e da barra, a última ordem foi aberta. Se eles não corresponderem, abrimos um pedido. (não há problema para escrever)

Conclusão: Só preciso de uma função que me permita saber o número da barra para poder atribuir este valor à variável no passo 1 e compará-lo com o valor atual (número da barra) no passo 3.

De qualquer forma... vá para o fio do Igor Kim - você encontrará muitos exemplos lá. Ainda não tenho tempo, desculpe...
 
artmedia70:
Usar um delta de 2 - 3 pontos ao verificar o desvio de MASK


Eu adiciono pips a cada um? É possível programar estes dois ou três pontos?
 
oDin48:

Isto não é um problema, pois preciso que o primeiro e o segundo não abram no mesmo bar.

Eu escrevo algo como:

se ((Total==0)&&(Condição)) {Opn_B=verdadeiro;} //exemplo.

A segunda ordem não abre, mas se a primeira falha, ela fecha na parada e a condição aciona novamente e a segunda barra se abre, que é exatamente o que eu não preciso. Mas se a próxima barra acionar o SL e a condição for cumprida, então você é bem-vindo.

Peço desculpas se estou sendo obtuso.

Mas a maneira como vejo as coisas é a seguinte.

1) Ao abrir uma ordem, devemos escrever o número da barra em que ela é aberta em uma variável.

2) Quando o número de pedidos for 0. Verificamos o lucro do último comércio (já escrito).

3) Ao abrir o próximo pedido com base no sinal, verificamos se o pedido anterior foi rentável ou não. Se estava perdendo, verificamos os números da barra atual e da barra, a última ordem foi aberta. Se eles não corresponderem, abrimos um pedido. (não há problema para escrever)

Conclusão: Só preciso de uma função que me permita saber o número da barra para poder atribuir este valor à variável no passo 1 e compará-lo com o valor atual (número da barra) no passo 3.



Esta função retorna o número de barra da última posição fechada

Ligando para

if(Total==0 && NumberOfBarCloseLastPos()!=0)
   {
   Opn_B=true;
   }
 

Muito obrigado. Eu já pensava que estava explicando algo errado, sabendo que a solução deveria ser simples.

Você tem sido muito útil.

 

Qualquer pessoa pode me dizer, ao escrever scripts ou um EA, qual é o número máximo de elementos que eu posso encaixar em uma matriz?

 
Dikii:

Alguém pode me dizer, ao escrever um roteiro ou um EA, qual é o número máximo de elementos que eu posso enfiar em uma matriz?

A partir de uma linha vizinha........

 

caras!

como especificar na OrdemEnviar o prazo de validade da ordem pendente "hoje".

 
smartemiy:

caras!

como especificar na OrdemEnviar o prazo de validade da ordem pendente "hoje".

Mais corretamente seria DeleteOrder na hora marcada. Raramente o CD executa esta expiração e apaga a ordem sob o comando do EA!