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?
[Excluído]  

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