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

OndaFX

ondafx-edu.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

OndaFX — это торговый советник для MetaTrader 4, написанный на языке MQL4. Программа предназначена для автоматической торговли на финансовых рынях и работает в рамках выбранного таймфрейма.

Советник анализирует ценовые данные с использованием стандартных технических инструментов MetaTrader, включая скользящие средние, полосы и среднее истинное значение диапазона (ATR). На основе этих данных формируются сигналы для открытия и закрытия позиций.

Продукт поддерживает отдельные настройки для ордеров BUY и SELL, включая различные объёмы сделок, уровни тейк-профита и стоп-лосса. Встроенный текстовый интерфейс отображает информацию о текущих позициях, прибыльности и параметрах работы советника прямо на графике.

Торговые операции выполняются через стандартные средства MetaTrader 4 с контролем проскальзывания и магическими номерами для идентификации ордеров.

Настройки программы

НастройкаОписание
timeframe Таймфрейм — Таймфрейм, на котором работает советник (числовой код таймфрейма).
bb_period Период полос — Период расчёта скользящей средней и полос.
bb_deviation Отклонение полос — Отклонение (стандартное отклонение) для расчёта верхней и нижней границ полос.
bb_method Метод скользящей средней — Метод расчёта скользящей средней (числовой код метода в MetaTrader).
bb_price Тип цены для полос — Тип цены для расчёта скользящей средней (числовой код типа цены).
atr_period Период ATR — Период расчёта среднего истинного диапазона (ATR), используемого для определения уровней тейк-профита и стоп-лосса.
lot_size_1 Объём сделки 1 — Объём первой сделки (лоты).
lot_size_2 Объём сделки 2 — Объём второй сделки (лоты).
lot_size_3 Объём сделки 3 — Объём третьей сделки (лоты).
lot_size_4 Объём сделки 4 — Объём четвёртой сделки (лоты).
lot_size_5 Объём сделки 5 — Объём пятой сделки (лоты).
lot_size_6 Объём сделки 6 — Объём шестой сделки (лоты).
lot_size_7 Объём сделки 7 — Объём седьмой сделки (лоты).
lot_size_8 Объём сделки 8 — Объём восьмой сделки (лоты).
entry_rule Правило входа — Номер правила входа в позицию, определяющий условную логику открытия ордеров.
re_entry_rule Правило ре-входа — Номер правила повторного входа в позицию, определяющее условную логику добавления ордеров.
median_period Период средней для ре-входа — Период расчёта средней, используемой в правилах повторного входа в позицию.
filter_sma Фильтр SMA — Период дополнительной простой скользящей средней (SMA), используемой в качестве фильтра направления тренда. Если значение 0, фильтр отключён.
atr_take_profit Тейк-профит через ATR — Переключатель, включающий или отключающий автоматический расчёт тейк-профита на основе ATR.
take_profit_1 Тейк-профит 1 — Значение тейк-профита для первой позиции.
take_profit_2 Тейк-профит 2 — Значение тейк-профита для второй позиции.
take_profit_3 Тейк-профит 3 — Значение тейк-профита для третьей позиции.
take_profit_4 Тейк-профит 4 — Значение тейк-профита для четвёртой позиции.
take_profit_5 Тейк-профит 5 — Значение тейк-профита для пятой позиции.
take_profit_6 Тейк-профит 6 — Значение тейк-профита для шестой позиции.
take_profit_7 Тейк-профит 7 — Значение тейк-профита для седьмой позиции.
take_profit_8 Тейк-профит 8 — Значение тейк-профита для восьмой позиции.
atr_stop_loss Стоп-лосс через ATR — Переключатель, включающий или отключающий автоматический расчёт стоп-лосса на основе ATR.
stop_loss Стоп-лосс — Фиксированное значение стоп-лосса (в пипсах или абсолютных единицах), если расчёт через ATR отключён.
atr_step_pips Шаг в пипсах через ATR — Переключатель, определяющий, используется ли ATR для расчёта шага в пипсах при пересчёте позиций.
step_pips Шаг в пипсах — Базовое значение шага в пипсах, используемое при расчёте расстояния между ордерами.
slippage Проскальзывание — Допустимое проскальзывание цены при исполнении ордеров (в пипсах).
magic_buy Магический номер BUY — Магический номер для идентификации ордеров BUY, открытых советником.
magic_sell Магический номер SELL — Магический номер для идентификации ордеров SELL, открытых советником.
comment Комментарий ордера — Текстовый комментарий, присваиваемый каждому открытому ордеру для идентификации.
text_interface Текстовый интерфейс — Переключатель, включающий или отключающий отображение текстового интерфейса с информацией о позициях на графике.
background_color Цвет фона интерфейса — Цвет фона текстового интерфейса советника на графике.
Получить полный код

