sevenfx 7a.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «sevenfx 7a.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник предназначен для автоматической торговли на платформе MetaTrader 4. Он работает с семью валютными парами одновременно, анализируя ценовые данные на заданном таймфрейме. Советник использует скользящие средние для формирования торговых сигналов и поддерживает несколько режимов расчёта объёма позиции.
Советник реализует управление позициями через механизмы фиксации убытков, трейлинг-стопа и частичного закрытия убыточных сделок. Отображает текущую информацию о счёте на графике, включая баланс, эквити и данные брокера. Все торговые операции выполняются через стандартный API MetaTrader 4 с контролем проскальзывания и магического номера.
Настройки программы
| Настройка | Описание |
|---|---|
| t0 | Описание режима 0 — Текстовый параметр-подпись, задающий описание первого режима работы советника |
| ModeLot | Режим расчёта лота — Целочисленный переключатель, определяющий способ расчёта объёма позиции: фиксированный или процентный |
| LotPost | Фиксированный лот — Значение объёма позиции при фиксированном режиме расчёта |
| LotProc | Процент лота — Процент от баланса, используемый для расчёта объёма позиции в процентном режиме |
| t3 | Описание режима 3 — Текстовый параметр-подпись, задающий описание параметра уровня |
| Level | Уровень — Целочисленный параметр, определяющий количество позиций для анализа при частичном закрытии |
| Max | Максимум — Числовой параметр, задающий верхний предел для расчёта допустимого значения |
| STOPmax | Максимум стоп-лосса — Числовой параметр, определяющий максимальный допустимый убыток в процентах от баланса |
| t5 | Описание трейлинга — Текстовый параметр-подпись, задающий описание параметров трейлинг-стопа |
| Tral | Трейлинг-стоп — Целочисленный параметр, задающий расстояние трейлинг-стопа в пунктах |
| TralStep | Шаг трейлинга — Целочисленный параметр, определяющий шаг смещения трейлинг-стопа в пунктах |
| t6 | Описание лимита — Текстовый параметр-подпись, задающий описание лимитного параметра |
| Lim | Лимит — Числовой параметр, задающий множитель или предел для расчёта объёма |
| Step | Шаг — Целочисленный параметр, определяющий размер шага в пунктах для условий открытия позиции |
| t7 | Описание параметров — Текстовый параметр-подпись, задающий описание блока параметров символов |
| P1 | Символ 1 — Строковый параметр, задающий первый валютный парный инструмент для торговли |
| P2 | Символ 2 — Строковый параметр, задающий второй валютный парный инструмент для торговли |
| P3 | Символ 3 — Строковый параметр, задающий третий валютный парный инструмент для торговли |
| P4 | Символ 4 — Строковый параметр, задающий четвёртый валютный парный инструмент для торговли |
| P5 | Символ 5 — Строковый параметр, задающий пятый валютный парный инструмент для торговли |
| P6 | Символ 6 — Строковый параметр, задающий шестой валютный парный инструмент для торговли |
| P7 | Символ 7 — Строковый параметр, задающий седьмой валютный парный инструмент для торговли |
| t8 | Описание таймфрейма — Текстовый параметр-подпись, задающий описание параметра таймфрейма |
| Tf | Таймфрейм — Целочисленный параметр, задающий период графика для анализа ценовых данных |
| Slip | Проскальзывание — Целочисленный параметр, определяющий максимально допустимое отклонение цены исполнения |
| Magic | Магический номер — Целочисленный идентификатор, используемый для маркировки ордеров советника |
| Name | Имя — Строковый параметр, задающий текст комментария для отправляемых ордеров |
| Info | Информация — Переключатель, включающий или отключающий отображение информации о счёте на графике |
Поиск по коду файла
extern string t0 = "???? 0-??????????, 1- ??????? ?? ???????";
extern int ModeLot = 1;
extern double LotPost = 1.0;
extern double LotProc = 1.0;
extern string t3 = "??????? ?????? ?? ????????";
extern int Level = 1;
extern double Max = 1.0;
extern double STOPmax = 1.0;
extern string t5 = "????????? ???????? ?????";
extern int Tral = 150;
extern int TralStep = 1;
extern string t6 = "????????? ???????";
extern double Lim = 1.0;
extern int Step = 350;
extern string t7 = "????????? ???";
extern string P1 = "EURUSD";
extern string P2 = "GBPUSD";
extern string P3 = "USDCHF";
extern string P4 = "EURGBP";
extern string P5 = "USDCAD";
extern string P6 = "GBPCHF";
extern string P7 = "NZDUSD";
extern string t8 = "?????? ?????????";
extern int Tf = 60;
extern int Slip = 100;
extern int Magic = 123;
extern string Name = "SEVENFX";
extern bool Info = TRUE;
int G_datetime_264 = 0;
int G_datetime_268 = 0;
int G_datetime_272 = 0;
int G_datetime_276 = 0;
int G_datetime_280 = 0;
int G_datetime_284 = 0;
int G_datetime_288 = 0;
int G_datetime_292 = 0;
int G_datetime_296 = 0;
int G_datetime_300 = 0;
int G_datetime_304 = 0;
int G_datetime_308 = 0;
int G_datetime_312 = 0;
int G_datetime_316 = 0;
int Gi_320;
double Gd_324;
double G_lots_332;
bool OrderSen;
bool OrderMod;
bool OrderClos;
bool OrderDel;
int init() {
// код доступен только после оплаты
}
int start() {
// код доступен только после оплаты
}
int Li_8;
double lots_0 = 0;
if (ModeLot == 0) lots_0 = LotPost;
if (ModeLot == 1) lots_0 = NormalizeDouble(AccountBalance() / 100.0 * LotProc / (100.0 * MarketInfo(Symbol(), MODE_TICKVALUE) * Gi_320), 2);
if (lots_0 < MarketInfo(Symbol(), MODE_MINLOT)) lots_0 = MarketInfo(Symbol(), MODE_MINLOT);
if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.01) Li_8 = 2;
if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.1) Li_8 = 1;
if (MarketInfo(Symbol(), MODE_LOTSTEP) == 1.0) Li_8 = 0;
if (Info) {
Comment(""
+ "\n"
+ "SEVENFX"
+ "\n"
+ "________________________________"
+ "\n"
+ "??????: " + AccountCompany()
+ "\n"
+ "????? ???????: " + TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS)
+ "\n"
+ "________________________________"
+ "\n"
+ "????: " + AccountName()
+ "\n"
+ "????? ???? " + AccountNumber()
+ "\n"
+ "_______________________________"
+ "\n"
+ "??????: " + DoubleToStr(AccountBalance(), 2)
+ "\n"
+ "????????? ????????: " + DoubleToStr(AccountEquity(), 2)
+ "\n"
+ "_______________________________");
}
double Ld_12 = AccountBalance() / 100.0 * STOPmax;
if (f0_1(-1) >= Ld_12 && Ld_12 != 0.0) f0_5(Magic, -1);
Gd_324 = AccountBalance() / 100.0 * Max;
f0_2();
if (f0_8(-1, P1) > 1 && f0_4(-1, P1) == 0) f0_3(P1, -1);
if (f0_8(-1, P2) > 1 && f0_4(-1, P2) == 0) f0_3(P2, -1);
if (f0_8(-1, P3) > 1 && f0_4(-1, P3) == 0) f0_3(P3, -1);
if (f0_8(-1, P4) > 1 && f0_4(-1, P4) == 0) f0_3(P4, -1);
if (f0_8(-1, P5) > 1 && f0_4(-1, P5) == 0) f0_3(P5, -1);
if (f0_8(-1, P6) > 1 && f0_4(-1, P6) == 0) f0_3(P6, -1);
if (f0_8(-1, P7) > 1 && f0_4(-1, P7) == 0) f0_3(P7, -1);
if (f0_8(-1, P1) == 1) f0_6(Magic, P1);
if (f0_8(-1, P2) == 1) f0_6(Magic, P2);
if (f0_8(-1, P3) == 1) f0_6(Magic, P3);
if (f0_8(-1, P4) == 1) f0_6(Magic, P4);
if (f0_8(-1, P5) == 1) f0_6(Magic, P5);
if (f0_8(-1, P6) == 1) f0_6(Magic, P6);
if (f0_8(-1, P7) == 1) f0_6(Magic, P7);
if (G_datetime_264 != iTime(P1, Tf, 0)) {
G_datetime_264 = iTime(P1, Tf, 0);
if (f0_8(OP_BUY, P1) > 0 && NormalizeDouble(MarketInfo(P1, MODE_ASK) + Step * MarketInfo(P1, MODE_POINT), Digits) <= f0_7(P1)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P1)) * lots_0, Li_8);
OrderSen=OrderSend(P1, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P1, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
}
if (f0_8(OP_SELL, P1) > 0 && NormalizeDouble(MarketInfo(P1, MODE_BID) - Step * MarketInfo(P1, MODE_POINT), Digits) >= f0_0(P1)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P1)) * lots_0, Li_8);
OrderSen=OrderSend(P1, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P1, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_268 != iTime(P2, Tf, 0)) {
G_datetime_268 = iTime(P2, Tf, 0);
if (f0_8(OP_BUY, P2) > 0 && NormalizeDouble(MarketInfo(P2, MODE_ASK) + Step * MarketInfo(P2, MODE_POINT), Digits) <= f0_7(P2)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P2)) * lots_0, Li_8);
OrderSen=OrderSend(P2, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P2, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
}
if (f0_8(OP_SELL, P2) > 0 && NormalizeDouble(MarketInfo(P2, MODE_BID) - Step * MarketInfo(P2, MODE_POINT), Digits) >= f0_0(P2)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P2)) * lots_0, Li_8);
OrderSen=OrderSend(P2, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P2, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_272 != iTime(P3, Tf, 0)) {
G_datetime_272 = iTime(P3, Tf, 0);
if (f0_8(OP_BUY, P3) > 0 && NormalizeDouble(MarketInfo(P3, MODE_ASK) + Step * MarketInfo(P3, MODE_POINT), Digits) <= f0_7(P3)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P3)) * lots_0, Li_8);
OrderSen=OrderSend(P3, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P3, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
}
if (f0_8(OP_SELL, P3) > 0 && NormalizeDouble(MarketInfo(P3, MODE_BID) - Step * MarketInfo(P3, MODE_POINT), Digits) >= f0_0(P3)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P3)) * lots_0, Li_8);
OrderSen=OrderSend(P3, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P3, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_276 != iTime(P4, Tf, 0)) {
G_datetime_276 = iTime(P4, Tf, 0);
if (f0_8(OP_BUY, P4) > 0 && NormalizeDouble(MarketInfo(P4, MODE_ASK) + Step * MarketInfo(P4, MODE_POINT), Digits) <= f0_7(P4)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P4)) * lots_0, Li_8);
OrderSen=OrderSend(P4, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P4, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
}
if (f0_8(OP_SELL, P4) > 0 && NormalizeDouble(MarketInfo(P4, MODE_BID) - Step * MarketInfo(P4, MODE_POINT), Digits) >= f0_0(P4)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P4)) * lots_0, Li_8);
OrderSen=OrderSend(P4, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P4, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_280 != iTime(P5, Tf, 0)) {
G_datetime_280 = iTime(P5, Tf, 0);
if (f0_8(OP_BUY, P5) > 0 && NormalizeDouble(MarketInfo(P5, MODE_ASK) + Step * MarketInfo(P5, MODE_POINT), Digits) <= f0_7(P5)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P5)) * lots_0, Li_8);
OrderSen=OrderSend(P5, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P5, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
}
if (f0_8(OP_SELL, P5) > 0 && NormalizeDouble(MarketInfo(P5, MODE_BID) - Step * MarketInfo(P5, MODE_POINT), Digits) >= f0_0(P5)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P5)) * lots_0, Li_8);
OrderSen=OrderSend(P5, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P5, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_284 != iTime(P6, Tf, 0)) {
G_datetime_284 = iTime(P6, Tf, 0);
if (f0_8(OP_BUY, P6) > 0 && NormalizeDouble(MarketInfo(P6, MODE_ASK) + Step * MarketInfo(P6, MODE_POINT), Digits) <= f0_7(P6)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P6)) * lots_0, Li_8);
OrderSen=OrderSend(P6, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P6, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
}
if (f0_8(OP_SELL, P6) > 0 && NormalizeDouble(MarketInfo(P6, MODE_BID) - Step * MarketInfo(P6, MODE_POINT), Digits) >= f0_0(P6)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P6)) * lots_0, Li_8);
OrderSen=OrderSend(P6, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P6, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_288 != iTime(P7, Tf, 0)) {
G_datetime_288 = iTime(P7, Tf, 0);
if (f0_8(OP_BUY, P7) > 0 && NormalizeDouble(MarketInfo(P7, MODE_ASK) + Step * MarketInfo(P7, MODE_POINT), Digits) <= f0_7(P7)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_BUY, P7)) * lots_0, Li_8);
OrderSen=OrderSend(P7, OP_BUY, G_lots_332, NormalizeDouble(MarketInfo(P7, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
}
if (f0_8(OP_SELL, P7) > 0 && NormalizeDouble(MarketInfo(P7, MODE_BID) - Step * MarketInfo(P7, MODE_POINT), Digits) >= f0_0(P7)) {
G_lots_332 = NormalizeDouble(MathPow(Lim, f0_8(OP_SELL, P7)) * lots_0, Li_8);
OrderSen=OrderSend(P7, OP_SELL, G_lots_332, NormalizeDouble(MarketInfo(P7, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_292 != iTime(P1, Tf, 0)) {
G_datetime_292 = iTime(P1, Tf, 0);
if (f0_8(-1, P1) == 0) {
if (iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_OPEN, 1) < iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_CLOSE, 1)) OrderSen=OrderSend(P1, OP_BUY, lots_0, NormalizeDouble(MarketInfo(P1, MODE_ASK), Digits), Slip, 0, 0, Name, Magic, 0, Green);
if (iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_OPEN, 1) > iMA(P1, Tf, 1, 0, MODE_SMA, PRICE_CLOSE, 1)) OrderSen=OrderSend(P1, OP_SELL, lots_0, NormalizeDouble(MarketInfo(P1, MODE_BID), Digits), Slip, 0, 0, Name, Magic, 0, Red);
}
}
if (G_datetime_296 != iTime(P2, Tf, 0)) {
G_datetime_296 = iTime(P2, Tf, 0);
if (f0_8(-1, P2) == 0) {
if (iMA(P2, Tf, 1, 0, MODE_SMA, PRICE_OPEN, 1) < iMA(P2, Tf, 1, 0, MODE_SMA, PRICE_CLOSE, 1)) OrderSen=OrderSend(P2, OP_BUY, lots_Показано первые 50% кода (символов: 15734)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.