ShockBar v.1.1
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «shockbar_v_1_1.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник включает защиту по средствам счёта, которая закрывает все позиции при превышении допустимого процента убытков. Также реализована функция трейлинг-стопа и автоматическое закрытие всех сделок по тайм-ауту. Во время тестирования отображается панель с информацией о прибыли за текущий и предыдущие дни, а также текущий баланс.
Настройки программы
| Настройка | Описание |
|---|---|
| __1__ | Режим управления лотом — Текстовая подсказка для выбора режима расчёта лота: фиксированный, мартингейл или условный. |
| MMType | Тип управления лотом — Целочисленный параметр, определяющий метод расчёта размера лота: фиксированный, с умножением или с условным пересчётом. |
| __2__ | Множитель лота — Текстовая подсказка для параметра множителя лота при увеличении объёма. |
| LotMultiplikator | Множитель лота — Коэффициент увеличения лота при следующей сделке в зависимости от выбранного режима управления. |
| __3__ | Режим фиксированного лота — Текстовая подсказка для переключателя фиксированного лота. |
| _____ | Описание фиксированного лота — Текстовая подсказка, объясняющая поведение при включённом фиксированном лоте. |
| LotConst_or_not | Фиксированный лот — Переключатель: при истине используется постоянный лот, при ложной — расчёт по проценту риска. |
| Lot | Размер лота — Фиксированный размер лота, используемый при включённом режиме постоянного лота. |
| RiskPercent | Процент риска — Процент от баланса счёта, используемый для расчёта размера лота при динамическом режиме. |
| __4__ | Тейк-профит — Текстовая подсказка для параметра уровня фиксации прибыли. |
| TakeProfit | Тейк-профит — Уровень фиксации прибыли в пунктах для открытых позиций. |
| __5__ | Шаг сетки — Текстовая подсказка для параметра расстояния между ордерами. |
| Step | Шаг сетки — Расстояние в пунктах между последовательными отложенными ордерами при наращивании позиции. |
| __6__ | Максимум сделок — Текстовая подсказка для ограничения количества одновременных позиций. |
| MaxTrades | Максимум сделок — Максимальное количество одновременно открытых позиций по символу. |
| __7__ | Стоп по средствам — Текстовая подсказка для включения защиты по средствам счёта. |
| UseEquityStop | Стоп по средствам — Включает автоматическое закрытие всех позиций при превышении убытком заданного процента от средств. |
| TotalEquityRisk | Максимальный риск средств — Процент от средств счёта, при превышении которого происходит принудительное закрытие всех позиций. |
| __8__ | Магический номер — Текстовая подсказка для идентификационного номера ордеров советника. |
| Magic | Магический номер — Целочисленный идентификатор, присваиваемый всем ордерам советника для их фильтрации. |
| __9__ | Отображение таблицы — Текстовая подсказка для переключателя отображения статистики при тестировании. |
| ShowTableOnTesting | Показывать таблицу при тестировании — Включает отображение панели с информацией о прибыли и балансе в режиме стратегий-тестера. |
| _ | Фильтр по времени — Текстовая подсказка для настройки временного фильтра торговли. |
Поиск по коду файла
double g_maxlot_80 = 0.0;
string gs_88 = "ShockBar v.1.1";
double gd_96 = 2.0;
string gs_104 = "ShockBar_";
int gi_unused_112 = 1;
extern string __1__ = " ?????? 1 - ???. 2 - ????.";
extern int MMType = 2;
bool gi_128 = TRUE;
extern string __2__ = "????????? ????. ????";
extern double LotMultiplikator = 1.667;
double gd_148;
double g_slippage_156 = 5.0;
extern string __3__ = "????????? ???:";
extern string _____ = "true - ??????????, false - ?? ???????";
extern bool LotConst_or_not = TRUE;
extern double Lot = 0.1;
extern double RiskPercent = 10.0;
double gd_200;
extern string __4__ = "??????? ? ??????? - ??";
extern double TakeProfit = 5.0;
double gd_224;
double g_pips_232 = 0.0;
double gd_240 = 10.0;
double gd_248 = 10.0;
extern string __5__ = "?????????? ?/? ????????";
extern double Step = 5.0;
double gd_272;
extern string __6__ = "??X ???-?? ???????";
extern int MaxTrades = 30;
extern string __7__ = "??????????? ??????";
extern bool UseEquityStop = FALSE;
extern double TotalEquityRisk = 20.0;
bool gi_312 = FALSE;
bool gi_316 = FALSE;
bool gi_320 = FALSE;
double gd_324 = 48.0;
bool gi_332 = FALSE;
int gi_336 = 2;
int gi_340 = 16;
extern string __8__ = "????????????? ??????";
extern int Magic = 1111111;
int gi_356;
extern string __9__ = "??????? ? ????? ??????";
extern bool ShowTableOnTesting = TRUE;
extern string _ = "(true-???.,false-????.)";
double g_price_380;
double gd_388;
double gd_unused_396;
double gd_unused_404;
double g_price_412;
double g_bid_420;
double g_ask_428;
double gd_436;
double gd_444;
double gd_452;
bool gi_460;
int g_time_464 = 0;
int gi_468;
int gi_472 = 0;
double gd_476;
int g_pos_484 = 0;
int gi_488;
double gd_492 = 0.0;
bool gi_500 = FALSE;
bool gi_504 = FALSE;
bool gi_508 = FALSE;
int gi_512;
bool gi_516 = FALSE;
int g_datetime_520 = 0;
int g_datetime_524 = 0;
double gd_528;
double gd_536;
int init() {
// код доступен только после оплаты
}
int deinit() {
return (0);
}
int start() {
// код доступен только после оплаты
}
double ND(double ad_0) {
return (NormalizeDouble(ad_0, Digits));
}
int fOrderCloseMarket(bool ai_0 = TRUE, bool ai_4 = TRUE) {
int li_ret_8 = 0;
for (int l_pos_12 = OrdersTotal() - 1; l_pos_12 >= 0; l_pos_12--) {
if (OrderSelect(l_pos_12, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == gi_356) {
if (OrderType() == OP_BUY && ai_0) {
RefreshRates();
if (!IsTradeContextBusy()) {
if (!OrderClose(OrderTicket(), OrderLots(), ND(Bid), 5, CLR_NONE)) {
Print("Error close BUY " + OrderTicket());
li_ret_8 = -1;
}
} else {
if (g_datetime_520 != iTime(NULL, 0, 0)) {
g_datetime_520 = iTime(NULL, 0, 0);
Print("Need close BUY " + OrderTicket() + ". Trade Context Busy");
}
return (-2);
}
}
if (OrderType() == OP_SELL && ai_4) {
RefreshRates();
if (!IsTradeContextBusy()) {
if (!OrderClose(OrderTicket(), OrderLots(), ND(Ask), 5, CLR_NONE)) {
Print("Error close SELL " + OrderTicket());
li_ret_8 = -1;
}
} else {
if (g_datetime_524 != iTime(NULL, 0, 0)) {
g_datetime_524 = iTime(NULL, 0, 0);
Print("Need close SELL " + OrderTicket() + ". Trade Context Busy");
}
return (-2);
}
}
}
}
}
return (li_ret_8);
}
double fGetLots(int a_cmd_0) {
double ld_ret_4;
int l_datetime_12;
switch (MMType) {
case 0:
ld_ret_4 = gd_200;
break;
case 1:
ld_ret_4 = NormalizeDouble(gd_200 * MathPow(gd_148, gi_472), gd_96);
break;
case 2:
l_datetime_12 = 0;
ld_ret_4 = gd_200;
for (int l_pos_20 = OrdersHistoryTotal() - 1; l_pos_20 >= 0; l_pos_20--) {
if (OrderSelect(l_pos_20, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == gi_356) {
if (l_datetime_12 < OrderCloseTime()) {
l_datetime_12 = OrderCloseTime();
if (OrderProfit() < 0.0) ld_ret_4 = NormalizeDouble(OrderLots() * gd_148, gd_96);
else ld_ret_4 = gd_200;
}
}
} else return (-3);
}
}
if (AccountFreeMarginCheck(Symbol(), a_cmd_0, ld_ret_4) <= 0.0) return (-1);
if (GПоказано первые 50% кода (символов: 18926)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.