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

 
vvg:


Хотел использовать эту фунцию, но столкнулся с такой ситуацией: при появлении нового экстремума ценовой уровень меняется не сразу, а остаётся старым некоторое время. Мешает при тестировании. Как исправить?

Приведите, пожалуйста, вещественные доказательства: символ, дата, время, цена. Мне хочется бы повторить
Вашу ситуацию.
 
KimIV:
vvg:


Хотел использовать эту фунцию, но столкнулся с такой ситуацией: при появлении нового экстремума ценовой уровень меняется не сразу, а остаётся старым некоторое время. Мешает при тестировании. Как исправить?

Приведите, пожалуйста, вещественные доказательства: символ, дата, время, цена. Мне хочется бы повторить
Вашу ситуацию.
Добрый вечер! Я присоединил к советнику код разрешающий ему торговать в определённый промежуток времени, но советник продолжает и дальше торговать хотя при компиляции не возникало ошибок! И не могу сделать так чтобы он торговал от волатильности рынка (открывать сделки при условии что волотильность выше 50)! Не могли бы Вы показать как это делать, а то уже сил никаких нет! За ранее спасибо!!!!
Файлы:
dmx.mq4  3 kb
 

А зачем ты свою функцию в глобальные переменные выкинул?

// Запретить эксперту торговать С и ПО
if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) )
return;

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


Файлы:
dmx_1.mq4  3 kb
 
LLIAMAH:

А зачем ты свою функцию в глобальные переменные выкинул?

// Запретить эксперту торговать С и ПО
if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) )
return;

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


Спасибо, но к сожалению без изменений
 
dimas7469:
Спасибо, но к сожалению без изменений

if ( (Hour()==20 && Minute()>=59) && (Hour()==08 && Minute()>=59) ) 
return;

Понятное дело...

if (Hour()>=21 || Hour()<=9) 
return;

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

 
todem:
для чего стоит аперсант в конце "double&"
Это говорит о том, что в функцию по ссылке передаётся массив, объявленный в переменных советника. После возврата из функции этот массив будет содержать те значения, которые данная функция в него записала.
 
Добрый день. УВажаемый KimIV. Ваш советник e-News-Lucky$ открывает стоповые ордера. Можете ли вы переделать его, чтоб открывалис лимитники? Для меня програмирование " тёмный лес":)), потому прошу у вас помощи. Буду блогодарен.
Файлы:
 

Как сделать чтобы:

если Условие1 выполнилось, то больше его не проверять, а при следующих тиках проверять Условие2 и далее?

static bool Val_max, Cl_dn, Val_min; //static or global
                                        |
//+------------------------------------------------------------------+
int start()
  {
   int j;
   double bid;                                         
   bid=Bid;                                    // Текущая цена продажи
   string
   Symb=Symbol();                               // Название фин.инстр.
double Value_max=1.0000;
double Value_min=0.9980;
double Open_1=Open[1];
double Close_1=Close[1];
//----

//--------------------------------------------------------------- 4 --

double Val=iCustom(NULL, 0, "Название Польз. Индикатора",0,0);   // Присваиваем пер. Val значение польз. индикатора
if (Условие1)
{
 Val_max=true;                  // 
 Alert("Значение инд. >= Value_max (исп. 1-е усл.)");
}
if (Условие2)
{
 Cl_dn=true;
 Alert("1 бар закрылся падением (исп. 2-е усл.)");
}
if (Условие3 && Cl_dn==true)
{
 Val_min=true;
 Alert("Значение инд. <= Value_min (исп. 3-е усл.)");
}
if (Val_max==true && Cl_dn==true && Val_min==true)
  {
   for (j = 0; j < OrdersTotal(); j++)
    {
     OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == Symbol())
      {
      if (OrderType() == OP_SELL) return(0);
      }
    }
   
   OrderSend(Symbol(),OP_SELL,0.1,NormalizeDouble(Bid,Digits),2,Bid+400*Point,Bid-400*Point,"",3,Red);  // Открытие SELL
   Val_max=false; Cl_dn=false; Val_min=false;
  }

//----
   return(0);
  }
 
Подскажите, пожалуйста, в теме есть скрипт, закрывающий все открытые ордера по достижении суммарного профита в n пунктов ?
 

Здравствуйте Игорь. Пользуюсь Вашей функцией IniFiles.mqh, для моих целей подходит отлично. Огромное спасибо.

Нет ли у Вас (готов и купить)))) того же самого но для работы с экселем? Пробовал несколько вариантов как этот https://www.mql5.com/ru/code . Но чтение из ячейки файла сопровождается явным открытием файла на рабочем столе каждый тик. Возможно ли как то программно читать данные из ячеек как в IniFiles ? Мне это нужно для чтения данных из Квика DDE.

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