[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 440

 

Добрый всем вечер.

Подскажите пожалуста. как узнать максимальную и минимальную цену за последний час, в учебнике написано только про последние бары.

 
Очень банальный вопрос.Выставляю отложенный ордер,ставлю галочку истечение по времени,ввожу нужное время.Но когда время проходит и ордер не открывается он не удаляется.Что я делаю не так?
 
все нашел.. В журнале ничего не написанно
 
Elektronik:

Добрый всем вечер.

Подскажите пожалуста. как узнать максимальную и минимальную цену за последний час, в учебнике написано только про последние бары.


Cмотрите в Документации с объяснениями:

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

Всем привет!

Я только начинаю изучать язык MQL (прошу не судить строго).

У меня к Вам вопрос из учебника по 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()
  }
//--------------------------------------------------------------------

Программу запустил все работает.

Но я не могу понять как программа считает пункты от 10 до 19, если в операторе цикла "for(int i=20; i<=90; i=i+10)" счет идет с 20-ти, и здесь "for(int j=1; j<=9; j++)" от 1-го до 9-ти.

Объясните пожалуйста.

 
borilunad:

Закроется 1/2 лота. Если OrderLots() = 0.03, тогда закроется 0.02 и останется 0.01. А полученный Lot поставь в OrderClose() на своё место после OrderTicket(). Сейчас понятно?
понятна - спасибо, только вот ........ как это сделать :) ?
 
kostural:
понятна - спасибо, только вот ........ как это сделать :) ?


Где же понятно, если не можешь полученный Lot поставить в OrderClose() на своё место после OrderTicket()? По-другому объяснить не могу.

Функцию OrderClose() смотрите в Доке или в справке MetaEditor!

 
Pacman:

Всем привет!

Я только начинаю изучать язык MQL (прошу не судить строго).

У меня к Вам вопрос из учебника по MQL4.

Программу запустил все работает.

Но я не могу понять как программа считает пункты от 10 до 19, если в операторе цикла "for(int i=20; i<=90; i=i+10)" счет идет с 20-ти, и здесь "for(int j=1; j<=9; j++)" от 1-го до 9-ти.

Объясните пожалуйста.


Text[i+j]=Text[i] + Text[j]; // Вычисление значения

Чтож непонятного? десятки+единицы= десятки+единицы (Например: 20+5= 20+5 для примитивной машины означает 25)

Начинайте с Арифметики!

 
borilunad:


Text[i+j]=Text[i] + Text[j]; // Вычисление значения

Чтож непонятного? десятки+единицы= десятки+единицы (Например: 20+5= 20+5 для примитивной машины означает 25)

Начинайте с Арифметики!

Мне непонятно как именно получается число 10, 11, 12, ...,19.

В программе оператор цикла начинается с 20, и с 1 до 9.?

 
krutishc:
Очень банальный вопрос.Выставляю отложенный ордер,ставлю галочку истечение по времени,ввожу нужное время.Но когда время проходит и ордер не открывается он не удаляется.Что я делаю не так?


Если не возникли условия для открытия ордера, так он и не откроется. А в нужное время, expirationtime он просто удалится...Что-о у Вас с expirationTime....

expiration - Срок истечения отложенного ордера. В секундах после, прошедших после 00:00 1 января 1970 года.

Причина обращения: