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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.