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 77

 
Sepulca:

Trolling you)))) Você tem uma personalidade carismática))))
Obrigado pelo elogio, gostaria de saber de onde tudo isso vem.
 
bistreevseh:
Acho que esta é a parte do código que pode causar o problema, muito obrigado de antemão.


Logo no topo da minha cabeça

se Work=FALSE, a EA não funcionará.

A EA não funcionará se houver pelo menos uma ordem pendente, não há verificação no MAGIC.

Você está recebendo alguma resposta?

[Excluído]  
MisterD:

Não funciona, porque as variáveis, que você quer fixar a um nível global, ou seja, antes da função Iniciar... Por exemplo, estes e assim por diante.... " FiksiruemUp = True; // fix " e "iksiruemUp = False; // reset"
Se você não alternar entre os prazos, deve funcionar...


Fiz isso com as variáveis, coloquei-as no nível global.

se você levar em conta o seguinte ponto:

quando o preço está acima da linha superior, ele atribui True à FiksiruemUp, após o preço ficar abaixo da linha superior e ainda acima da linha média, o que será atribuído à FiksiruemUp: True ou False?

Parece-me que nesta situação ele atribui automaticamente Falso, porque Falso foi atribuído a ele nas variáveis globais, enquanto Verdadeiro é atribuído somente quando o preço está acima da linha superior.

 
As variáveis globais são do tipo duplo e somente o dobro. Você deve ter isto em mente quando colocar um bool nas variáveis globais.
 
Sepulca:


Logo de cara

se Work=FALSE a EA não vai funcionar.

A EA não funcionará se houver pelo menos um pedido pendente, não há verificação para o MAGIC.

Isso lhe dá algum sinal?


O assessor trabalha, ou seja, abre ordens, dá alertas sobre a abertura e acionamento de tp ou sl, também não coloca pingentes
[Excluído]  
Sepulca:
As variáveis globais são do tipo duplo e somente o dobro. Você deve ter isto em mente quando colocar um bool nas variáveis globais.

e ainda assim, como deveria ser?
[Deleted]  
Sepulca:
As variáveis globais são do tipo duplo e somente o dobro. Você deve ter isto em mente quando colocar um bool nas variáveis globais.

não estamos falando aqui de GlobalVariables, estamos falando de variáveis a nível global.... releia este ponto, há uma diferença....
[Deleted]  
belck:


Fiz isso com as variáveis, coloquei-as no nível global.

se você levar em conta o seguinte ponto:

quando o preço está acima da linha superior, ele atribui True à FiksiruemUp, após o preço ficar abaixo da linha superior e ainda acima da linha média, o que será atribuído à FiksiruemUp: True ou False?

Parece-me que nesta situação ele atribui automaticamente Falso, porque lhe foi atribuído Falso nas variáveis globais, enquanto que Verdadeiro só é atribuído quando o preço está acima da linha superior.


Inicialmente, se nada for especificado a nível global, o valor será Falso.... Após a variável ser definida como True, ela terá este valor até a seguinte condição se (Ask < LineS) FiksiruemUp = False; // reset.... Se a condição for cumprida, à variável será atribuído o novo valor Falso e permanecerá assim até o momento -"quando o preço estiver acima da linha superior, atribui Fiel à FiksiruemUp" e assim por diante... Espero ter explicado claramente... :)
[Excluído]  
MisterD:

Inicialmente, se nada for especificado a nível global, o valor será Falso.... Após a variável ser definida como True, ela terá este valor até a seguinte condição se (Ask < LineS) FiksiruemUp = False; // reset.... Se a condição for cumprida, à variável será atribuído o novo valor Falso e permanecerá assim até o momento -"quando o preço estiver acima da linha superior, atribui Fiel à FiksiruemUp" e assim por diante... Espero ter explicado claramente... :)

Agora entendo. Muito obrigado.
[Deleted]  

Amigos, ajudem-me. Preciso fechar todos os pedidos em um par de moedas selecionado. Eis o que eu escrevi (parte do código da EA):

int Zakrit_vse()

{

Total=OrdensTotal();

int Vsego;

for(int i=1; i<=OrdensTotal(); i++) // Circule os pedidos, feche todos

{

se (OrderSelect(i-1,SELECT_BY_POS)==verdadeiro)

{

se (OrderSymbol()!=Symb)continuar;

Ticket=OrderTicket();

Lot=OrderLots();

Price=OrderOpenPrice();

Vsego++;

Tip=OrderType();

Alerta(Dica);

if(Dica>1)

{

OrderDelete(Bilhete);

Prov_oshibok();

continuar;

}

if(Tip==0)

{

OrderClose( Ticket,Lot, Bid,100);

Prov_oshibok();

continuar;

}

if(Tip===1)

{

OrderClose( Ticket,Lot, Ask,100);

Prov_oshibok();

continuar;

} //

}

}

Alerta(Total", ",Vsego);

int ret=MessageBox("Operação completa com sucesso",

",MB_OK|MB_ICONQUESTION|MB_TOPMOST);

if(ret==IDOK) // se a resposta for "sim

{

Imprimir("Todos os pedidos no valor de ",Vsego", fechados com sucesso;)

}

}

Mas, por alguma razão, apenas a cada segundo pedido é fechado. Se houver 6 pedidos, 3 são fechados, se houver 8-4, etc.

O que pode ser? Qual é o erro, por favor, avise?