Поиск по коду файла

/*
   2013-07-01 by Capella at 
	- No need for DLL or autothentication (unused code commented out)
*/

#import "stdlib.ex4"
   string ErrorDescription(int a0); // DA69CBAFF4D38B87377667EEC549DE5A

/*	
#import "Cerbero.dll"
   double aaa(int a0, double a1, double a2);
   double aaaa(int a0, double a1, double a2, double a3);
   double aaaaa(int a0, double a1, double a2, double a3, double a4);
   double bbb(int a0, double a1, double a2);
   double ccc(int a0, double a1, double a2);
   double cccc(int a0, double a1, double a2, double a3);
   double ccccc(int a0, double a1, double a2, double a3, double a4);
   double ddd(int a0, double a1, double a2);
   string eee(int a0, string a1, string a2);
   string eeee(int a0, string a1, string a2, string a3);
   string eeeee(int a0, string a1, string a2, string a3, string a4);
   int xxx(int a0);
   double test_aaa(int a0, double a1, double a2);
#import "wininet.dll"
   int InternetOpenA(string a0, int a1, string a2, string a3, int a4);
   int InternetOpenUrlA(int a0, string a1, string a2, int a3, int a4, int a5);
   int InternetReadFile(int a0, string a1, int a2, int& a3[]);
   int InternetCloseHandle(int a0);
#import
*/

string Gsa_76[12];
int Gia_80[12];
string Gsa_108[100];
int Gia_112[100];
int Gi_116 = 0;
int Gi_120 = 2000;
int Gi_124 = 60000;
int Gi_128 = 0;
int Gi_132 = 0;
int Gi_136 = 0;
bool Gi_140 = FALSE;
bool Gi_144 = FALSE;
bool Gi_148 = TRUE;
bool Gi_156 = FALSE;
int G_datetime_160 = 0;
int G_datetime_164 = 0;
bool Gi_168 = FALSE;
double Gd_172 = 0.0;
int Gi_180 = 86400;
string Gs_184 = "update.html";
string Gs_dummy_196;
int Gi_208 = 1;
string Gs_dummy_212;
int Gi_220 = 0;
int Gi_224 = 0;
int G_count_228 = 0;
string Gs_232;
int Gia_240[1];

int Gia_256[64] = {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47};
datetime G_time_264;
int Gi_268 = 16711680;
int Gi_272 = 255;

extern int timeframe = 60;
extern int bb_period = 20;
extern double bb_deviation = 2.0;
extern int bb_method = 0;
extern int bb_price = 0;
extern int atr_period = 20;
extern double lot_size_1 = 0.01;
extern double lot_size_2 = 0.01;
extern double lot_size_3 = 0.02;
extern double lot_size_4 = 0.0;
extern double lot_size_5 = 0.0;
extern double lot_size_6 = 0.0;
extern double lot_size_7 = 0.0;
extern double lot_size_8 = 0.0;
extern int entry_rule = 1;
extern int re_entry_rule = 7;
extern int median_period = 20;
extern int filter_sma = 0;
extern bool atr_take_profit = TRUE;
extern double take_profit_1 = 3.0;
extern double take_profit_2 = -1.0;
extern double take_profit_3 = -1.0;
extern double take_profit_4 = 0.0;
extern double take_profit_5 = 0.0;
extern double take_profit_6 = 0.0;
extern double take_profit_7 = 0.0;
extern double take_profit_8 = 0.0;
extern bool atr_stop_loss = FALSE;
extern double stop_loss = 0.0;
extern bool atr_step_pips = TRUE;
extern double step_pips = 1.0;
extern int slippage = 5;
extern int magic_buy = 1234;
extern int magic_sell = 1235;
extern string comment = "OndaFX";
extern bool text_interface = TRUE;
extern color background_color = Teal;
double G_point_512;
double Gda_524[8];
double Gda_528[8];
double Gd_532;
int Gia_540[2];
int Gia_544[2];
bool Gi_548 = FALSE;
int Gi_552 = 3600000;
double Gd_556 = 0.0;
double Gd_564 = 0.0;
double Gd_580;
string Gs_588;
bool Gi_596 = TRUE;
string G_str_concat_608;
double Gd_616;
string Gs_624;
double Gd_632 = 1.0;

void f0_35(int Ai_0) {
   Gi_148 = Ai_0;
}

void f0_24() {
   if (Gi_144 == FALSE) {
      for (int index_0 = 0; index_0 < 12; index_0++) {
         Gsa_76[index_0] = "";
         Gia_80[index_0] = 0;
      }
      for (index_0 = 0; index_0 < 100; index_0++) {
         Gsa_108[index_0] = "";
         Gia_112[index_0] = 0;
      }
      Gi_144 = TRUE;
   }
}

void f0_31(string As_0, string As_8 = "", string As_16 = "", string As_24 = "", string As_32 = "", string As_40 = "", string As_48 = "", string As_56 = "", string As_64 = "", string As_72 = "", string As_80 = "", string As_88 = "", string As_96 = "", string As_104 = "", string As_112 = "", string As_120 = "", string As_128 = "", string As_136 = "", string As_144 = "", string As_152 = "", string As_160 = "", string As_168 = "", string As_176 = "", string As_184 = "", string As_192 = "", string As_200 = "", string As_208 = "", string As_216 = "", string As_224 = "", string As_232 = "", string As_240 = "", string As_248 = "", string As_256 = "", string As_264 = "", string As_272 = "", string As_280 = "", string As_288 = "", string As_296 = "", string As_304 = "", string As_312 = "", string As_320 = "", string As_328 = "", string As_336 = "", string As_344 = "", string As_352 = "", string As_360 = "", string As_368 = "", string As_376 = "", string As_384 = "", string As_392 = "", string As_400 = "", string As_408 = "", string As_416 = "", string As_424 = "", string As_432 = "", string As_440 = "", string As_448 = "", string As_456 = "", string As_464 = "", string As_472 = "", string As_480 = "", string As_488 = "") {
   int Li_496;
   string Ls_500;
   int Li_508;
   bool bool_512;
   int Li_516;
   bool bool_520;
   if (Gi_148 != FALSE) {
      f0_24();
      Li_496 = GetTickCount();
      if (Gi_140) Gi_132++;
      Ls_500 = As_0 + As_8 + As_16 + As_24 + As_32 + As_40 + As_48 + As_56 + As_64 + As_72 + As_80 + As_88 + As_96 + As_104 + As_112 + As_120 + As_128 + As_136 + As_144 +
         As_152 + As_160 + As_168 + As_176 + As_184 + As_192 + As_200 + As_208 + As_216 + As_224 + As_232 + As_240 + As_248 + As_256 + As_264 + As_272 + As_280 + As_288 + As_296 +
         As_304 + As_312 + As_320 + As_328 + As_336 + As_344 + As_352 + As_360 + As_368 + As_376 + As_384 + As_392 + As_400 + As_408 + As_416 + As_424 + As_432 + As_440 + As_448 +
         As_456 + As_464 + As_472 + As_480 + As_488;
      Li_508 = f0_14(Ls_500);
      bool_512 = Li_508 == -1 || Li_496 >= Li_508 + Gi_120;
      Li_516 = f0_8();
      bool_520 = Li_516 == 0 || Li_496 >= Li_516 + Gi_124;
      if (bool_512 == FALSE && Li_496 >= Gi_128) {
         Gi_128 = Li_496 + Gi_120;
         if (Gi_140) Print("########## Filter1: UPDATED SP_time_next = ", TimeToStr(Gi_128 / 1000, TIME_SECONDS), "; counter = ", Gi_132);
      }
      if (bool_520 == FALSE && Li_496 >= Gi_128) {
         Gi_128 = Li_496 + Gi_124;
         if (Gi_140) Print("########## Filter2: UPDATED SP_time_next = ", TimeToStr(Gi_128 / 1000, TIME_SECONDS), "; counter = ", Gi_132);
      }
      if (Li_496 >= Gi_128) {
         if (Gi_140) {
            Gi_136++;
            Print("SP_time_now = ", TimeToStr(Li_496 / 1000, TIME_SECONDS), "; SP_time_next = ", TimeToStr(Gi_128 / 1000, TIME_SECONDS), "; counter = ", Gi_132, "; counter2 = ",
               Gi_136);
         }
         Gi_116 = (Gi_116 + 1) % 100;
         Gsa_108[Gi_116] = Ls_500;
         Gia_112[Gi_116] = Li_496;
         Print(Ls_500);
      }
   }
}

int f0_14(string As_0) {
   int Li_12;
   int Li_ret_8 = -1;
   for (int count_16 = 0; count_16 < 100; count_16++) {
      Li_12 = (Gi_116 + 100 - count_16) % 100;
      if (As_0 == Gsa_108[Li_12]) return (Gia_112[Li_12]);
   }
   return (Li_ret_8);
}

int f0_8() {
   return (Gia_112[(Gi_116 + 1) % 100]);
}

int f0_32(string A_symbol_0, int A_cmd_8, double A_lots_12, double A_price_20, int A_slippage_28, double Ad_32, double Ad_40, string A_comment_48 = "", int A_magic_56 = 0, int A_datetime_60 = 0, color A_color_64 = -1) {
   int ticket_68;
   int error_72;
   f0_31("orderSendReliable(" + A_symbol_0 + "," + A_cmd_8 + "," + A_lots_12 + "," + A_price_20 + "," + A_slippage_28 + "," + Ad_32 + "," + Ad_40 + "," + A_comment_48 +
      "," + A_magic_56 + "," + A_datetime_60 + "," + A_color_64 + ")");
   while (true) {
      if (IsStopped()) {
         f0_31("orderSendReliable(): Trading is stopped!");
         return (-1);
      }
      RefreshRates();
      if (A_cmd_8 == OP_BUY) A_price_20 = Ask;
      if (A_cmd_8 == OP_SELL) A_price_20 = Bid;
      if (!IsTradeContextBusy()) {
         ticket_68 = OrderSend(A_symbol_0, A_cmd_8, A_lots_12, NormalizeDouble(A_price_20, MarketInfo(A_symbol_0, MODE_DIGITS)), A_slippage_28, NormalizeDouble(Ad_32, MarketInfo(A_symbol_0,
            MODE_DIGITS)), NormalizeDouble(Ad_40, MarketInfo(A_symbol_0, MODE_DIGITS)), A_comment_48, A_magic_56, A_datetime_60, A_color_64);
         if (ticket_68 > 0) {
            f0_31("orderSendReliable(): Success! Ticket: " + ticket_68);
            return (ticket_68);
         }
         error_72 = GetLastError();
         if (f0_28(error_72) == TRUE) f0_31("orderSendReliable(): Temporary Error: " + error_72 + " " + ErrorDescription(error_72) + ". waiting.");
         else {
            f0_31("orderSendReliable(): Permanent Error: " + error_72 + " " + ErrorDescription(error_72) + ". giving up.");
            return (-1);
         }
      } else f0_31("orderSendReliable(): Must wait for trade context");
      Sleep(MathRand() / 10);
   }
   return /*(WARN)*/;
}

int f0_21(int A_ticket_0, double A_lots_4, double A_price_12, int A_slippage_20, color A_color_24 = -1) {
   bool is_closed_28;
   int error_32;
   f0_31("orderCloseReliable(" + A_ticket_0 + ")");
   OrderSelect(A_ticket_0, SELECT_BY_TICKET, MODE_TRADES);
   while (true) {
      if (IsStopped()) {
         f0_31("orderCloseReliable(" + A_ticket_0 + "): Trading is stopped!");
         return (0);
      }
      RefreshRates();
      if (OrderType() == OP_BUY) A_price_12 = Bid;
      if (OrderType() == OP_SELL) A_price_12 = Ask;
      if (!IsTradeContextBusy()) {
         is_closed_28 = OrderClose(A_ticket_0, A_lots_4, NormalizeDouble(A_price_12, MarketInfo(OrderSymbol(), MODE_DIGITS)), A_slippage_20, A_color_24);
         if (is_closed_28) {
            f0_31("orderCloseReliable(" + A_ticket_0 + "): Success!");
            return (1);
         }
         error_32 = GetLastError();
         if (f0_28(error_32) == TRUE) f0_31("orderCloseReliable(" + A_ticket_0 + "): Temporary Error: " + error_32 + " " + ErrorDescription(error_32) + ". waiting.");
         else {
            f0_31("orderCloseReliable(" + A_ticket_0 + "): Permanent Error: " + error_32 + " " + ErrorDescription(error_32) + ". giving up.");
            return (0);
         }
      } else f0_31("orderCloseReliable(" + A_ticket_0 + "): Must wait for trade context");
      Sleep(MathRand() / 10);
   }
   return /*(WARN)*/;
}

int f0_28(int Ai_0) {
   return (Ai_0 == 0 || Ai_0 == 2 || Ai_0 == 4 || Ai_0 == 6 || Ai_0 == 132 || Ai_0 == 135 || Ai_0 == 129 || Ai_0 == 136 || Ai_0 == 137 || Ai_0 == 138 || Ai_0 == 128 ||
      Ai_0 == 146);
}

/*
void f0_40(int Ai_0) {
   Gi_unused_152 = Ai_0;
}

string f0_17(string As_0, string As_8, string As_16) {
   string Ls_24;
   string Ls_unused_32;
   f0_20(As_16, Ls_24);
   return (f0_7(f0_37(As_0 + As_8 + "/" + Ls_24 + ".html")));
}

string f0_9(string As_0, string As_8, string As_16) {
   string Ls_unused_24;
   return (f0_7(f0_37(As_0 + As_8 + "/" + As_16)));
}

void f0_20(string As_0, string &As_8) {
   int Li_28;
   int Li_32;
   int Li_36;
   int Li_40;
   int Li_44;
   int Li_48;
   int Li_52;
   int Li_16 = 0;
   int Li_20 = 0;
   int str_len_24 = StringLen(As_0);
   while (Li_16 < str_len_24) {
      Li_36 = StringGetChar(As_0, Li_16);
      Li_16++;
      if (Li_16 >= str_len_24) {
         Li_32 = 0;
         Li_28 = 0;
         Li_20 = 2;
      } else {
         Li_32 = StringGetChar(As_0, Li_16);
         Li_16++;
         if (Li_16 >= str_len_24) {
            Li_28 = 0;
            Li_20 = 1;
         } else {
            Li_28 = StringGetChar(As_0, Li_16);
            Li_16++;
         }
      }
      Li_40 = Li_36 >> 2;
      Li_44 = (Li_36 & 3 * 16) | Li_32 >> 4;
      Li_48 = (Li_32 & 15 * 4) | Li_28 >> 6;
      Li_52 = Li_28 & 63;
      As_8 = As_8 + CharToStr(Gia_256[Li_40]);
      As_8 = As_8 + CharToStr(Gia_256[Li_44]);
      switch (Li_20) {
      case 0:
         As_8 = As_8 + CharToStr(Gia_256[Li_48]);
         As_8 = As_8 + CharToStr(Gia_256[Li_52]);
         break;
      case 1:
         As_8 = As_8 + CharToStr(Gia_256[Li_48]);
         As_8 = As_8 + "=";
         break;
      case 2:
         As_8 = As_8 + "==";
      }
   }
}

string f0_37(string As_0) {
   string Ls_12;
   string Ls_20;
   for (int Li_8 = StringFind(As_0, " "); Li_8 != -1; Li_8 = StringFind(As_0, " ")) {
      Ls_12 = StringTrimLeft(StringTrimRight(StringSubstr(As_0, 0, StringFind(As_0, " ", 0))));
      Ls_20 = StringTrimLeft(StringTrimRight(StringSubstr(As_0, StringFind(As_0, " ", 0))));
      As_0 = Ls_12 + "%20" + Ls_20;
   }
   return (As_0);
}

string f0_7(string As_0) {
   G_count_228 = 0;
   for (Gi_220 = FALSE; G_count_228 < 3 && Gi_220 == FALSE; G_count_228++) {
      if (Gi_224 != 0) Gi_220 = InternetOpenUrlA(Gi_224, As_0, 0, 0, -2079850240, 0);
      if (Gi_220 == FALSE) {
         InternetCloseHandle(Gi_224);
         Gi_224 = InternetOpenA("mymt4InetSession", Gi_208, 0, 0, 0);
      }
   }
   Gs_232 = "";
   Gia_240[0] = 1;
   while (Gia_240[0] > 0) {
      InternetReadFile(Gi_220, Gs_248, 200, Gia_240);
      if (Gia_240[0] > 0) Gs_232 = Gs_232 + StringSubstr(Gs_248, 0, Gia_240[0]);
   }
   InternetCloseHandle(Gi_220);
   return (Gs_232);
}

string f0_6(string As_0) {
   int Li_8;
   for (int Li_12 = 0; Li_12 < StringLen(As_0); Li_12++) {
      Li_8 = StringGetChar(As_0, Li_12);
      if (Li_8 >= 'A' && Li_8 <= 'Z') As_0 = StringSetChar(As_0, Li_12, Li_8 + 32);
   }
   return (As_0);
}

int f0_30(string As_0, string As_8, string &Asa_16[], int Ai_20 = 0) {
   int Li_24;
   int Li_28;
   int Li_32;
   if (StringFind(As_0, As_8) < 0) {
      ArrayResize(Asa_16, 1);
      Asa_16[0] = As_0;
   } else {
      Li_24 = 0;
      Li_28 = 0;
      Li_32 = 0;
      while (Li_28 > -1) {
         Li_32++;
         Li_28 = StringFind(As_0, As_8, Li_24);
         ArrayResize(Asa_16, Li_32);
         if (Li_28 > -1) {
            if (Li_28 - Li_24 > 0) Asa_16[Li_32 - 1] = StringSubstr(As_0, Li_24, Li_28 - Li_24);
         } else Asa_16[Li_32 - 1] = StringSubstr(As_0, Li_24, 0);
         Li_24 = Li_28 + 1;
      }
   }
   if (Ai_20 == 0 || Ai_20 == ArraySize(Asa_16)) return (1);
   return (0);
}

void f0_13(double Ad_0, string As_8 = "update.html") {
   Gd_172 = Ad_0;
   Gs_184 = As_8;
}

int f0_11(string As_0, string As_8, string As_16, int Ai_24) {
   string Ls_32;
   string Ls_40;
   int str2int_48;
   string Ls_52;
   string Lsa_60[];
   double str2dbl_64;
   string Ls_72;
   int Li_28 = 60;
   if (Gi_156) Li_28 = 86400;
   if (TimeCurrent() >= G_datetime_160 + Li_28) 
	{
      G_datetime_160 = TimeCurrent();
      Ls_32 = f0_6(As_0);
      if (Ai_24 == 1 && IsDemo() == FALSE) Ls_32 = Ls_32 + "@" + AccountNumber();
      Print("authorization = ", Ls_32);
      Ls_40 = f0_17(As_8, As_16, Ls_32);
      str2int_48 = StrToInteger(Ls_40);
      if (xxx(str2int_48) == 1) {
         Gi_156 = TRUE;
         f0_40(str2int_48);
         Print("Authenticated");
      } else {
         Gi_156 = FALSE;
         Print("NOT Authenticated");
         Comment("\n Authorization Failed.\n Please contact us\n at s*****t*@pimpmyea.com\n or on ");
      }
   }
   if (Gi_156 && TimeCurrent() >= G_datetime_164 + Gi_180) {
      G_datetime_164 = TimeCurrent();
      Ls_52 = f0_9(As_8, As_16, Gs_184);
      if (f0_30(Ls_52, "#", Lsa_60, 2)) {
         str2dbl_64 = StrToDouble(Lsa_60[0]);
         Ls_72 = Lsa_60[1];
         if (Gd_172 > 0.0 && str2dbl_64 > Gd_172) Alert(WindowExpertName(), ": ", Ls_72);
      }
   }
   return (Gi_156);
}

void f0_26() {
   G_datetime_160 = 0;
}
*/

int f0_2() {
   if (G_time_264 == Time[0]) return (0);
   G_time_264 = Time[0];
   return (1);
}

/*	 					 		 	  			     				   	      			 		 	    	 	  						 	  	 	  		 			  		  			  	 		     	 		    	  						   	 	  		 			   	 			 			        

string f0_10(string As_0) {
   string Ls_12;
   int Li_8 = GlobalVariablesTotal();
   for (int count_20 = 0; count_20 < Li_8; count_20++) {
      Ls_12 = GlobalVariableName(count_20);
      if (StringSubstr(Ls_12, 0, StringLen(As_0)) == As_0) return (StringSubstr(Ls_12, StringLen(As_0) + 1));
   }
   return ("");
}
*/

int init() 
{
      // код доступен только после оплаты
   }

int f0_3() {
   HideTestIndicators(TRUE);
   G_point_512 = Point;
   if (G_point_512 == 0.00001) G_point_512 = 0.0001;
   if (G_point_512 == 0.001) G_point_512 = 0.01;
   Gda_524[0] = lot_size_1;
   Gda_524[1] = lot_size_2;
   Gda_524[2] = lot_size_3;
   Gda_524[3] = lot_size_4;
   Gda_524[4] = lot_size_5;
   Gda_524[5] = lot_size_6;
   Gda_524[6] = lot_size_7;
   Gda_524[7] = lot_size_8;
   Gda_528[0] = take_profit_1;
   Gda_528[1] = take_profit_2;
   Gda_528[2] = take_profit_3;
   Gda_528[3] = take_profit_4;
   Gda_528[4] = take_profit_5;
   Gda_528[5] = take_profit_6;
   Gda_528[6] = take_profit_7;
   Gda_528[7] = take_profit_8;
   f0_4();
   f0_5();
   Gia_540[0] = magic_buy;
   Gia_540[1] = magic_sell;
   Gia_544[0] = f0_39(Gia_540[0]);
   Gia_544[1] = f0_39(Gia_540[1]);
   if (IsTesting() && Gi_548) f0_29();
   G_str_concat_608 = StringConcatenate("ondafx_", Symbol(), "_", DoubleToStr(magic_buy, 0), "_", DoubleToStr(magic_sell, 0));
   if (GlobalVariableCheck(G_str_concat_608)) Gd_616 = GlobalVariableGet(G_str_concat_608);
   else {
      GlobalVariableSet(G_str_concat_608, 0.0);
      Gd_616 = 0.0;
   }
   Gs_624 = StringSubstr(Symbol(), 6, 0);
   if (AccountCurrency() == "EUR") Gd_632 = 1.0 / MarketInfo("EURUSD" + Gs_624, MODE_BID);
   if (AccountCurrency() == "GBP") Gd_632 = 1.0 / MarketInfo("GBPUSD" + Gs_624, MODE_BID);
   if (AccountCurrency() == "CHF") Gd_632 = MarketInfo("USDCHF" + Gs_624, MODE_BID);
   if (AccountCurrency() == "JPY") Gd_632 = MarketInfo("USDJPY" + Gs_624, MODE_BID);
   Print("atr_currency_factor = ", Gd_632);
   f0_0();
   return (0);
}

