gold house v2.0.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «gold house v2.0.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Gold House V2.0 — торговый советник для MetaTrader 5, работающий на паре XAUUSD. Советник определяет уровни потолка и пола на текущем таймфрейме и размещает отложенные ордера BUY STOP и SELL STOP на заданном расстоянии от этих уровней. Поддерживается до восьми стратегий одновременно, пять из которых можно включать и отключать независимо.
Советник включает систему управления рисками: фильтрация по максимальному спреду, контроль максимальной и дневной просадки, резерв свободного маржа, предварительная проверка маржа перед открытием позиций. Доступны режим консервативной торговли и несколько вариантов расчёта размера лота — фиксированный, на баланс, на маржу, по фиксированному капиталу или по проценту риска на сделку.
Встроенный информационный дашборд отображает на графике текущие баланс, эквити, прибыль/убыток, спред, цены Bid и Ask, количество отложенных ордеров и открытых позиций, а также уровни потолка и пола. Предусмотрена автоматическая защита на выходные: остановка новых ордеров, удаление отложенных ордеров и закрытие позиций в заданное время в пятницу с возобновлением торговли в понедельник. Также доступен фильтр новостей для блокировки торговли вокруг высокоимпактных событий.
Настройки программы
| Настройка | Описание |
|---|---|
| Inp_0 | Раздел «Общие» — Текстовый разделитель для группы общих настроек советника. |
| Inp_Note | Примечание — Текстовое предупреждение о рекомендациях по включению стратегий при малом балансе. |
| [Strategy A] Enable (InpEnableA) | Стратегия A — включить — Переключатель активации стратегии A для размещения отложенных ордеров BUY STOP. |
| [Strategy B] Enable (InpEnableB) | Стратегия B — включить — Переключатель активации стратегии B для размещения отложенных ордеров SELL STOP. |
| [Strategy C] Enable (InpEnableC) | Стратегия C — включить — Переключатель активации стратегии C для размещения отложенных ордеров BUY STOP. |
| [Strategy D] Enable (InpEnableD) | Стратегия D — включить — Переключатель активации стратегии D для размещения отложенных ордеров SELL STOP. |
| [Strategy E] Enable (InpEnableE) | Стратегия E — включить — Переключатель активации стратегии E для размещения отложенных ордеров BUY STOP. |
| Magic number (unique ID per EA instance) (InpMagic) | Магический номер — Уникальный идентификатор ордеров и позиций данного экземпляра советника. |
| Order comment (InpComment) | Комментарий к ордерам — Текстовый комментарий, добавляемый к каждому открываемому ордеру. |
| Max spread (points, 500 = 5.0 pips) (InpMaxSpread) | Максимальный спред — Допустимый максимальный спред в пунктах; при превышении новые ордера не размещаются. |
| Delete pending orders when EA removed (InpDeleteOnRemove) | Удалять ордера при удалении — Удалять все отложенные ордера советника при его удалении с графика. |
| Inp_1 | Раздел «Консервативный режим» — Текстовый разделитель для группы настроек консервативного режима. |
| Conservative Mode (prioritizes capital safety over profit) (InpConservative) | Консервативный режим — При включении приоритет отдаётся сохранению капитала, а не максимизации прибыли. |
| Inp_2 | Раздел «Размер лота» — Текстовый разделитель для группы настроек расчёта размера лота. |
| Select mode, then set value in matching section below (InpLotMode) | Режим расчёта лота — Выбор метода расчёта размера лота: фиксированный, на баланс, на маржу, по фиксированному капиталу или по проценту риска. |
| Fixed lot size per (InpFixedLot) | Фиксированный лот — Размер лота при фиксированном режиме расчёта. |
| Lots per $2000 balance (InpLotBal) | Лот на баланс — Количество лотов на каждые 2000 единиц баланса. |
| Lots per $2000 margin (Fixed Capital locked at startup) (InpLotMar) | Лот на маржу — Количество лотов на каждые 2000 единиц маржи; фиксированный капитал рассчитывается при запуске. |
| Risk % per trade (auto calculated from SL distance) (InpRiskPct) | Риск в процентах — Процент риска на одну сделку; размер лота рассчитывается автоматически на основе расстояния до стоп-лосса. |
| Inp_3 | Разделитель — Текстовый разделитель внутри группы настроек размера лота. |
| Max lot size per order (0 = broker limit) (InpMaxLot) | Максимальный лот — Ограничение максимального размера лота в одной сделке (0 — без ограничения, используется лимит брокера). |
| Auto exchange rate calculation (InpAutoRate) | Авто-курс — Автоматический расчёт обменного курса для конвертации единиц. |
| Manual exchange rate (if AutoRate = false) (InpManualRate) | Ручной курс — Ручное значение обменного курса, используется при отключённом автоматическом расчёте. |
| Inp_4 | Раздел «Управление рисками» — Текстовый разделитель для группы настроек управления рисками. |
| Max drawdown % from peak equity (0 = disabled) (InpMaxDD) | Максимальная просадка — Максимальная допустимая просадка от пикового эквити в процентах (0 — отключено). |
| Max daily drawdown % (0 = disabled) (InpMaxDailyDD) | Максимальная дневная просадка — Максимальная допустимая просадка за текущий день в процентах (0 — отключено). |
| DD calculation: true = account equity; false = this EA's P/L on (InpDDType) | Тип расчёта просадки — Источник для расчёта просадки: общий баланс счёта или только P/L данного советника. |
| Reserve % of balance as free margin buffer (0 = disabled) (InpReserve) | Резерв маржа — Процент свободного маржа, который должен оставаться как буфер (0 — отключено). |
| Pre-check margin before placing orders (InpPreCheck) | Предварительная проверка маржа — Проверка достаточности маржа перед размещением каждого ордера. |
| DD action: true = close ALL positions & pending on account; fal (InpDDAction) | Действие при просадке — При достижении лимита просадки: закрыть все позиции и отложенные ордера на счёте. |
Поиск по коду файла
#property version "2.12"
#property description "tradingvisionx"
#property description " "
#property description "XAUUSD multi-strategy swing breakout EA"
#property description "Works on any timeframe (H1+ recommended)"
#property strict
#include <Trade/Trade.mqh>
enum ENUM_LOT_SELECTOR
{
Lot_Fixed = 0, //Fixed Lot Size
Lot_PerBalance = 1, //Lots Per Balance
Lot_MarginBased = 2, // Margin Based
Lot_FixedCapital = 3, // Fixed Capital (Margin Based Calculated at once)
Lot_RiskPctPerTrade = 4 // Risk % Per Trade
};
input string Inp_0 = "----------------- General -----------------";
input string Inp_Note = "Not recommended to enable all strategies below $500";
input bool InpEnableA = true; // [Strategy A] Enable
input bool InpEnableB = true; // [Strategy B] Enable
input bool InpEnableC = true; // [Strategy C] Enable
input bool InpEnableD = true; // [Strategy D] Enable
input bool InpEnableE = true; // [Strategy E] Enable
input int InpMagic = 1190; // Magic number (unique ID per EA instance)
input string InpComment = "Gold House"; // Order comment
input double InpMaxSpread = 500.0; // Max spread (points, 500 = 5.0 pips)
input bool InpDeleteOnRemove = true; // Delete pending orders when EA removed
input string Inp_1 = "========== Conservative Mode ==========";
input bool InpConservative = false; // Conservative Mode (prioritizes capital safety over profit)
input string Inp_2 = "----------------- Lot Size -----------------";
input ENUM_LOT_SELECTOR InpLotMode = Lot_Fixed; // Select mode, then set value in matching section below
input double InpFixedLot = 0.01; // Fixed lot size per
input double InpLotBal = 0.01; // Lots per $2000 balance
input double InpLotMar = 0.01; // Lots per $2000 margin (Fixed Capital locked at startup)
input double InpRiskPct = 0.5; // Risk % per trade (auto calculated from SL distance)
input string Inp_3 = "---";
input double InpMaxLot = 0.0; // Max lot size per order (0 = broker limit)
input bool InpAutoRate = true; // Auto exchange rate calculation
input double InpManualRate = 1.0; // Manual exchange rate (if AutoRate = false)
input string Inp_4 = "========== Risk Management ==========";
input double InpMaxDD = 0.0; // Max drawdown % from peak equity (0 = disabled)
input double InpMaxDailyDD = 0.0; // Max daily drawdown % (0 = disabled)
input bool InpDDType = true; // DD calculation: true = account equity; false = this EA's P/L on
input double InpReserve = 5.0; // Reserve % of balance as free margin buffer (0 = disabled)
input bool InpPreCheck = true; // Pre-check margin before placing orders
input bool InpDDAction = false; // DD action: true = close ALL positions & pending on account; fal
input int InpCooldownAfterSL = 15; // Cooldown minutes after SL hit (0 = disabled)
input string Inp_5 = "---------- Weekend Protection ----------";
input bool InpWkEnable = false; // Enable weekend auto-close
input int InpWkStop = 19; // Friday: stop new orders after this hour (0 = off)
input int InpWkDelete = 21; // Friday: delete pending orders after this hour (0 = off)
input int InpWkClose = 23; // Friday: close positions after this hour (0 = off)
input int InpWkResume = 1; // Monday: resume trading after this hour (0 = no delay)
input string Inp_6 = "---------- News Filter ----------";
input bool InpNewsEnable = false; // Enable news filter (high-impact only)
input int InpNewsBefore = 60; // Block minutes before news event
input int InpNewsAfter = 30; // Block minutes after news event
input bool InpNewsDelete = true; // Delete pending orders during news window
input string Inp_7 = "----------------- Display -----------------";
input bool InpShowDash = true; // Show on-chart info panel
input color InpUpperColor = clrGold; // Color of Upper boundary line
input color InpLowerColor = clrAqua; // Color of Lower boundary line
CTrade trade;
double g_ceiling = 0, g_floor = 0;
datetime g_last_bar = 0;
color c_main = clrCyan, c_gold = clrGold, c_pink = C'255,105,180';
bool ActivePos(string l, ENUM_ORDER_TYPE ot, int magic)
{
ENUM_POSITION_TYPE pt = (ot == ORDER_TYPE_BUY_STOP) ? POSITION_TYPE_BUY : POSITION_TYPE_SELL;
for(int i=0; i<PositionsTotal(); i++)
{
ulong t=PositionGetTicket(i);
if(PositionSelectByTicket(t) && PositionGetInteger(POSITION_MAGIC)==magic && PositionGetInteger(POSITION_TYPE)==pt)
if(StringFind(PositionGetString(POSITION_COMMENT), l)>=0) return true;
}
return false;
}
ulong GetO(string l, ENUM_ORDER_TYPE ot, int magic)
{
for(int i=0; i<OrdersTotal(); i++)
{
ulong t=OrderGetTicket(i);
if(OrderSelect(t) && OrderGetInteger(ORDER_MAGIC)==magic && OrderGetInteger(ORDER_TYPE)==ot)
if(StringFind(OrderGetString(ORDER_COMMENT), l)>=0) return t;
}
return 0;
}
void DeleteGrid(int magic)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
ulong t=OrderGetTicket(i);
if(OrderSelect(t) && OrderGetInteger(ORDER_MAGIC)==magic) trade.OrderDelete(t);
}
}
void UpdateLevels()
{
int hi = iHighest(_Symbol, PERIOD_CURRENT, MODE_HIGH, 400, 1);
int lo = iLowest(_Symbol, PERIOD_CURRENT, MODE_LOW, 400, 1);
g_ceiling = NormalizeDouble(iHigh(_Symbol, PERIOD_CURRENT, hi), _Digits);
g_floor = NormalizeDouble(iLow(_Symbol, PERIOD_CURRENT, lo), _Digits);
if(ObjectFind(0, "GH_Ceiling") < 0) ObjectCreate(0, "GH_Ceiling", OBJ_HLINE, 0, 0, g_ceiling);
else ObjectSetDouble(0, "GH_Ceiling", OBJPROP_PRICE, g_ceiling);
ObjectSetInteger(0, "GH_Ceiling", OBJPROP_COLOR, InpUpperColor);
if(ObjectFind(0, "GH_Floor") < 0) ObjectCreate(0, "GH_Floor", OBJ_HLINE, 0, 0, g_floor);
else ObjectSetDouble(0, "GH_Floor", OBJPROP_PRICE, g_floor);
ObjectSetInteger(0, "GH_Floor", OBJPROP_COLOR, InpLowerColor);
}
void CreateRect(string name, int x, int y, int w, int h, color bg, color border, int corner=CORNER_LEFT_UPPER)
{
if(ObjectFind(0, name) < 0) ObjectCreate(0, name, OBJ_RECTANGLE_LABEL, 0, 0, 0);
ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x);
ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(0, name, OBJPROP_XSIZE, w);
ObjectSetInteger(0, name, OBJPROP_YSIZE, h);
ObjectSetInteger(0, name, OBJPROP_BGCOLOR, bg);
ObjectSetInteger(0, name, OBJPROP_BORDER_COLOR, border);
ObjectSetInteger(0, name, OBJPROP_BORDER_TYPE, BORDER_FLAT);
ObjectSetInteger(0, name, OBJPROP_CORNER, corner);
ObjectSetInteger(0, name, OBJPROP_BACK, false);
}
void CreateLabel(string name, string text, int x, int y, color col, int size=9, int corner=CORNER_LEFT_UPPER, int anchor=ANCHOR_LEFT_UPPER)
{
if(ObjectFind(0, name) < 0) ObjectCreate(0, name, OBJ_LABEL, 0, 0, 0);
ObjectSetString(0, name, OBJPROP_TEXT, text);
ObjectSetInteger(0, name, OBJPROP_XDISTANCE, x);
ObjectSetInteger(0, name, OBJPROP_YDISTANCE, y);
ObjectSetInteger(0, name, OBJPROP_COLOR, col);
ObjectSetInteger(0, name, OBJPROP_FONTSIZE, size);
ObjectSetString(0, name, OBJPROP_FONT, "Segoe UI Semibold");
ObjectSetInteger(0, name, OBJPROP_CORNER, corner);
ObjectSetInteger(0, name, OBJPROP_ANCHOR, anchor);
}
int CountPending(ENUM_ORDER_TYPE ot)
{
int count = 0;
for(int i=0; i<OrdersTotal(); i++)
{
ulong t = OrderGetTicket(i);
if(OrderSelect(t))
if(OrderGetInteger(ORDER_MAGIC) == InpMagic && OrderGetInteger(ORDER_TYPE) == ot)
count++;
}
return count;
}
void DrawLowerPanel()
{
if(!InpShowDash) { ObjectsDeleteAll(0, "GH_B_"); return; }
long chartW = ChartGetInteger(0, CHART_WIDTH_IN_PIXELS), chartH = ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS);
int w = 550, h = 85, x = (int)(chartW - w) / 2, y = (int)chartH - h - 30;
color bgColor = C'5,10,16', borderColor = C'20,30,40', aqua = clrAqua, pink = C'255,20,147', grey = C'70,80,90';
CreateRect("GH_B_BG", x, y, w, h, bgColor, borderColor, CORNER_LEFT_UPPER);
double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK), bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
double pipsBuy = (g_ceiling - ask) / _Point * 0.1, pipsSell = (bid - g_floor) /Показано первые 50% кода (символов: 13549)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.