Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1159

 
Artyom Trishkin:
Vai conseguir.
Se
Depois
Mas você terá que escrever uma ação por condição.
Se deve haver muitas ações em uma condição, escreva a mesma condição tantas vezes quantas forem necessárias para cada ação.
Mas sem parênteses...

ok. Para esclarecer.

A questão é como "remendar" para escrever uma expressão e vários operadores, com recuo, sem parênteses, como em pyton.

 
Andrey Sokolov:

Certo. Para esclarecer.

A questão é como "remendar" para escrever uma expressão e vários operadores, indentados, sem parênteses, como em pyton.

Você não pode.
Você também pode escrever seu próprio editor que irá entender e compilar corretamente.
Ou escreva-o em píton.
 
Artyom Trishkin:
Você não pode.

Como você pode ter certeza de que ninguém implementou isso, por exemplo, escrevendo um adesivo? Perdoe a criticidade da abordagem.

 
Artyom Trishkin:
Ele vai entender.
Se
Depois
Mas você terá que escrever uma ação por condição.
Se deve haver muitas ações em uma condição, escreva a mesma condição tantas vezes quantas forem necessárias para cada ação.
Mas sem parênteses...

Tudo é possível. Você pode até mesmo fazer isso sem ;

#define  DO {
#define  END };
#define  DONE }
#define  IT(x) x;
#define  IF if (
#define  THEN ) {
#define  ENDIF };

IT(datetime time0)
IT(int ticket)

int OnInit()
DO
   IT(time0=iTime(_Symbol,_Period,0))
   IT(ticket=-1)
   IT(return(INIT_SUCCEEDED))
END

void OnDeinit(const int reason) DO IT(return) DONE

void OnTick()
DO
   IF time0!= iTime(_Symbol,_Period,0) THEN
      IT(time0 = iTime(_Symbol,_Period,0))
      IF ticket != -1 THEN 
         IT(CloseMyOrder())
      ENDIF   
      IT(ticket = OpenRandomOrder())
   ENDIF
END

Em 90-s conheci um cara, que tentou "escrever em C como em Modul" com macros e pré-processador. Pela mesma razão - ele gostava da Modula e seus projetos eram C...

 
Maxim Kuznetsov:

tudo é possível, mesmo sem ;

Nos anos 90, conheci um cara que tentou "escrever em C como em Modula" com macros e um pré-processador adicional. Pela mesma razão - ele gostava da Modula e seus projetos eram C...

bom exemplo, mas parece ser chinês em eslavo antigo

ZS: sim! BASIC - parece o BASIC!!!


e aqui vai uma pergunta... os objetivos são alcançados e o que dizer do uso de código pronto, não escreva tudo do zero? pois se você escreve do zero, então por que MQL ? - Você precisa escrever em um idioma de terceiros, e a única coisa que resta é fazer um conector para negociação via MT

 
Maxim Kuznetsov:

tudo é possível, mesmo sem ;

Nos anos 90, conheci um cara que tentou "escrever em C como em Modula" com macros e um pré-processador adicional. Pela mesma razão - ele gostava da Modular e seus projetos eram C...

obrigado

A questão é mais sobre como remover parênteses, e não substituí-los. Para que eles sejam "indentados" como em pyton.

 
Andrey Sokolov:

Como você pode ter certeza de que ninguém implementou isso, por exemplo, escrevendo um adesivo? Desculpe pela abordagem crítica.

Escreva.

 
Andrey Sokolov:

obrigado

A questão é mais sobre como remover os parênteses, não substituí-los. Para que eles sejam "indentados" como em pyton.

Provavelmente seria melhor escrever em python. Por que você precisa do MQL como uma linguagem em C? Ela tem sua própria sintaxe, em pitão você está acostumado a ela.

 
Maxim Kuznetsov:

Tudo é possível. Você pode até mesmo fazer isso sem ;

Portanto, está substituindo um personagem por outra palavra, o que é ainda pior. E ele precisa substituí-lo por espaços.

 
Artyom Trishkin:

Portanto, está substituindo um personagem por outra palavra, o que é ainda pior. E ele precisa substituí-lo por espaços.

Existem macro-processadores. O m4 vem à mente.

Se você realmente quiser coçar sua mão esquerda com o calcanhar direito nas costas, você pode. Adicione macros, passe amostras através do pré-processador e alimente o resultado para o compilador.

Eu não entendo a necessidade de fazê-lo, como todos os outros. Mas se uma pessoa realmente quiser, você pode. O editor não o entenderá, e apreciaremos a persistência e a fuga da fantasia.

Razão: