Gold Breakout Master EA
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «gold breakout.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Это торговый советник, разработанный для стратегии пробоя (breakout) на рынке золота. Он основан на определении зон поддержки и сопротивления на основе исторических данных. Советник анализирует ценовое движение относительно этих зон для поиска возможностей для входа в сделку.
Стратегия учитывает различные условия, включая подтверждение пробоя (требуется 1 или 2 бара), возможность входа после ретеста зоны, а также фильтры по объему и времени торгов. Управление рисками реализовано через настройку процента риска от капитала и использование фиксированных стоп-лоссов и тейк-профитов в точках.
Советник поддерживает функции трейлинг-стопа для защиты прибыли и имеет настройки для ограничения торговой активности в определенные сессии (например, Лондон и Нью-Йорк). Он также ограничивает количество сделок в течение одного дня.
Настройки программы
| Настройка | Описание |
|---|---|
| InpLookback | Количество баров для расчета зоны (Lookback). |
| InpZoneBufferPoints | Буфер зоны поддержки/сопротивления в пунктах. |
| InpConfirmBreakout | Требуется ли подтверждение пробоя на двух барах. |
| InpRetestEnabled | Включить ли вход в сделку после повторного касания пробитой зоны. |
| InpTakeProfitPoints | Тейк-профит в пунктах. |
| InpStopLossPoints | Стоп-лосс в пунктах. |
| InpUseTrailingStop | Включить ли функцию трейлинг-стопа. |
| InpTrailTriggerPoints | Порог прибыли, при достижении которого активируется трейлинг-стоп в пунктах. |
| InpTrailOffsetPoints | Смещение трейлинг-стопа в пунктах. |
| InpRiskPercent | Процент риска от капитала, используемый для расчета размера лота. |
| InpUseVolumeFilter | Включить ли фильтр по объему торгов. |
| InpVolumeMultiplier | Пороговое значение для фильтра по объему (множитель от среднего объема). |
| InpMaxTradesPerDay | Максимальное количество сделок, разрешенное в течение дня. |
| InpTradeOnlyNyLondon | Ограничить торговлю только сессиями Нью-Йорка и Лондона. |
| InpSessionStartHour | Час начала торговой сессии по серверному времени. |
| InpSessionEndHour | Час окончания торговой сессии по серверному времени. |
| InpMagicNumber | Магическое число для идентификации советника. |
Поиск по коду файла
#property version "1.01" // Version updated
#property description "Breakout strategy for Gold on M15 based on support/resistance zones."
#include <Trade\Trade.mqh>
input group "Zone & Breakout Settings"
input int InpLookback = 150; // Zone Lookback (bars)
input double InpZoneBufferPoints = 300; // Zone Buffer (in Points)
input bool InpConfirmBreakout = true; // Require 2-bar Breakout Confirmation
input bool InpRetestEnabled = true; // Enable Retest Entry after Breakout
input group "Risk Management"
input double InpTakeProfitPoints = 4000; // Take Profit (in Points)
input double InpStopLossPoints = 2000; // Stop Loss (in Points)
input bool InpUseTrailingStop = true; // Enable Trailing Stop
input double InpTrailTriggerPoints = 2000; // Trail Start (in Points)
input double InpTrailOffsetPoints = 1500; // Trail Offset (in Points)
input double InpRiskPercent = 1.0; // Lot Size Risk (% of Equity)
input group "Trade Filters"
input bool InpUseVolumeFilter = true; // Enable Volume Spike Filter
input double InpVolumeMultiplier = 1.5; // Volume Spike Threshold (x Avg Vol)
input int InpMaxTradesPerDay = 3; // Max Trades per Day
input bool InpTradeOnlyNyLondon = true; // Trade Only NY + London Sessions
input int InpSessionStartHour = 7; // Session Start Hour (Server Time)
input int InpSessionEndHour = 18; // Session End Hour (Server Time)
input group "EA Settings"
input ulong InpMagicNumber = 13579; // EA Magic Number
CTrade trade; // Trading object
int h_resistance, h_support, h_avg_vol; // Indicator handles
double resistance_val, support_val, avg_vol_val; // Indicator values
bool long_zone_broken = false;
bool short_zone_broken = false;
int trades_today = 0;
datetime current_day_start = 0;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
IndicatorRelease(h_resistance);
IndicatorRelease(h_support);
IndicatorRelease(h_avg_vol);
}
void OnTick()
{
// код доступен только после оплаты
}
void CheckForNewTrade()
{
if(PositionSelect(_Symbol))
{
return;
}
double res_buffer[1], sup_buffer[1], vol_buffer[1];
if(CopyBuffer(h_resistance, 0, 0, 1, res_buffer) <= 0 ||
CopyBuffer(h_support, 0, 0, 1, sup_buffer) <= 0 ||
CopyBuffer(h_avg_vol, 0, 1, 1, vol_buffer) <= 0)
{
printf("Error copying indicator buffers");
return;
}
resistance_val = res_buffer[0];
support_val = sup_buffer[0];
avg_vol_val = vol_buffer[0];
MqlRates rates[3];
if(CopyRates(_Symbol, _Period, 0, 3, rates) < 3)
{
printf("Error copying rates");
return;
}
double close1 = rates[2].close;
double close2 = rates[1].close;
double open1 = rates[2].open;
MqlTick last_tick;
SymbolInfoTick(_Symbol, last_tick);
long current_volume = (long)rates[2].tick_volume;
double res_top = resistance_val;
double res_bot = resistance_val - (InpZoneBufferPoints * _Point);
double sup_top = support_val + (InpZoneBufferPoints * _Point);
doПоказано первые 50% кода (символов: 7182)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.