Хранилище собственных творений: индикаторы, скрипты, советники, в общем, все, на что муза вдохновила. Так же полезное ПО, взятое из открытых источников в Интернет.
Бонус за сообщение 0.4$
Ответственный Модератор - Рэндом
Сообщений: 44
•
1, 2, 3, 4, 5
Полезные функции и др. в помощь разработчику экспертов
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 раз.
Кто сейчас на форуме?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55
Права доступа к форуму
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения