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

 
SanNneK:
Você pode me dizer qual é a condição, se a tabela desceu por um ponto sequer, então todas as ordens foram fechadas?
A condição é menor ou igual a. Na ontik você atribui o preço de oferta a uma variável global. Se a oferta for menor ou igual à variável global, então ela encerra as ordens pendentes. Caso contrário, a variável global é igual à oferta.
 
Boa noite. Você poderia me dar o código para o fechamento de emergência de todas as negociações que acabaram de ser abertas?
 
Você pode me dizer como eu posso fechar todas as posições que eu quero ao mesmo tempo?
 

Desta forma, você pode fechar todas as negociações abertas (MQL4):

for(int i=OrdersTotal()-1; i>=0; i--)
   {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType()<=OP_SELL)
      {
      OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),(int)SymbolInfoInteger(OrderSymbol(),SYMBOL_SPREAD),OrderType()==OP_SELL?clrRed:clrBlue);
      }
   }
E se você quiser selecionar seletivamente, você precisa descrever a condição de seleção.
 
О.
 
Aleksei Stepanenko:

Desta forma, você pode fechar todas as negociações abertas (MQL4):

E se você quiser selecionar seletivamente, você precisa descrever a condição de seleção.

Obrigado

 
Igor Makanu:

2020.09.13 08:33:57.508 tst (EURUSD,H1) v1 = 1

2020.09.13 08:33:57.508 tst (EURUSD,H1) v2 = 1.01

2020.09.13 08:33:57.508 tst (EURUSD,H1) v3 = qwerty

2020.09.13 08:33:57.508 tst (EURUSD,H1) v4 = 3.1415

2020.09.13 08:33:57.508 tst (EURUSD,H1) v5 = 777

2020.09.13 08:33:57.508 tst (EURUSD,H1) v6 = 1

2020.09.13 08:33:57.508 tst (EURUSD,H1) v7 = 1.01

2020.09.13 08:33:57.508 tst (EURUSD,H1) v8 = qwerty

2020.09.13 08:33:57.508 tst (EURUSD,H1) v9 = 3.1415

2020.09.13 08:33:57.508 tst (EURUSD,H1) v10 = 777

2020.09.13 08:33:57.508 tst (EURUSD,H1) v11 = Valor_11

É possível fazer variáveis pré-definidas em uma função modelo para que não seja possível especificar tudo ao chamá-la? Uma simples atribuição ainda dará um erro se nem todas as variáveis forem especificadas.

#define  PRINT(VAL) Print(#VAL," = ",VAL)
template <typename T1, typename T2, typename T3, typename T4, typename T5,
          typename T6, typename T7, typename T8, typename T9, typename T10,typename T11>
void func(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
          T6 v6, T7 v7, T8 v8, T9 v9, T10 v10,T11 v11="")//не помогло, но ошибку не вызвало
{
   string s1 = (string) v1; PRINT(v1);
   string s2 = (string) v2; PRINT(v2);
   string s3 = (string) v3; PRINT(v3);
   string s4 = (string) v4; PRINT(v4);
   string s5 = (string) v5; PRINT(v5);
   string s6 = (string) v6; PRINT(v6);
   string s7 = (string) v7; PRINT(v7);
   string s8 = (string) v8; PRINT(v8);
   string s9 = (string) v9; PRINT(v9);
   string s10 = (string) v10; PRINT(v10);
   string s11 = (string) v11; PRINT(v11);
   
   printF( v1,  v2,  v3,  v4,  v5,  v6,  v7,  v8, v9,  v10, v11); // не получается, дает несоответствие типов.
   
}
//+------------------------------------------------------------------+
void OnStart()
{
   func(1, 1.01, "qwerty", 3.1415 f, 777, 1, 1.01, "qwerty", 3.1415 f, 777,"");// любой тип, но нужно указывать все 
                                                                             //переменные
   printF(1, 1.01, "qwerty", 3.1415 f, 777, 1, 1.01, "qwerty", 3.1415 f); //несоответствие типов, но можно не все 
                                                                        //переменные указывать
}
//+------------------------------------------------------------------+
void printF(string v1="", string v2="", string v3="", string v4="", string v5="",
          string v6="", string v7="", string v8="", string v9="", string v10="",string v11="")
{
Print( v1,  v2,  v3,  v4,  v5,  v6,  v7,  v8, v9,  v10, v11);
}
Документация по MQL5: Предопределенные переменные
Документация по MQL5: Предопределенные переменные
  • www.mql5.com
Для каждой выполняющейся mql5-программы поддерживается ряд предопределенных переменных, которые отражают состояние текущего ценового графика на момент запуска программы - эксперта, скрипта или пользовательского индикатора. Значение предопределенным переменным устанавливает клиентский терминал перед запуском mql5-программы на выполнение...
 
Valeriy Yastremskiy:

É possível fazer variáveis pré-definidas em uma função modelo

não, não pode.

Não consigo explicar como funcionam os modelos.... é mais ou menos como - até que tal função seja chamada, o compilador não sabe nada sobre sua existência (muitas vezes, não há sequer erros de compilação se não houver chamada)

então você chama tal função de modelo e o compilador preenche os tipos necessários e só então verifica se tudo vai funcionar corretamente

e então você faz outra chamada ao modelo com diferentes tipos de parâmetros - e o compilador cria uma nova função, ou seja, outra, ou seja, como se você escrevesse 2 funções, que fazem a mesma coisa, mas com diferentes tipos de parâmetros


whew, é assim que funciona ))))



UPD:

você pode, mas se os tipos no modelo corresponderem, aqui está um exemplo, ele funciona corretamente:

template<typename T1, typename T2>
int myfunc(T1 val1=0, T2 val2=0)
{
   return((int) (val1 + val2));
}

//+------------------------------------------------------------------+
void OnStart()
{
   int i1 = 2, i2 = 3;
   Print(myfunc(i1, i2));
   double d1 = 10.0, d2 = 30.0;
   Print(myfunc(d1, d2));
}
//+------------------------------------------------------------------+
 
Igor Makanu:

Não, você não pode.

Não consigo explicar como funcionam os modelos.... é assim - até que você chame tal função, o compilador não sabe nada sobre sua existência (muitas vezes, não há sequer erros de compilação se não houver chamada)

então você chama tal função de modelo e o compilador preenche os tipos necessários e só então verifica se tudo vai funcionar corretamente

e então você faz outra chamada ao modelo com diferentes tipos de parâmetros - e o compilador cria uma nova função, ou seja, outra, ou seja, como se você escrevesse 2 funções, que fazem a mesma coisa, mas com diferentes tipos de parâmetros


Por isso, vai ))))

E como posso saber o tipo de parâmetro de entrada?

Se eu passar um tipo de corda para um modelo e quiser processá-lo ainda mais.

Os parâmetros de entrada podem ser de até 64, qualquer um pode ter qualquer tipo, como determinar que se trata de uma cadeia ?

 
Vladimir Pastushak:

Como posso saber o tipo do parâmetro de entrada?

Se eu passar um tipo de corda para um modelo e quiser processá-lo ainda mais.

Pode haver até 64 parâmetros de entrada e qualquer um deles pode ter qualquer tipo, como posso saber que é uma cadeia?

nome datilógrafo