[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 438

 
Pergunta muito trivial: Coloco uma ordem pendente, verifico a expiração no tempo, marco o tempo correto, mas quando o tempo se esgota e a ordem não é aberta, ela não é apagada.
 
Eu o encontrei... Não há nada escrito no diário de bordo
 
Elektronik:

Boa noite a todos.

Você pode me dizer como descobrir o preço máximo e mínimo para a última hora, o livro didático diz apenas sobre as últimas barras.


Favor consultar a documentação para uma explicação:

double valHigh = iHigh(Symbol(),PERIOD_H1,1);
double valLow  = iLow(Symbol(),PERIOD_H1,1);
 

Olá a todos!

Estou apenas começando a aprender MQL (por favor, não julgue de forma muito dura).

Eu tenho uma pergunta do tutorial MQL4.

//--------------------------------------------------------------------
// stringarray.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
extern double Level=1.3200;                     // Заданный уровень 
string Text[101];                               // Объявление массива
//--------------------------------------------------------------------
int init()                                      // Спец. ф-ия init()
  {                                             // Присвоение значений
   Text[1]="один ";            Text[15]="пятнадцать ";
   Text[2]="два ";             Text[16]="шестнадцать ";
   Text[3]="три ";             Text[17]="семнадцать ";
   Text[4]="четыре ";          Text[18]="восемнадцать ";
   Text[5]="пять ";            Text[19]="девятнадцать ";
   Text[6]="шесть ";           Text[20]="двадцать ";
   Text[7]="семь ";            Text[30]="тридцать ";
   Text[8]="восемь ";          Text[40]="сорок ";
   Text[9]="девять ";          Text[50]="пятьдесят ";
   Text[10]="десять ";         Text[60]="шестьдесят";
   Text[11]="одиннадцать ";    Text[70]="семьдесят ";
   Text[12]="двенадцать ";     Text[80]="восемьдесят ";
   Text[13]="тринадцать ";     Text[90]="девяносто";
   Text[14]="четырнадцать ";   Text[100]= "сто";
   // Вычисление значений
   for(int i=20; i<=90; i=i+10)                // Цикл по десяткам
     {
      for(int j=1; j<=9; j++)                  // Цикл по единицам
         Text[i+j]=Text[i] + Text[j];          // Вычисление значения   
     }
   return;                                     // Выход из init()
  }
//--------------------------------------------------------------------
int start()                                     // Спец. ф-ия start()
  {
   int Delta=NormalizeDouble((Bid-Level)/Point,0);// Превышение 
//--------------------------------------------------------------------
   if (Delta>=0)                                // Цена не выше уровня
     {
      Alert("Цена ниже уровня");                // Сообщение
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------------
   if (Delta<100)                               // Цена более 100
     {
      Alert("Более ста пунктов");               // Сообщение
      return;                                   // Выход из start()
     }
//--------------------------------------------------------------------
   Alert("Плюс ",Text[Delta],"pt.");            // Вывод на экран
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------

Eu iniciei o programa e ele funciona.

Não sei como pode contar de 10 a 19, se o operador de laço "for(int i=20; i<=90; i=i+10)" conta de 20 e "for(int j=1; j<=9; j++)" de 1 a 9.

Por favor, explique.

 
borilunad:

Isto fechará 1/2 do lote. Se OrderLots() = 0,03, então 0,02 fechará e 0,01 permanecerá. E coloque o lote resultante em OrderClose() em seu lugar após OrderTicket(). Está claro agora?
compreensível - obrigado, exceto ........ como fazer :) ?
 
kostural:
compreensível - obrigado, mas aqui ........ como fazer isso :) ?


Onde está claro se você não pode colocar o lote recebido em OrderClose() em seu lugar após OrderTicket()? Não posso explicar de outra forma.

Veja a função OrderClose() no Doc ou MetaEditor Help!

 
Pacman:

Olá a todos!

Estou apenas começando a aprender MQL (por favor, não julgue de forma muito dura).

Eu tenho uma pergunta do tutorial MQL4.

Eu iniciei o programa e ele funciona.

Não sei como pode contar de 10 a 19, se o operador de laço "for(int i=20; i<=90; i=i+10)" conta de 20 e "for(int j=1; j<=9; j++)" de 1 a 9.

Por favor, explique.


Texto[i+j]=texto[i] + Texto[j]; // Calculando o valor

O que não é claro? dezenas+unidades= dezenas+unidades (Por exemplo: 20+5= 20+5 em uma máquina primitiva significa 25)

Comece com Aritmética!

 
borilunad:


Texto[i+j]=texto[i] + Texto[j]; // Cálculo

O que não se deve entender? Dez+unidades = dezenas+unidades (Por exemplo: 20+5 = 20+5 para uma máquina primitiva significa 25)

Comece com Aritmética!

Não entendo como exatamente o número 10, 11, 12, ...,19 é obtido.

No programa, a declaração do loop começa com 20, e de 1 a 9?

 
krutishc:
Pergunta muito trivial. coloco um pedido pendente, verifico o tempo de validade, defino o tempo necessário, mas quando o tempo se esgota e o pedido não é aberto, ele não é apagado. o que estou fazendo de errado?


Se não houver condições para abrir um pedido, ele não será aberto. E no momento certo, será simplesmente apagado... Há algo errado com seu prazo de validadeTime....

tempo de expiração - tempo de expiração da ordem pendente. Em segundos após 00:00 de 1 de janeiro de 1970.

 
krutishc:
Pergunta muito trivial. Coloco uma ordem pendente, assinalo a caixa de tempo de expiração, digito o tempo necessário, mas quando o tempo passa e a ordem não é aberta, ela não é apagada.
Você deve verificar a especificação dos contratos. É bem possível que as ordens pendentes do GTC não sejam apoiadas.