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

 
coronel:

Подсказываю.

В редакторе есть классная примочка - подсказка на F1.

Выдели ругающуюся функцию и нажми F1.

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

Не упусти от своего внимания количество и качество подаваемых в функцию параметров.


Спасибо!
 
100yan:

Пожалуйста, ХОТЬ НАМЕКНИТЕ КАК корректно закрыть ордер по частям в разное время и один раз? ... Бьюсь который день...

https://www.mql5.com/ru/forum/131277/page69

Если лот позиции после частичного закрытия стал меньше, чем до закрытия, а бар, на котором произошло частичное закрытие не изменился, то больше не закрывать. Это один из множества способов закрыть часть позиции "один раз" на текущем баре.

Вы уж сами себе определите критерии, при которых позиция должна закрываться (её часть), а там уж и поможем всем миром, если что неясно будет.

 

Здравствуйте.

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

Хотелось бы через Time[], но не могу сообразить, сделал пока так: Sleep(60000*step);.

Раб.фрейм М1

extern int  step = 3;   // периодичность появления алерта мин.

static int        prevtime = 0;
//-------------------------------------------
int start()
  {
   if (Time[0] == prevtime) return(0);
   // Запомним текущий бар
   prevtime = Time[0];
//-------------------------------------

   Alert ("прошло ",step," мин.");
   
   //Sleep(60000*step);

//--------------------------------------
   return(0);
  }


 
Zar:

Здравствуйте.

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

Хотелось бы через Time[], но не могу сообразить, сделал пока так: Sleep(60000*step);.

Раб.фрейм М1

 extern int  step = 3;     // периодичность появления алерта в мин.
 datetime  LastAlertTime;

//-------------------------------------
 int start()
  {
//-------------------------------------
       if(TimeCurrent() - LastAlertTime > step*60)
        {    
          Alert ("прошло ",step," мин.");
          LastAlertTime=TimeCurrent();  
        }
//--------------------------------------
   return(0);
  }
 
coronel:

Спасибо, всё работает.
 
artmedia70:

Если лот позиции после частичного закрытия стал меньше, чем до закрытия, а бар, на котором произошло частичное закрытие не изменился, то больше не закрывать. Это один из множества способов закрыть часть позиции "один раз" на текущем баре.

Вы уж сами себе определите критерии, при которых позиция должна закрываться (её часть), а там уж и поможем всем миром, если что неясно будет.


+ sergeev - Спасибо, что откликнулись!

проблема изложена здесь https://www.mql5.com/ru/forum/131277/page69 В кратце идея такая - открываем ордер, и частями его закрываем по достижению определнных уровней ТР. Проблема в том, что торговля идет на М5 - М30, а ордер не на барах закрывается, а в гораздо более длительный период (Д1, и т.д.). По достижению ТР1 срабатывает праметр закрытия для 1-й части и т.д. Не найду решения как идентифицировать части, чтобы Не закрывать весь ордер. (первоначально мысль была Установить ТР1, но в последствии цена то гуляет, и дает сигналы закрытия для других частей...)

Заранее спасибо!

 
100yan:


+ sergeev - Спасибо, что откликнулись!

проблема изложена здесь https://www.mql5.com/ru/forum/131277/page69 В кратце идея такая - открываем ордер, и частями его закрываем по достижению определнных уровней ТР. Проблема в том, что торговля идет на М5 - М30, а ордер не на барах закрывается, а в гораздо более длительный период (Д1, и т.д.). По достижению ТР1 срабатывает праметр закрытия для 1-й части и т.д. Не найду решения как идентифицировать части, чтобы Не закрывать весь ордер. (первоначально мысль была Установить ТР1, но в последствии цена то гуляет, и дает сигналы закрытия для других частей...)

Заранее спасибо!

Создайте флаги, например.

Для ТР1 - bool TP1, для TP2 - bool TP2, и т.д. ...

Изначально их значения false.

Перед очередным закрытием делаете проверку:

if (!TP1) {код частичного закрытия первой части, после успешного закрытия пишете TP1=true}

if (!TP2) {код частичного закрытия второй части, после успешного закрытия пишете TP2=true}

... и так для всех частей...

таким образом флаги будут сигнализировать об единожды уже проведённом закрытии каждой части...

 
Как получить значение закрытия 3-го бара от нулевого?
 
ScioMe:
Как получить значение закрытия 3-го бара от нулевого?
  double Bar3Close = iClose(NULL,0,3);   
 
Спасибо, а можно так: Close[3]?
Причина обращения: