Полезные функции и др. в помощь разработчику экспертов

Хранилище собственных творений: индикаторы, скрипты, советники, в общем, все, на что муза вдохновила. Так же полезное ПО, взятое из открытых источников в Интернет.
Бонус за сообщение 0.4$
Ответственный Модератор - Рэндом

Полезные функции и др. в помощь разработчику экспертов

Сообщение Haos » 16 июл 2015, 18:45

Функция определяет достигла ли просадка депозита по открытым позициям запланированного риска (МТ4).
Функция не проверяет корректность ввода риска на предмет выхода из диапазона (1 ... 100%). Сторонние функции и переменные не используются.
Код: выделить все
bool f_OverDrawdown(double ri)
{
/*
   Функция определяет достигла ли просадка депозита по открытым позициям запланированного риска
   ri - допустимый риск по открытым сделкам (1 ... 100%)
*/
   bool Y = false;
   double dbl_ML = AccountBalance()  * ri / 100;
   if(AccountEquity() <= AccountBalance() - dbl_ML) Y = true;
   
return(Y);
}
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Полезные функции и др. в помощь разработчику экспертов

Сообщение Haos » 06 дек 2015, 21:58

Функция рассчитывает значение F2 (цифровой фильтр FATL):
Код: выделить все
double f_F2(int shi)
{
// shi - сдвиг относительно текущего бара назад
// функция рассчитывает значение F2 (цифровой фильтр FATL)
double   dblY = 0,
         dblMKF2[12];
int      i;
         
   dblMKF2[0]  = 0.478587904692;   dblMKF2[1]  = 0.379277117724;
   dblMKF2[2]  = 0.2209611454869;  dblMKF2[3]  = 0.0633622332562;
   dblMKF2[4]  = -0.0435124635048; dblMKF2[5]  = -0.0805484264105;
   dblMKF2[6]  = -0.0619243262733; dblMKF2[7]  = -0.02036290337871;
   dblMKF2[8]  = 0.01355720160666; dblMKF2[9]  = 0.02548332231989;
   dblMKF2[10] = 0.02464568413704; dblMKF2[11] = 0.000473510344313;
           
 for(i = 0; i <= 11; i++) dblY += Close[i + shi] * dblMKF2[i];

return(dblY);
}
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Полезные функции и др. в помощь разработчику экспертов

Сообщение Haos » 06 дек 2015, 21:59

Функция рассчитывает значение S2 (цифровой фильтр SATL)
Код: выделить все
double f_S2(int shi)
{
// функция рассчитывает значение S2 (цифровой фильтр SATL)
// shi - сдвиг относительно текущего бара назад
double   dblY = 0,
         dblMKS2[27];
int      i;
         
   dblMKS2[0]  = 0.1245623625238;      dblMKS2[1]  = 0.1225692825295;
   dblMKS2[2]  = 0.1186543785610;      dblMKS2[3]  = 0.1129532955802;
   dblMKS2[4]  = 0.1056655720289;      dblMKS2[5]  = 0.0970359372867;
   dblMKS2[6]  = 0.0873542022479;      dblMKS2[7]  = 0.0769300886028;
   dblMKS2[8]  = 0.0660913494946;      dblMKS2[9]  = 0.0551609571815;
   dblMKS2[10] = 0.0444472341891;      dblMKS2[11] = 0.0342350090749;
   dblMKS2[12] = 0.02476242962154;     dblMKS2[13] = 0.01623437391500;
   dblMKS2[14] = 0.00878866698955;     dblMKS2[15] = 0.002525462501680;
   dblMKS2[16] = -0.002520782458992;   dblMKS2[17] = -0.00636253842152;
   dblMKS2[18] = -0.00905025851659;    dblMKS2[19] = -0.01070097068904;
   dblMKS2[20] = -0.01141788111694;    dblMKS2[21] = -0.01138741568260;
   dblMKS2[22] = -0.01072852457424;    dblMKS2[23] = -0.00961748350852;
   dblMKS2[24] = -0.00822648900819;    dblMKS2[25] = -0.00669086955497;
   dblMKS2[26] = -0.01126738879688;                   
   
   for(i = 0; i <= 26; i++) dblY += Close[i + shi] * dblMKS2[i];

return(dblY);
}
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Полезные функции и др. в помощь разработчику экспертов

Сообщение Haos » 06 дек 2015, 22:02

Ф-ия определяет сигнал по пересечению F2 и S2 (на последнем закрытом баре). Используются две предыдущие ф-ии (f_F2, f_S2)
Код: выделить все
string f_F2S2Syg()                 
/*
   19.06.2015 г.
   Ф-ия определяет сигнал по пересечению F2 и S2 (на последнем закрытом баре)
   возвращает "UP" если F2 пересек вверх S2
   возвращает "DN" если F2 пересек вниз  S2
   возвращает "NO" если нет пересечения
   Параметры:

*/
{
double   dblF2_1,   // значение F2 на предыдущем баре
         dblF2_2,   // значение F2 два бара назад
         dblS2_1,   // значение S2 на предыдущем баре
         dblS2_2;   // значение S2 два бара назад
 
   dblF2_1 = f_F2(1);
   dblF2_2 = f_F2(2);
   dblS2_1 = f_S2(1);
   dblS2_2 = f_S2(2);
   
   if(dblF2_2 < dblS2_2 && dblF2_1 > dblS2_1) return("UP");
   if(dblF2_2 > dblS2_2 && dblF2_1 < dblS2_1) return("DN");
   
return("NO");
}
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.


Вернуться в Творческая мастерская

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron