mega bux pips.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «mega bux pips.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник предназначен для автоматической торговли на таймфрейме М1 и работает с валютными парами EURUSD и GBPUSD. Он анализирует ценовые данные с использованием скользящей средней типа LWMA и формирует рыночные и отложенные ордера.
Советник включает в себя систему управления позициями с возможностью трейлинг-стопа, динамический расчёт размера лота на основе свободного плеча аккаунта, а также модификацию и удаление ордеров. Встроены параметры безопасности и режим высокой скорости, влияющие на логику открытия и управления сделками.
В качестве торговых API используются стандартные функции MetaTrader 4: OrderSend, OrderModify и OrderDelete. Советник отслеживает текущие позиции, корректирует их параметры при смещении цены и управляет отложенными ордерами в зависимости от рыночной ситуации.
Настройки программы
| Настройка | Описание |
|---|---|
| Lots | Фиксированный размер лота, используемый при нулевой доле депозита, либо минимальный допустимый лот при активном динамическом расчёте. |
| Ddep | Доля депозита (в долях от 1) для динамического расчёта размера лота. При значении 0 лот фиксируется равным параметру Lots; при значении больше 0 лот рассчитывается исходя из свободного плеча аккаунта. |
| Dmargin | Множитель плеча, определяющий порог для активации динамического расчёта лота. Лот рассчитывается только при условии, что свободное плечо превышает произведение текущего плеча на этот параметр. |
| Configuration | Текстовый параметр, используемый в качестве заголовка раздела конфигурации настроек советника. |
| Mode_HighSpeed | Переключатель режима высокой скорости. При активном состоянии используется набор параметров, оптимизированных для быстрого исполнения; при неактивном — альтернативные параметры. |
| Mode_Safe | Пороговое значение диапазона свечи, при превышении которого активируется особая логика формирования торговых сигналов. |
| Username | Текстовый параметр, обозначающий имя пользователя или торговый аккаунт, связанный с работой советника. |
| Pma | Период скользящей средней типа LWMA, используемой для определения уровней ценовых сигналов. |
| OrderCmt | Текстовый комментарий, присваиваемый каждому ордеру при его открытии для удобства идентификации в истории торгов. |
| TakeProfit | Значение тейк-профита в пунктах, устанавливаемое при открытии ордеров. |
| StopLoss | Значение стоп-лосса в пунктах, устанавливаемое при открытии ордеров. |
| distance | Расстояние в пунктах от текущей цены для размещения отложенных ордеров BUYSTOP и SELLSTOP. |
| SL_TP_Trailing | Текстовый параметр, используемый в качестве заголовка раздела настроек стоп-лосса, тейк-профита и трейлинг-стопа. |
| Trailing_Resolution | Шаг или разрешение трейлинг-стопа в пунктах, определяющее минимальное расстояние для перемещения стоп-лосса. |
| Trailing_Stop | Переключатель, включающий или отключающий автоматическое перемещение стоп-лосса и тейк-профита по ходу движения цены. |
| Magic | Магический номер, идентифицирующий ордера, открытые данным советником, для корректной фильтрации при управлении позициями. |
Поиск по коду файла
#include <stdlib.mqh>
extern string Free_forex_tools = "";
extern double Lots = 0.01; //постоянный лот при доле депа =0 и мин лот при доле депа отличной от 0
extern double Ddep = 0.2;//
extern double Dmargin =1;
extern string Configuration = "================ Configuration";
extern bool Mode_HighSpeed = TRUE;
extern double Mode_Safe = 0.002;
extern string Username = "************";
extern int Pma=39;
extern string OrderCmt = "X";
extern double TakeProfit = 50.0;
extern double StopLoss = 60.0;
extern double distance = 30.0;
double gd_136 = 0.1;
double gd_196 = 40.0;
double gd_228 = 0.3333333333;
double gd_236 = 0.0;
extern string SL_TP_Trailing = "---------------- SL / TP / Trailing";
extern double Trailing_Resolution = 0.0;
double gd_260 = 0.0;
double gd_268 = 20.0;
extern bool Trailing_Stop = TRUE;
extern int Magic = 7777;
bool gi_280 = TRUE;
int gi_312 = 0;
double gd_316 = 0.0;
int g_slippage_324 = 3;
double gda_328;
double gda_332;
int gia_336;
double gd_340 = 1.0;
double gd_348;
bool gi_356;
double gd_360;
bool gi_368 = FALSE;
double gd_372 = 1.0;
double gd_380 = 0.0;
int gi_388 = 0;
int g_time_392 = 0;
int g_count_396 = 0;
double gda_400;
int gi_404 = 0;
bool gi_408 = TRUE;
double gd_412 = 5.0;
double gd_420 = 10.0;
double gd_428 = 40.0;
bool gi_436 = FALSE;
double gd_440 = 5.0;
double gd_448 = 10.0;
double gd_456 = 40.0;
bool gi_464 = FALSE;
bool gi_unused_468 = FALSE;
int gia_492 = 0;
int init() {
// код доступен только после оплаты
}
int start() {
// код доступен только после оплаты
}
void f0_0(int a_timeframe_0) {
int ticket_16;
int li_24;
double ld_28;
double ld_30;
bool bool_28;
bool li_116;
double ld_120;
double ld_136;
double ld_220;
int datetime_236;
double order_stoploss_260;
double order_takeprofit_268;
double ld_276;
int li_292;
int li_296;
if (g_time_392 < Time[0]) {
g_time_392 = Time[0];
g_count_396 = 0;
} else g_count_396++;
double ihigh_64 = iHigh(Symbol(), a_timeframe_0, 0);
double ilow_72 = iLow(Symbol(), a_timeframe_0, 0);
double icustom_32 = iMA(NULL, a_timeframe_0, Pma, 0, MODE_LWMA, PRICE_LOW, 0);
double icustom_40 = iMA(NULL, a_timeframe_0, Pma, 0, MODE_LWMA, PRICE_HIGH, 0);
double ld_80 = icustom_32 - icustom_40;
bool li_88 = Bid >= icustom_40 + ld_80 / 2.0;
double ld_100 = MarketInfo(Symbol(), MODE_STOPLEVEL) * Point;
double ld_108 = Ask - Bid;
double ld_128 = 0.5;
if (ld_128 < ld_100 - 5.0 * gd_316) {
li_116 = gi_436;
ld_120 = gd_428 * gd_316;
ld_128 = gd_420 * gd_316;
ld_136 = gd_412 * gd_316;
} else {
if (!Mode_HighSpeed) {
li_116 = gi_464;
ld_120 = gd_456 * gd_316;
ld_128 = gd_448 * gd_316;
ld_136 = gd_440 * gd_316;
} else {
li_116 = gi_280;
ld_120 = gd_268 * gd_316;
ld_128 = gd_260 * gd_316;
ld_136 = Trailing_Resolution * gd_316;
}
}
double ld_unused_144 = gda_400;
if (gi_404 < 30) gi_404++;
double ld_152 = 0;
double ld_160 = ld_152 / gi_404;
if (!gi_368 && ld_160 < 15.0 * gd_316) gd_380 = 15.0 * gd_316 - ld_160;
double ld_168 = f0_5(Ask + gd_380);
double ld_176 = f0_5(Bid - gd_380);
double ld_184 = ld_160 + gd_380;
double ld_200;
double ld_208 = ihigh_64 - ilow_72;
double limitTe = Mode_Safe ;
ld_200=0.0022;
if(ld_208>limitTe) {
if (Bid < icustom_40) int li_216=-1;
else if (Bid > icustom_32) li_216=1;
}
if (gd_236 == 0.0) ld_220 = gd_228 * ld_200;
else ld_220 = gd_236 * gd_316;
if (Bid == 0.0 || MarketInfo(Symbol(), MODE_LOTSIZE) == 0.0) ld_220 = 0;
double ld_228 = ld_220 + ld_160 + gd_380;
if (gi_408) datetime_236 = TimeCurrent() + 660.0 ;//* MathMax(10 * a_timeframe_0, 60);
else datetime_236 = 0;
int m;
double MG;
if(AccountFreeMargin()>Dmargin*AccountMargin()&&Lots>0)
{
MG=AccountFreeMargin();
double Min = MarketInfo(Symbol(), MODE_LOTSTEP);
if(Ddep>0)
{
m=MG/MarketInfo (Symbol(), MODE_MARGINREQUIRED)*Ddep/Min;
gd_136 = m*Min;
if(gd_136 > MarketInfo (Symbol(), MODE_MAXLOT))
gd_136 = MarketInfo (Symbol(), MODE_MAXLOT);
if(gd_136 < Lots)
gd_136 = Lots;
if(gd_136< MarketInfo(Symbol(), MODE_MINLOT))
gd_136 = MarketInfo(Symbol(), MODE_MINLOT);
}
}
if(Ddep==0)gd_136 = Lots;
int count_252 = 0;
int count_256 = 0;
for (int pos_4 = 0; pos_4 < OrdersTotal(); pos_4++) {
bool sel=OrderSelect(pos_4, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderCloseTime() == 0) {
if (OrderSymbol() != Symbol()) {
count_256++;
continue;
}
switch (OrderType()) {
case OP_BUY:
while (Trailing_Stop) {
order_stoploss_260 = OrderStopLoss();
order_takeprofit_268 = OrderTakeProfit();
if (!(order_takeprofit_268 < f0_5(ld_168 + ld_120) && ld_168 + ld_120 - order_takeprofit_268 > ld_136)) break;
order_stoploss_260 = f0_5(Bid - ld_120);
order_takeprofit_268 = f0_5(ld_168 + ld_120);
bool_28 = OrderModify(OrderTicket(), 0, order_stoploss_260, order_takeprofit_268, datetime_236, Lime);
if (bool_28) break;
li_24 = f0_1();
if (!(li_24)) break;
}
count_252++;
break;
case OP_SELL:
while (Trailing_Stop) {
order_stoploss_260 = OrderStopLoss();
order_takeprofit_268 = OrderTakeProfit();
if (!(order_takeprofit_268 > f0_5(ld_176 - ld_120) && order_takeprofit_268 - ld_176 + ld_120 > ld_136)) break;
order_stoploss_260 = f0_5(Ask +Показано первые 50% кода (символов: 7735)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.