Como alterar o valor de uma variavel apenas 1x ?

 

Criei um Breakeven e estou tentando executa-lo apenas quando uma determinada variavel for false e existir uma ordem aberta. 
O problema é que esta variavel é sempre false pois o tick sempre pega o default que ela foi definida, por isso, estou procurando uma maneira de alterar esta variavel apenas 1x até que não haja ordem aberta.

Como faço isso ?


bool BKE_EXECUTE = false

//executa breakeven
if(PositionsTotal() > 0 && !BKE_EXECUTE){
   startBreakeven();
   BKE_EXECUTE = true; //breakeven executado
}else if(PositionsTotal() == 0 && BKE_EXECUTE){
   BKE_EXECUTE = false; //breakeven não executado - não ha ordens abertas
}
 
Fernando Paiva:

Criei um Breakeven e estou tentando executa-lo apenas quando uma determinada variavel for false e existir uma ordem aberta. 
O problema é que esta variavel é sempre false pois o tick sempre pega o default que ela foi definida, por isso, estou procurando uma maneira de alterar esta variavel apenas 1x até que não haja ordem aberta.

Como faço isso ?


https://www.mql5.com/pt/docs/basis/variables/static

Documentação sobre MQL5: Elementos Básicos da Linguagem / Variáveis / Variáveis Estáticas
Documentação sobre MQL5: Elementos Básicos da Linguagem / Variáveis / Variáveis Estáticas
  • www.mql5.com
Variáveis Estáticas - Variáveis - Elementos Básicos da Linguagem - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
Fernando Paiva:

Criei um Breakeven e estou tentando executa-lo apenas quando uma determinada variavel for false e existir uma ordem aberta. 
O problema é que esta variavel é sempre false pois o tick sempre pega o default que ela foi definida, por isso, estou procurando uma maneira de alterar esta variavel apenas 1x até que não haja ordem aberta.

Como faço isso ?


static bool BKE_EXECUTE = false
 
Fernando Paiva:

Criei um Breakeven e estou tentando executa-lo apenas quando uma determinada variavel for false e existir uma ordem aberta. 
O problema é que esta variavel é sempre false pois o tick sempre pega o default que ela foi definida, por isso, estou procurando uma maneira de alterar esta variavel apenas 1x até que não haja ordem aberta.

Como faço isso ?


outra alternativa eh definir a variavel como global declarando a mesma fora da funcao.