← К каталогу
Исходный код · ID 612

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 и перейдите к оплате.

Стоимость полного кода
1 892,60₽ ≈ $23.13