[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 664

 
Mathemat:

Это не я отменял, а админы сайта. Я - всего лишь модератор форума. У меня нет доступа к движку форума.

А проблема с Volfram'ом была не в уведомлениях или их отсутствии, а в том, что он несколько раз разместил один и тот же пост в разных ветках (не считая ветки, созданной им самим).

Я не имел в виду лично Вас (вообще не представляю кто и за что отвечает на форуме).

За все время (давно и не очень) я подписался наверное на несколько десятков различных веток, задавал там свои вопросы.

Сегодня у меня нет ни малейшего представления ответил ли мне "там" кто-нибудь или нет.

Эта ветка - единственная, за которой еще более-менее слежу. Поэтому вполне возможно что если я "сразу"

не получил ответ на другой ветке, я задам его здесь, повторно. Наверное и другие также.

- С чем связано отключение уведомлений? Админы борются с клиентами МТ4?

 
 extremumprice.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
extern int Quant_Bars=30;                       // Количество баров
//--------------------------------------------------------------------
int start()                                     // Спец. функция start
  {
   int i;                                       // Номер бара 
   double Minimum=Bid,                          // Минимальная цена
          Maximum=Bid;                          // Максимальная цена
 
   for(i=0;i<=Quant_Bars-1;i++)                 // От нуля (!) до..
     {                                          // ..Quant_Bars-1 (!)
      if (Low[i]< Minimum)                      // Если < известного
         Minimum=Low[i];                        // то оно и будет мин
      if (High[i]> Maximum)                     // Если > известного
         Maximum=High[i];                       // то оно и будет макс
     }
   Alert("За последние ",Quant_Bars,            // Вывод на экран  
         " баров Min= ",Minimum," Max= ",Maximum);
   return;                                      // Выход из start()
  }
//--------------------------------------------------------------------

Здравствуйте. Подскажите пожалуйста, где ошибка: в критерии Buy вставляю Ask > Maximum, в критерии Sell Bid < Minimum. Открывается только Buy. Если я вообще не то делаю, скажите, как можно вставить в критерии условие выбора самой низкой и самой высокой цены на определённом количестве баров? Догадываюсь, что из-за того, что Ask>Bid, но не уверен.

 
dimon74:
Да. Вы правильно поняли задачу. Единственное, что хочу заметить в п.5 установить новый отложенный ордер, исходя из того что просто закрылась позиция. Спасибо!

Ну так вот логика:

1. устанавливаете отложенный ордер с магиком, допустим 101 и сбрасываем флаг преобразования ордера в позицию, ну допустим ConvOrd=false;

2. проверяем появилась ли позиция с магиком 101, если да, устанавливаем флаг преобразования ConvOrd=true;

3. проверяем ConvOrd на истинность и если ConvOrd==true,
проверяем существование позиции с магиком 101 и если её нет -
значит она уже закрыта

{сбрасываем флаг ConvOrd=false; устанавливаем новый отложенный;}

Думаю, можно и без флагов обойтись...

 
eugggy:

Здравствуйте. Подскажите пожалуйста, где ошибка: в критерии Buy вставляю Ask > Maximum, в критерии Sell Bid < Minimum. Открывается только Buy. Если я вообще не то делаю, скажите, как можно вставить в критерии условие выбора самой низкой и самой высокой цены на определённом количестве баров? Догадываюсь, что из-за того, что Ask>Bid, но не уверен.

Не стал вдумываться, но почему и Maximum и Minimum равны Bid ? А где Ask ?
 
artmedia70:
Не стал вдумываться, но почему и Maximum и Minimum равны Bid ? А где Ask ?
Переписал из учебника, там так было, только не для открытия ордеров. То есть если Ask вставить будет работать?
 
eugggy:
Переписал из учебника, там так было, только не для открытия ордеров. То есть если Ask вставить будет работать?
Покажите ваш код, а то гадаем на кофейной гуще...
 
artmedia70:
Нет, не будет. У вас на каждом тике переменным Maximum и Minimum присваиваются новые значения цены Bid, а вам нужно найти максимальную и минимальную цены за заданный промежуток времени, так ведь?
Абсолютно верно. Найти и сравнить их с нынешней ценой. Условно говоря, если цена больше локального максимума - покупаем, ниже минимума - продаём.
 
eugggy:
Абсолютно верно. Найти и сравнить их с нынешней ценой. Условно говоря, если цена больше локального максимума - покупаем, ниже минимума - продаём.
Да я уже вгляделся в код, а то по диагонали смотрел... :))
Уже подправил свой ответ - попросил код выложить...
 
artmedia70:
Покажите ваш код, а то гадаем на кофейной гуще...
double
Min=Bid, объявление переменных

Max=Bid,

____________________________________________________________________________________________

for (i=0;i<=20-1;i++) критерии открытия

{
if (Low[i]<Min) Min=Low[i]:
if (High[i]>Max) Max=High[i];

}

if (................. &&Ask>Max)

{

Opn_B=true; // открытие Buy

}

if (................ &&Bid<Min)

{

Opn_S=true; // открытие Sell

}

___________________________________________________________________________________________

Сожалею, что в таком неприглядном виде - пришлось по памяти писать т.к код не работал и я его удалил. Но Вам, как профессионалу, должно быть понятно(я надеюсь).

____________________________________________________________________________________________

 
Считайте хаи и лоу не с нулевого бара, а с первого, на нулевом баре не может быть Бид меньше Мин.
Причина обращения: