Полезные функции от KimIV - страница 78

 
granit77 писал(а) >>

Сколько людей, столько мнений. Душу греет, что мое совпало с мнением komposter'а по ссылке Prival'а.

Как предложение: в Вашем случае при наличии в советнике двух магиков можно использовать магик, сгенерированный для пары и ТФ, и его отрицательное значение.

Хорошая мысль...спб..

   if(UpDn)
      Magic_№=GetMagic(StringConcatenate("Expert",Symbol()),TF);
   else
      Magic_№=-GetMagic(StringConcatenate("Expert",Symbol()),TF);
 
скажите пожалуйста, а есть ли какой нибудь скрипт, чтоб имитировал открытие позиций в тестере. например есть система ручной торговли, я вешаю на график нужные индикаторы и запускаю какой нибудь советник - ну чтобы тестер работал. вот сформировался сигнал от индюков и я кидаю скрипт на график, а он имитирует открытие сделки. и так на каждый сигнал. а потом смотрю прибыльная стратегия или нет
 
berserker >>:
скажите пожалуйста, а есть ли какой нибудь скрипт, чтоб имитировал открытие позиций в тестере. например есть система ручной торговли, я вешаю на график нужные индикаторы и запускаю какой нибудь советник - ну чтобы тестер работал. вот сформировался сигнал от индюков и я кидаю скрипт на график, а он имитирует открытие сделки. и так на каждый сигнал. а потом смотрю прибыльная стратегия или нет

Смотрите статьи Визуализация тестирования. Ручная торговля. и Визуальное тестирование прибыльности индикаторов и сигналов.

 
berserker >>:
скажите пожалуйста, а есть ли какой нибудь скрипт, чтоб имитировал открытие позиций в тестере. например есть система ручной торговли, я вешаю на график нужные индикаторы и запускаю какой нибудь советник - ну чтобы тестер работал. вот сформировался сигнал от индюков и я кидаю скрипт на график, а он имитирует открытие сделки. и так на каждый сигнал. а потом смотрю прибыльная стратегия или нет
https://forum.mql4.com/ru/20511
 
Хочу получить значение хая цены с времени x(часы минуты) по время у(часы минуты).В текущий момент времени меня интересует значение этого диапазона, если он прошел, а если нет то предыдущего. Нет ли у кого каких либо наработок такого типа.
double HourlyHigh(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double max;
 max=0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>=EndHour+1)
  for (int i=2880;i>=0;i--)
   if (TimeHour(iTime(_smb,1,i))>=StHour&&TimeHour(iTime(_smb,1,i))<=EndHour&&max<iHigh(_smb,1,i)&&TimeDay(iTime(_smb,1,i))==TimeDay(iTime(_smb,1,0)))
       max=iHigh(_smb,1,i);//&&TimeMinute(iTime(_smb,1,i))>=StMin&&TimeMinute(iTime(_smb,1,i))<=EndMin
 else
    for (i=2880;i>=0;i--)
   if (TimeHour(iTime(_smb,1,i))>=StHour&&TimeHour(iTime(_smb,1,i))<=EndHour&&TimeDay(iTime(_smb,1,i))==TimeDay(iTime(_smb,1,i-1440)))
       max=iHigh(_smb,1,i);
   return (max);     
}
double HourlyLow(string _smb,int StHour,int StMin,int EndHour,int EndMin)
{
 int _hour,_minute;
 double min;
 min=9999.0;
 _hour=TimeHour(iTime(_smb,1,0)); 
 if (_hour>=EndHour+1)
  for (int i=2880;i>=0;i--)
   if (TimeHour(iTime(_smb,1,i))>=StHour&&TimeHour(iTime(_smb,1,i))<=EndHour&&TimeDay(iTime(_smb,1,i))==TimeDay(iTime(_smb,1,0)))
       min=iLow(_smb,1,i);
 else
    for (i=2880;i>=0;i--)
   if (TimeHour(iTime(_smb,1,i))>=StHour&&TimeHour(iTime(_smb,1,i))<=EndHour&&min>iLow(_smb,1,i)&&TimeDay(iTime(_smb,1,i))==TimeDay(iTime(_smb,1,i-1440)))
       min=iLow(_smb,1,i);
  return (min);
  
}
Я что-то попробовал, но на выходе почему-то получаю 0. Тут только часы. И ищется и хай и лоу.
 
zfs писал(а) >>
Хочу получить значение хая цены с времени x(часы минуты) по время у(часы минуты).В текущий момент времени меня интересует значение этого диапазона, если он прошел, а если нет то предыдущего. Нет ли у кого каких либо наработок такого типа. Я что-то попробовал, но на выходе почему-то получаю 0. Тут только часы. И ищется и хай и лоу.

А применить функции iHighest и iLowest не пробовали? Вам остается перевести нужное время в индексы и вы получите искомый результат...

 
kharko >>:

А применить функции iHighest и iLowest не пробовали? Вам остается перевести нужное время в индексы и вы получите искомый результат...

Спасибо. Попробую.

 
granit77 >>:

Сколько людей, столько мнений. Душу греет, что мое совпало с мнением komposter'а по ссылке Prival'а.

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

Иногда хочется переключить ТФ при работающем эксперте, а этот способ генерации сразу "запустит другой советник".


И вместо Period() стараюсь использовать extern TimeFrame, чтоб советник одинаково работал на графике любого периода.

 

И снова большой "Кхммм...".

На выходных заметил такой (для меня) неприятный моментик со временем.

StrToTime("01:25")

предполагая что ВСЕ времена расчитываются относительно времени сервера

(либо его последнего известного значения) (ну кроме TimeLocal() естественно )

Однако это оказалось не так и потратил энное количество времени зря пытаясь выяснить

причины неправильной отфильтровки... :((( век живи - век учись...


ЗЫ: пригодилась бы встроеная функция напрямую вычисляющая цену по указанному времени.

сейчас извращаюсь так:

double shvr=iLow(Symbol(),15,iBarShift(Symbol(),15,StrToTime("01:25")));
 
kombat писал(а) >>

Чтобы не гадать. что получиться... Проверьте...

Print(TimeToStr(StrToTime("01:25"),TIME_DATE|TIME_MINUTES));
Причина обращения: