Como transformar uma string em Booleana?

 
Pessoal preciso de uma ajuda. 
Eu fiz uma input string para receber as expressões

Depois eu fiz uma var booleana então ficou assim

input string expressao_compra = "";
bool ex_compra = (bool) expressao_compra;

Mas não foi... Quando jogo a variável ex_compra no local onde eu digitaria minha expressão de entrada ele informa que não posso converter string em booleana

primeiro eu declarei essas duas variaveis nos inputs

depois eu amarrei elas nas linhas 54 e 55, porém lá em baixo me voltou esse erro.

Alguém sabe como poderia validar essa string?


Arquivos anexados:
 
Jefferson Dias:
Pessoal preciso de uma ajuda. 
Eu fiz uma input string para receber as expressões

Depois eu fiz uma var booleana então ficou assim

input string expressao_compra = "";
bool ex_compra = (bool) expressao_compra;

Mas não foi... Quando jogo a variável ex_compra no local onde eu digitaria minha expressão de entrada ele informa que não posso converter string em booleana

primeiro eu declarei essas duas variaveis nos inputs

depois eu amarrei elas nas linhas 54 e 55, porém lá em baixo me voltou esse erro.

Alguém sabe como poderia validar essa string?


Também estava tentando fazer isso há um tempo atrás, mas não é tão simples quanto parece, strings não podem ser tratadas como operador lógico mesmo com casting explícito. Confesso que ainda não encontrei uma forma de fazer isso. 

 
HENRIQUE ARAUJO DOS SANTOS:

Também estava tentando fazer isso há um tempo atrás, mas não é tão simples quanto parece, strings não podem ser tratadas como operador lógico mesmo com casting explícito. Confesso que ainda não encontrei uma forma de fazer isso. 

Estou quebrando a cabeça com isso já tem um tempo, e não parece ser uma coisa simples.. poderia ser né? Afinal validar uma String Booleana deveria ser tipo casting explícito
 

Olá  @Jefferson Dias!

Qual seria a expressão que a string receberia?

Seria tipo 0 ou 1, ou não? Pode me dar um exemplo?

 
Leprechaun:

Olá  @Jefferson Dias!

Qual seria a expressão que a string receberia?

Seria tipo 0 ou 1, ou não? Pode me dar um exemplo?

Um exemplo seria mediaCurta[2] < mediaLonga[2] && mediaCurta[1] > mediaLonga[1] && fechamento[1] > mediaref[1] .... Se tudo isso ocorrer me daria uma compra... E o contrário seria venda
 
Leprechaun:

Olá  @Jefferson Dias!

Qual seria a expressão que a string receberia?

Seria tipo 0 ou 1, ou não? Pode me dar um exemplo?

Porém eu quero colocar um string do tipo Input para eu poder mudar as estratégias em parâmetros de entrada.
 

Boa tarde, pessoal.

Estou tentando fazer isso, mas está dando erro, pois não é possível converter string em bool.

Alguém sabe qual seria a solução? É a mesma dúvida do nosso amigo.

input string regraPACompra = "C[1].open < C[1].close"; 

if(regraPACompra) ChamaFuncaoDeCompra();


 
Evandro Goncalves #:

Boa tarde, pessoal.

Estou tentando fazer isso, mas está dando erro, pois não é possível converter string em bool.

Alguém sabe qual seria a solução? É a mesma dúvida do nosso amigo.


Pq string? PACompra pode ser boleana sempre. Só tira os abre e fecha aspas...

A string não comparou os preços (pois é uma string). Não faz sentido isso aí (pelo menos para mim).

Abs
 
Evandro Goncalves #:

Boa tarde, pessoal.

Estou tentando fazer isso, mas está dando erro, pois não é possível converter string em bool.

Alguém sabe qual seria a solução? É a mesma dúvida do nosso amigo.


Elementos de programação básica: STRING é STRING, BOOL é BOOL.

Pelo que vejo vocês estão tentando usar o recurso de macro-substituição que algumas linguagens de programação oferecem. Isso pode ser feito através de uma Library de Parsing/Tokenizing.

Do jeito que vocês estão tentando jamais funcionará. Mágica não existe.

Vi uma vez que tem uma galera que usa uma Library para usar como pseudo-linguagem coisas como "C1<O1"  (Close do Candle anterior MENOR que Open do Candle Anterior)... mas esta é outra história...

;)

 
Flavio Jarabeck #:

Elementos de programação básica: STRING é STRING, BOOL é BOOL.

Pelo que vejo vocês estão tentando usar o recurso de macro-substituição que algumas linguagens de programação oferecem. Isso pode ser feito através de uma Library de Parsing/Tokenizing.

Do jeito que vocês estão tentando jamais funcionará. Mágica não existe.

Vi uma vez que tem uma galera que usa uma Library para usar como pseudo-linguagem coisas como "C1<O1"  (Close do Candle anterior MENOR que Open do Candle Anterior)... mas esta é outra história...

;)

Agora entendi o que ele quer...

Mas aí você, Flávio, disse tudo. Não é tão simples assim e não tem nativo no mql5.

Vlw Flávio.
 
Você pode criar uma função para isso, mas, se for para o usuário médio dos programas do metatrader, você vai fazer uma ferramenta bem inutil, se for para vc, melhor editar a linha do if.
Razão: