autoprofitscalper@amazing_owner.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «autoprofitscalper@amazing_owner.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Этот советник для MetaTrader 4 предназначен для автоматической торговли валютными парами. Он отслеживает разницу между котировками брокера и внешнего источника (Saxo Bank), получаемого через стороннюю DLL, и открывает позиции BUY или SELL, когда спред достигает заданного порога. Советник поддерживает как автоматическое исполнение ордеров через торговый API MetaTrader, так и ручной режим, имитирующий ввод с клавиатуры в окно торговли.
Система управляет открытыми позициями, устанавливая или модифицируя уровни TakeProfit и StopLoss, а также закрывает позиции при достижении фиксированных порогов прибыли или убытка. Количество одновременных сделок ограничено, а размер лота рассчитывается как фиксированное значение или как процент от депозита с учётом минимальных и максимальных ограничений. Настройки сохраняются между сессиями с помощью глобальных переменных терминала.
Советник предоставляет визуальную информацию на графике, включая горизонтальные линии уровней bid/ask, текстовые метки с текущим спредом и значениями сигналов, а также цветовые индикаторы. Реализованы звуковые оповещения о торговых событиях, отрисовка сетки на графике и мониторинг состояния связи с внешним источником котировок с уведомлениями о проблемах.
Настройки программы
| Настройка | Описание |
|---|---|
| read_pr_nastr | Чтение настроек — Включает загрузку параметров из глобальных переменных терминала при запуске для восстановления настроек предыдущей сессии |
| trade | Торговля — Включает или отключает возможность размещения и управления торговыми ордерами |
| MinUr | Минимальный уровень — Минимальный порог спреда в пунктах для генерации торгового сигнала |
| Slippage | Проскальзывание — Допустимое отклонение цены исполнения ордера от запрошенной |
| Lots | Лот — Фиксированный размер лота для открытия позиции |
| LotsPercent | Процент от депозита — Процент от свободного маржи для расчёта размера лота |
| max_lots | Максимальный лот — Верхний предел размера лота при автоматическом расчёте |
| TakeProfit | Тейк-профит — Уровень фиксации прибыли в пунктах для открытых позиций |
| StopLoss | Стоп-лосс — Уровень ограничения убытка в пунктах для открытых позиций |
| FixTP | Фиксированный ТП — Фиксированный уровень в пунктах для принудительного закрытия позиции по прибыли |
| FixSL | Фиксированный СЛ — Фиксированный уровень в пунктах для принудительного закрытия позиции по убытку |
| sdvig_bid | Сдвиг bid — Смещение значения bid, полученного от внешнего источника, в пунктах |
| luft | Лофт — Дополнительное смещение цены исполнения ордера в пунктах от текущей рыночной цены |
| Fixspred | Фиксированный спред — Фиксированное значение спреда в пунктах для расчётов вместо реального |
| whc | Режим ТП/СЛ — Активирует специальный режим управления уровнями TakeProfit и StopLoss |
| NTrades | Макс. сделок — Максимальное количество одновременно открытых ордеров на одном символе |
| sound | Звук — Включает звуковые оповещения при торговых событиях |
| spred_saxo | Спред Saxo — Использует спред Saxo Bank для расчёта пороговых значений сигналов |
| visual | Визуализация — Включает отображение графических элементов на графике |
| visual_bid | Визуализация bid — Отображает текстовую метку текущего значения bid на графике |
| visual_pr_kotir | Проблемы котировок — Показывает уведомления о проблемах с получением котировок от внешнего источника |
| new_kot | Новый режим котировок — Переключает расчёт спреда и сигналов на альтернативный метод на основе средних котировок |
| ruka | Ручной режим — Активирует ручное управление через имитацию ввода в окно торговли MetaTrader |
| Dig | Точность — Количество знаков после запятой при вводе размера лота в ручном режиме |
| setka | Сетка — Включает отрисовку горизонтальной сетки линий на графике |
| mt_setka_vykl | Сетка MT4 — Включает отображение стандартной сетки MetaTrader через вызов окна настроек |
Поиск по коду файла
#property show_inputs
#include <WinUser32.mqh>
#import "stdlib.ex4"
string ErrorDescription(int a0); // DA69CBAFF4D38B87377667EEC549DE5A
#import "user32.dll"
int GetDlgItem(int a0, int a1);
int GetAncestor(int a0, int a1);
#import "newest.dll"
string val_bid_ask(string a0);
string inits(string a0);
#import
string Gs_76 = "The Skyla Foundation || Best EA || Version 3.2";
extern bool read_pr_nastr = FALSE;
extern bool trade = TRUE;
extern double MinUr = 5.0;
extern double Slippage = 2.0;
extern double Lots = 0.1;
extern int LotsPercent = 40;
extern double max_lots = 2.9;
extern int TakeProfit = 0;
extern int StopLoss = 0;
extern double FixTP = 1.0;
extern double FixSL = 7.0;
extern int sdvig_bid = 0;
extern int luft = 0;
extern int Fixspred = 0;
extern bool whc = FALSE;
extern int NTrades = 3;
extern bool sound = TRUE;
extern bool spred_saxo = TRUE;
extern bool visual = TRUE;
extern bool visual_bid = TRUE;
extern bool visual_pr_kotir = FALSE;
extern bool new_kot = FALSE;
extern bool ruka = FALSE;
extern int Dig = 1;
extern bool setka = FALSE;
extern bool mt_setka_vykl = FALSE;
string Gs_212 = "";
int Gi_220 = 3;
double Gd_224 = 0.0;
int Gi_232 = 300;
double Gd_236;
double Gd_244;
double Gd_252;
int Gi_260;
color G_color_264 = Green;
string Gs_268 = "expert.wav";
double G_point_276;
string Gs_dummy_284;
string Gs_dummy_292;
int G_fontsize_300;
int G_fontsize_304;
double Gd_308;
double Gd_316;
int G_magic_324;
int Gi_328;
int Gi_332;
double Gd_336;
int G_ticket_344;
int G_pos_348;
int G_count_352;
string Gs_dummy_356;
string Gs_dummy_364;
string Gs_372;
string Gs_380;
string Gs_388;
double Gd_unused_396 = 0.0;
double Gd_404;
double Gd_412;
double Gd_420;
double Gd_428;
double Gd_436;
double Gd_444;
double Gd_452;
string Gs_dummy_460;
string Gs_468;
double Gd_476;
double Gd_484;
int Gi_492;
int Gi_unused_496 = 0;
int Gi_500;
int Gi_504;
int Gi_508;
int Gi_512;
extern int Account = 99460;
string Gs_520;
double Gd_528;
double G_ask_536;
double G_marginrequired_544;
double G_lotstep_552;
double Gd_560;
double Gd_568;
string Gs_576 = "";
string Gs_584;
string Gs_592;
string G_symbol_600;
string Gs_608;
string Gs_616;
string Gs_dummy_624;
bool Gi_632 = FALSE;
int Gi_unused_636;
int start() {
// код доступен только после оплаты
}
string f0_2(string As_0, int Ai_8) {
string Ls_ret_12;
if (Ai_8 == -1) Ls_ret_12 = StringSubstr(As_0, 0, 2);
else Ls_ret_12 = StringSubstr(As_0, 7 * Ai_8 + 3, 6);
return (Ls_ret_12);
}
double f0_3(string As_0, int Ai_8) {
double str2dbl_12;
int Li_20 = StringFind(As_0, "!", 0);
if (Ai_8 == 0) str2dbl_12 = StrToDouble(StringSubstr(As_0, 0, Li_20));
else str2dbl_12 = StrToDouble(StringSubstr(As_0, Li_20 + 1, 7));
return (str2dbl_12);
}
int f0_11() {
double Ld_0;
double Ld_8;
double Ld_16;
int Li_24;
if (LotsPercent > 0) {
Ld_0 = NormalizeDouble(NormalizeDouble(AccountEquity() / G_marginrequired_544, 2) * LotsPercent / 100.0, 2);
Ld_8 = Ld_0;
Li_24 = Ld_8 / G_lotstep_552;
Ld_16 = Li_24 * G_lotstep_552;
Gd_336 = Ld_16;
if (Gd_336 < Gd_560) Gd_336 = Gd_560;
if (Gd_336 > Gd_568) Gd_336 = Gd_568;
Lots = Gd_336;
}
if (Lots > max_lots) Lots = max_lots;
return (0);
}
int f0_9() {
double price_0;
if (OrdersTotal() > 0) {
for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY) {
if (OrderMagicNumber() == G_magic_324) {
price_0 = NormalizeDouble(OrderOpenPrice(), Gi_328) + TakeProfit * G_point_276;
if (NormalizeDouble(OrderTakeProfit(), Gi_328) != price_0) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), price_0, 0, Red);
}
}
}
}
return (0);
}
int f0_8() {
double price_0;
if (OrdersTotal() > 0) {
for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_SELL) {
if (OrderMagicNumber() == G_magic_324) {
price_0 = NormalizeDouble(OrderOpenPrice(), Gi_328) - TakeProfit * G_point_276;
if (NormalizeDouble(OrderTakeProfit(), Gi_328) != price_0) OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), price_0, 0, Red);
}
}
}
}
return (0);
}
int f0_0() {
double price_0;
if (OrdersTotal() > 0) {
for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_BUY) {
if (OrderMagicNumber() == G_magic_324) {
price_0 = NormalizeDouble(OrderOpenPrice(), Gi_328) - StopLoss * G_point_276;
if (NormalizeDouble(OrderStopLoss(), Gi_328) != price_0) OrderModify(OrderTicket(), OrderOpenPrice(), price_0, OrderTakeProfit(), 0, Red);
}
}
}
}
return (0);
}
int f0_7() {
double price_0;
if (OrdersTotal() > 0) {
for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {
OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES);
if (OrderType() == OP_SELL) {
if (OrderMagicNumber() == G_magic_324) {
price_0 = NormalizeDouble(OrderOpenPrice(), Gi_328) + StopLoss * G_point_276;
if (NormalizeDouble(OrderStopLoss(), Gi_328) != price_0) OrderModify(OrderTicket(), OrderOpenPrice(), price_0, OrderTakeProfit(), 0, Red);
}
}
}
}
return (0);
}
void f0_6() {
for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == G_symbol_600 && OrderMagicNumber() == G_magic_324) {
if (OrderType() == OP_BUY) {
Gd_436 = MarketInfo(OrderSymbol(), MODE_BID) - OrderOpenPrice();
Gd_452 = Gd_484 * G_point_276;
Gd_452 = NormalizeDouble(Gd_452, Gi_328);
if (Gd_436 >= Gd_452) {
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID) + luft * G_point_276, Slippage);
return;
}
}
if (OrderType() == OP_SELL) {
Gd_444 = OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_ASK);
Gd_452 = Gd_484 * G_point_276;
Gd_452 = NormalizeDouble(Gd_452, Gi_328);
if (Gd_444 >= Gd_452) {
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK) - luft * G_point_276, Slippage);
return;
}
}
}
}
}
}
void f0_4() {
for (int pos_0 = 0; pos_0 < OrdersTotal(); pos_0++) {
if (OrderSelect(pos_0, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == G_symbol_600 && OrderMagicNumber() == G_magic_324) {
if (OrderType() == OP_BUY) {
Gd_436 = OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_BID);
Gd_436 = NormalizeDouble(Gd_436, Gi_328);
Gd_452 = FixSL * G_point_276;
Gd_452 = NormalizeDouble(Gd_452, Gi_328);
if (Gd_436 >= Gd_452) {
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID) + luft * G_point_276, Slippage);
return;
}
}
if (OrderType() == OP_SELL) {
Gd_444 = MarketInfo(OrderSymbol(), MODE_ASK) - OrderOpenPrice();
Gd_444 = NormalizeDouble(Gd_444, Gi_328);
Gd_452 = FixSL * G_point_276;
Gd_452 = NormalizeDouble(Gd_452, Gi_328);
if (Gd_444 >= Gd_452) {
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK) - luft * G_point_276, Slippage);
return;
}
}
}
}
}
}
int deinit() {
ObjectDelete("BidMT");
ObjectDelete("BidGL");
ObjectDelete("RMTGL");
ObjectDelete("RMTGLsig");
ObjectDelete("bid_saxo");
ObjectDelete("bid_mt");
ObjectDelete("bid label");
ObjectDelete("ask label");
ObjectDelete("ask_saxo");
Comment("");
return (0);
}
int f0_12(int Ai_0) {
G_symbol_600 = f0_2(Gs_584, Ai_0);
string Ls_4 = G_symbol_600;
if (Gi_632) Print("symb " + G_symbol_600);
int Li_12 = StringFind(Symbol(), G_symbol_600, 0);
if (Li_12 != 1) {
if (Li_12 > 0) Gs_576 = StringSubstr(Symbol(), 0, Li_12 - 1);
if (Li_12 == 0) {
Li_12 += 6;
if (Li_12 >= 6) Gs_576 = StringSubstr(Symbol(), Li_12, StringLen(Symbol()) - 1);
}
}
G_symbol_600 = G_symbol_600 + Gs_576;
RefreshRates();
Gd_528 = MarketInfo(G_symbol_600, MODE_BID);
G_ask_536 = MarketInfo(G_symbol_600, MODE_ASK);
Gs_592 = Gs_592 + G_symbol_600 + " ";
Gi_328 = MarketInfo(G_symbol_600, MODE_DIGITS);
if (Gi_328 == 3) {
Gi_328 = 2;
Slippage = 10.0 * Slippage;
}
if (Gi_328 == 5) {
Gi_328 = 4;
Slippage = 10.0 * Slippage;
}
if (Gi_632) Print("symb " + G_sПоказано первые 50% кода (символов: 24154)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.