AI GEN XII EA
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ai gen xii ea.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
AI GEN XII EA — торговый советник для MetaTrader 4, автоматизирующий управление ордерами на основе расчётов спреда и параметров риска. Советник открывает рыночные и отложенные ордера (BuyStop/SellStop), модифицирует стоп-лоссы и тейк-профиты существующих позиций, а также удаляет неисполненные отложенные ордера при определённых условиях.
В основе работы лежит расчёт скользящего среднего спреда, на основе которого определяются уровни входа, стоп-лосса и тейк-профита. Размер лота задаётся либо фиксированным значением, либо через процент риска от баланса счёта. Встроена фильтрация по времени торговли, позволяющая ограничить активность советника заданным интервалом.
Советник поддерживает работу с несколькими типами ордеров одновременно, отслеживает средние цены открытых позиций и применяет механизм трейлинг-стопа. Параметры агрессивности и функциональный режим задаются через строковые настройки. В коде упоминается использование модели GPT-4o, однако в исходном тексте отсутствуют вызовы внешних API или сетевых запросов.
Версия 1.6. Советник использует магический номер для идентификации управляемых ордеров и поддерживает проверку свободной маржи перед открытием новых позиций.
Настройки программы
| Настройка | Описание |
|---|---|
| _ | Префикс — Текстовый параметр-префикс комментария (по умолчанию "MM"). |
| Risk | Риск — Логический переключатель, управляющий режимом управления рисками (по умолчанию true). |
| automatic | Автоматический режим — Логический переключатель автоматического режима работы советника (по умолчанию true). |
| FixedLot | Фиксированный лот — Фиксированный размер лота для открытия позиций (по умолчанию 0.01). |
| PropFirm | Проп-фирма — Логический переключатель для активации режима работы с проп-фирмой (по умолчанию false). |
| Trailing | Трейлинг-стоп — Логический переключатель для активации трейлинг-стопа (по умолчанию false). |
| TrailingStart | Начало трейлинга — Расстояние в пунктах, при котором начинается сдвиг трейлинг-стопа (по умолчанию 52.0). |
| TrailingStop | Расстояние трейлинга — Расстояние в пунктах до стоп-лосса при активном трейлинг-стопе (по умолчанию 17.0). |
| MagicNumber | Магический номер — Целочисленный магический номер для идентификации ордеров, управляемых советником (по умолчанию 5005). |
| Comment | Комментарий — Текстовый комментарий, присваиваемый открываемым ордерам (по умолчанию "AI GEN XII"). |
| GPTModel | Модель GPT — Строковый параметр, указывающий используемую модель (по умолчанию "GPT-4o"). |
| Aggressivity | Агрессивность — Строковый параметр, задающий уровень агрессивности работы советника (по умолчанию "Low Aggressivity"). |
| Function | Функция — Строковый параметр, определяющий функциональный режим советника (по умолчанию "Advisor only"). |
| DisableAnimation | Отключить анимацию — Логический переключатель для отключения анимации на графике (по умолчанию false). |
| StartHour | Час начала — Час начала временного фильтра торговли (по умолчанию 0). |
| StartMinute | Минута начала — Минута начала временного фильтра торговли (по умолчанию 0). |
| EndHour | Час окончания — Час окончания временного фильтра торговли (по умолчанию 23). |
| EndMinute | Минута окончания — Минута окончания временного фильтра торговли (по умолчанию 59). |
Поиск по коду файла
#property version "1.6"
#property strict
input string _="MM";
input bool Risk=1;
input bool automatic =true;
input double FixedLot =0.01;
input bool PropFirm =false;
input bool Trailing =false;
input double TrailingStart =52.0;
input double TrailingStop =17.0;
int RiskPercent=1;
input int MagicNumber=5005;
input string Comment ="AI GEN XII";
input string GPTModel="GPT-4o";
input string Aggressivity ="Low Aggressivity";
input string Function= "Advisor only";
input bool DisableAnimation=false;
string TimeFilter="----------Time Filter";
extern int StartHour=0;
extern int StartMinute=0;
extern int EndHour=23;
extern int EndMinute=59;
int Secs;
int Stop;
int MaxDistance;
bool Delta;
double MaxSpread=0;
int MaxTrailing=0;
int returned_i;
bool Gb_0000;
double Id_0038;
double Ind_000;
double Id_0040;
double Id_0030;
int Ii_009C;
double Id_01C0;
double Id_00F0;
double Id_0068;
double Id_0100;
double Id_0070;
double Id_0110;
double Id_0060;
int Ii_00A0;
double Id_01B8;
int Ii_0098;
double Id_0140;
double Id_00B0;
double Id_00B8;
double Id_00A8;
double Id_0130;
int Ii_0084;
int Gi_0000;
double Ind_004;
double Id_0138;
int Ii_0088;
double Gd_0000;
double Id_00C8;
double Id_0120;
int Ii_0000;
int Ii_0080;
int Ii_0028;
int Gi_0021;
double Gd_0001;
double Id_0128;
bool Gb_0001;
double Ind_002;
double Id_00C0;
double Gd_0002;
double Gd_0003;
int Gi_0001;
bool returned_b;
double Id_00D0;
int Gi_0002;
int Ii_004C;
double Gd_0004;
double Gd_0005;
double Id_0108;
double Gd_0006;
double Id_00E0;
double Id_00F8;
double Id_00E8;
double Id_0170;
double Id_0178;
double Gd_0007;
double Id_00D8;
long returned_l;
int Ii_007C;
bool Gb_0007;
bool Gb_000D;
bool Gb_002F;
int Gi_002F;
int Ii_0094;
int Ii_002C;
bool Gb_0030;
double Gd_0030;
bool Gb_0032;
int Gi_0032;
double Gd_0034;
double Gd_0035;
double Id_0160;
string Is_0008;
int Ii_008C;
bool Gb_0035;
int Gi_0035;
bool Gb_0036;
double Gd_0036;
bool Gb_0038;
int Gi_0038;
double Gd_003A;
double Gd_003B;
double Id_0168;
int Ii_0090;
bool Gb_0037;
double Gd_0037;
double Gd_0038;
double Gd_0039;
bool Gb_0031;
double Gd_0031;
double Gd_0032;
double Gd_0033;
int Gi_000E;
int Ii_0024;
bool Gb_000E;
double Gd_000E;
bool Gb_000F;
int Gi_000F;
double Gd_0010;
double Gd_0011;
bool Gb_0013;
int Gi_0011;
double Gd_0012;
double Gd_0013;
int Gi_0008;
bool Gb_0008;
double Gd_0008;
bool Gb_0009;
int Gi_0009;
double Gd_000A;
double Gd_000B;
int Gi_000B;
double Gd_000C;
double Gd_000D;
double Gd_0021;
double Gd_0022;
double Gd_0023;
double Gd_0024;
double Gd_0025;
double Gd_0026;
bool Gb_0027;
double Gd_0027;
double Gd_002D;
double Id_0118;
double Gd_002F;
double Gd_0028;
double Gd_0029;
double Gd_002A;
double Gd_002B;
bool Gb_002C;
double Gd_002C;
double Gd_002E;
double Gd_0014;
double Gd_0015;
double Gd_0016;
double Gd_0017;
double Gd_0018;
bool Gb_0019;
double Gd_0019;
double Gd_001F;
bool Gb_0021;
double Gd_001A;
double Gd_001B;
double Gd_001C;
double Gd_001D;
bool Gb_001E;
double Gd_001E;
double Gd_0020;
string Is_0018;
int Ii_0048;
long Il_0050;
int Ii_0058;
bool Ib_0078;
double Id_0148;
double Id_0150;
double Id_0158;
double Id_0180[];
double returned_double;
int Slippage;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int Li_FFF8;
int Li_FFF4;
int Li_FFF0;
int Li_FFEC;
int Li_FFE8;
int Li_FFE4;
int Li_FFE0;
int Li_FFDC;
int Li_FFD8;
double Ld_FFD0;
double Ld_FFC8;
double Ld_FFC0;
double Ld_FFB8;
double Ld_FFB0;
double Ld_FFA8;
double Ld_FFA0;
double Ld_FF98;
double Ld_FF90;
double Ld_FF88;
double Ld_FF80;
double Ld_FF78;
double Ld_FF70;
double Ld_FF68;
double Ld_FF60;
double Ld_FF58;
double Ld_FF50;
int Li_FF4C;
int Li_FF48;
int Li_FFFC;
Ii_009C = Ii_009C + 1;
if ((Id_01C0 == 0)) {
Gi_0000 = HistoryTotal() - 1;
Gi_0001 = Gi_0000;
if (Gi_0000 >= 0) {
do {
if (OrderSelect(Gi_0001, 0, 1) && (OrderProfit() != 0)) {
Gd_0000 = OrderClosePrice();
if ((Gd_0000 != OrderOpenPrice()) && OrderSymbol() == _Symbol) {
Gd_0000 = OrderProfit();
Gd_0002 = OrderClosePrice();
Gd_0002 = fabs((Gd_0002 - OrderOpenPrice()));
Id_01C0 = fabs((Gd_0000 / Gd_0002));
Gd_0002 = -OrderCommission();
Id_00D0 = (Gd_0002 / Id_01C0);
break;
}}
Gi_0001 = Gi_0001 - 1;
} while (Gi_0001 >= 0);
}}
double Ld_FF14[];
ArrayResize(Ld_FF14, (Ii_0080 - 1), 0);
ArrayCopy(Ld_FF14, Id_0180, 0, 1, (Ii_0080 - 1));
ArrayResize(Ld_FF14, Ii_0080, 0);
Gi_0002 = Ii_0080 - 1;
Ld_FF14[Gi_0002] = NormalizeDouble((Ask - Bid), Ii_00A0);
ArrayCopy(Id_0180, Ld_FF14, 0, 0, 0);
returned_double = iMAOnArray(Id_0180, Ii_0080, Ii_0080, 0, 3, 0);
Id_00C8 = returned_double;
Gd_0003 = (Ii_004C * Id_01B8);
Gd_0004 = (returned_double + Id_00D0);
if (Gd_0004 <= Gd_0003) {
}
else {
Gd_0003 = Gd_0004;
}
Id_0120 = Gd_0003;
Gd_0003 = (Gd_0003 * Delta);
if (Gd_0003 <= Id_0130) {
Gd_0005 = Id_0130;
}
else {
Gd_0005 = Gd_0003;
}
Id_0108 = Gd_0005;
Gd_0005 = (Id_0120 * Id_0038);
if (Gd_0005 <= Id_0138) {
Gd_0006 = Id_0138;
}
else {
Gd_0006 = Gd_0005;
}
Id_00E0 = Gd_0006;
Id_00F8 = (Id_0120 * MaxTrailing);
Id_00E8 = (Id_0120 * Id_0040);
Id_0170 = (Id_0120 * MaxDistance);
Id_0178 = (Gd_0006 / Id_0030);
Gd_0006 = (Id_0120 * Stop);
if (Gd_0006 <= Id_0130) {
Gd_0007 = Id_0130;
}
else {
Gd_0007 = Gd_0006;
}
Id_00D8 = Gd_0007;
ArrayFree(Ld_FF14);
Li_FFF8 = 0;
Li_FFF4 = 0;
Li_FFF0 = (int)TimeCurrent();
Li_FFEC = 0;
Li_FFE8 = 0;
Li_FFE4 = 0;
Li_FFE0 = 0;
Li_FFDC = 0;
Li_FFD8 = 0;
Ld_FFD0 = 0;
Ld_FFC8 = 0;
Ld_FFC0 = 0;
Ld_FFB8 = 0;
Ld_FFB0 = 0;
Ld_FFA8 = 0;
Ld_FFA0 = 0;
Ld_FF98 = 0;
Ld_FF90 = 0;
Ld_FFA0 = 0;
Ld_FF88 = 0;
Ld_FF80 = 0;
Ld_FF78 = 0;
Ld_FF70 = 0;
Ld_FF68 = 0;
Ld_FF60 = 0;
Ld_FF58 = 99999;
Ld_FF50 = 0;
Li_FF4C = OrdersTotal() - 1;
if (Li_FF4C >= 0) {
do {
Ii_007C = OrderSelect(Li_FF4C, 0, 0);
if (OrderSymbol() == _Symbol && OrderMagicNumber() == MagicNumber) {
Ld_FFC8 = OrderStopLoss();
Ld_FFB8 = OrderOpenPrice();
Ld_FFC0 = OrderTakeProfit();
Li_FFF4 = OrderTicket();
Ld_FFD0 = OrderLots();
returned_i = OrderType();
if (returned_i <= 5) {
if (returned_i == 4){
Li_FFEC = Li_FFEC + 1;
Li_FFDC = Li_FFDC + 1;
}
if (returned_i == 5){
Li_FFE8 = Li_FFE8 + 1;
Li_FFD8 = Li_FFD8 + 1;
}
if (returned_i == 0){
Li_FFE4 = Li_FFE4 + 1;
if (Ld_FFC8 == 0 || (Ld_FFC8 > 0 && Ld_FFC8 < Ld_FFB8)) {
Li_FFDC = Li_FFDC + 1;
}
Id_0160 = Ld_FFC8;
Gd_0007 = OrderOpenPrice();
Ld_FF88 = ((Gd_0007 * OrderLots()) + Ld_FF88);
Ld_FF80 = (Ld_FF80 + OrderLots());
if ((OrderOpenPrice() < Ld_FF58)) {
Ld_FF58 = OrderOpenPrice();
}}
if (returned_i == 1){
Li_FFE0 = Li_FFE0 + 1;
if (Ld_FFC8 == 0 || (Ld_FFПоказано первые 50% кода (символов: 14466)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.