void f0_29() {
   Gd_580 = MarketInfo(Symbol(), MODE_TICKVALUE);
   if (Point == 0.00001) Gd_580 = 10.0 * Gd_580;
   ObjectCreate("onda", OBJ_LABEL, 0, 0, 0, 0, 0, 0);
   ObjectSet("onda", OBJPROP_XDISTANCE, 250);
   ObjectSet("onda", OBJPROP_YDISTANCE, 0);
   ObjectSet("onda", OBJPROP_BACK, TRUE);
   ObjectSetText("onda", "OndaFX v1.0", 20, "Comic Sans MS", Red);
   ObjectCreate("pimp", OBJ_LABEL, 0, 0, 0, 0, 0, 0);
   ObjectSet("pimp", OBJPROP_XDISTANCE, 250);
   ObjectSet("pimp", OBJPROP_YDISTANCE, 30);
   ObjectSet("pimp", OBJPROP_BACK, TRUE);
   ObjectSetText("pimp", "PimpMyEA.com", 20, "Comic Sans MS", Red);
   f0_36();
}

int deinit() {
   Comment("");
   int Li_0 = 20;
   for (int count_4 = 0; count_4 < 10; count_4++) {
      for (int count_8 = 0; count_8 < Li_0; count_8++) {
         ObjectDelete("background" + count_4 + count_8);
         ObjectDelete("background" + count_4 + ((count_8 + 1)));
         ObjectDelete("background" + count_4 + ((count_8 + 2)));
      }
   }
   return (0);
}

int start() 
{
      // код доступен только после оплаты
   }
/*
   if (IsTesting() == F

Показано первые 50% кода (символов: 27918)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
2 791,80₽ ≈ $34.12