MASYUK V3
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ea masyuk v3..mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
MASYUK V3 — это торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник автоматически открывает и управляет сделками на основе технических индикаторов и параметров, заданных пользователем.
В работе используются два стандартных индикатора — Parabolic SAR и скользящая средняя, — для определения направления позиции. Советник поддерживает как покупку, так и продажу, а также модификацию существующих ордеров.
Реализована система управления размером лота с возможностью увеличения в зависимости от текущей ситуации на счёте. Также предусмотрены ограничения по дням недели и времени для контроля торговой активности.
Советник отображает ключевые параметры счёта (эквити, свободный маржин, просадку, прибыль) прямо на графике через функцию комментариев.
Настройки программы
| Настройка | Описание |
|---|---|
| MagicNo | Магический номер — Магический номер для идентификации ордеров, открытых данным советником. |
| Lots | Размер лота — Начальный объём лота для открытия позиции. |
| Pips | Пункты — Расстояние в пунктах, при превышении которого стоимость позиции от цены открытия запускает дополнительное открытие ордера. |
| TakeProfit | Тейк-профит — Уровень тейк-профита в пунктах, задаваемый при открытии позиции. |
| Multiplier | Множитель лота — Множитель, используемый при расчёте размера лота при увеличении позиции. |
| MaxTrades | Максимальное количество сделок — Максимальное количество одновременно открытых позиций, управляемых советником. |
| Pengurusan_Hari | Управление днями — Текстовый параметр-заголовок, описывающий настройку управления торговыми днями. |
| Jumlah_Hari_Trade | Количество дней торговли — Количество дней торговли в неделю (от 0 до 7), определяющее, на какие дни недели разрешена торговля. |
| Pengurusan_Masa | Управление временем — Текстовый параметр-заголовок, описывающий настройку управления временем торговли. |
| Waktu_Tamat | Время завершения — Час завершения торговли в последний торговый день (по серверному времени). |
| slippage | Проскальзывание — Допустимое проскальзывание цены при выполнении ордеров. |
| Step | Шаг SAR — Шаг (значение ускорения) для индикатора Parabolic SAR. |
| Max | Максимум SAR — Верхний предел для параметра внутреннего индикатора Parabolic SAR. |
Поиск по коду файла
extern int MagicNo = 130883;
extern double Lots = 0.01;
extern int Pips = 30;
extern double TakeProfit = 45.0;
extern double Multiplier = 1.799;
extern int MaxTrades = 10;
extern string Pengurusan_Hari = "Hari Off EA - Jumlah hari berforex";
extern int Jumlah_Hari_Trade = 5;
extern string Pengurusan_Masa = "Waktu Off EA hari terakhir - Ikut jam server";
extern int Waktu_Tamat = 23;
extern int slippage = 3;
double g_lots_140;
int g_period_148 = 7;
int gi_152 = 0;
int g_ma_method_156 = MODE_LWMA;
int g_applied_price_160 = PRICE_WEIGHTED;
int gi_unused_164 = 100;
extern double Step = 0.02;
extern double Max = 0.2;
int gi_184;
int deinit() {
return (0);
}
int init() {
// код доступен только после оплаты
}
void OpenBuy() {
int l_ticket_0;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", TimeCurrent());
l_ticket_0 = OrderSend(Symbol(), OP_BUY, g_lots_140, Ask, slippage, 0, Ask + TakeProfit * Point, "Buy?", MagicNo, 0, Blue);
GlobalVariableDel("InTrade");
}
}
void OpenSell() {
int l_ticket_0;
if (!GlobalVariableCheck("InTrade")) {
GlobalVariableSet("InTrade", TimeCurrent());
l_ticket_0 = OrderSend(Symbol(), OP_SELL, g_lots_140, Bid, slippage, 0, Bid - TakeProfit * Point, "Sell?", MagicNo, 0, Red);
GlobalVariableDel("InTrade");
}
}
void ManageBuy() {
int l_datetime_0 = 0;
double l_ord_open_price_4 = 0;
double l_ord_lots_12 = 0;
double l_ord_takeprofit_20 = 0;
int l_cmd_28 = -1;
int l_ticket_32 = 0;
int l_pos_36 = 0;
for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != MagicNo || OrderType() != OP_BUY) continue;
if (OrderOpenTime() > l_datetime_0) {
l_datetime_0 = OrderOpenTime();
l_ord_open_price_4 = OrderOpenPrice();
l_cmd_28 = OrderType();
l_ticket_32 = OrderTicket();
l_ord_takeprofit_20 = OrderTakeProfit();
}
if (OrderLots() > l_ord_lots_12) l_ord_lots_12 = OrderLots();
}
double l_isar_40 = iSAR(NULL, 0, Step, Max, 0);
double l_ima_48 = iMA(NULL, 0, g_period_148, gi_152, g_ma_method_156, g_applied_price_160, 0);
int li_56 = MathRound(MathLog(l_ord_lots_12 / Lots) / MathLog(Multiplier)) + 1.0;
if (li_56 < 0) li_56 = 0;
g_lots_140 = NormalizeDouble(Lots * MathPow(Multiplier, li_56), gi_184);
if ((li_56 == 0 && l_isar_40 < l_ima_48 && DayOfWeek() < Jumlah_Hari_Trade) || (li_56 == 0 && l_isar_40 < l_ima_48 && DayOfWeek() == Jumlah_Hari_Trade && Hour() <= Waktu_Tamat)) OpenBuy();
if (l_ord_open_price_4 - Ask > Pips * Point && li_56 < MaxTrades) {
OpenBuy();
return;
}
for (l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
if (OrПоказано первые 50% кода (символов: 4566)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.