Супермощная HFT-торговля
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «super power hft_5341427908642637488.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой советник для платформы MetaTrader 5, предназначенный для скальпинговой торговли с функцией хеджирования. Советник анализирует ценовые данные с помощью технических индикаторов — скользящих средних EMA, индикатора RSI и полос Боллинджера — и генерирует торговые сигналы на их основе.
В продукте реализованы механизмы управления рисками: трейлинг-стоп, фиксированные или автоматические стоп-лосс и тейк-профит, ограничение максимального количества открытых позиций, а также временные фильтры торговли. Доступен автоматический расчет размера лота на основе процента риска от депозита.
Советник поддерживает режим хеджирования, позволяющий открывать дополнительные позиции для снижения убытков. Он обрабатывает события тиков, торговли и таймера, обеспечивая актуализацию данных индикаторов и управление позициями в реальном времени.
Настройки программы
| Настройка | Описание |
|---|---|
| EnableTrading | Главный переключатель, разрешающий или запрещающий советнику совершать торговые операции. |
| EA_Comment | Текстовый комментарий, добавляемый к каждой открытой сделке для идентификации позиций, открытых данным советником. |
| MagicNumber | Магический номер, используемый для идентификации позиций, открытых данным советником, на счёте. |
| FixedLot | Фиксированный размер лота для открытия сделок при отключённом автоматическом расчёте. |
| UseAutoLot | Переключатель автоматического расчёта размера лота на основе заданного процента риска от депозита. |
| RiskPercent | Процент риска от текущего баланса депозита, используемый при автоматическом расчёте размера лота. |
| MaxLot | Максимально допустимый размер лота, ограничивающий размер открытых позиций. |
| MinLot | Минимально допустимый размер лота для открытия позиций. |
| StopLoss | Уровень стоп-лосса в пунктах, задающий максимальный допустимый убыток по позиции. |
| TakeProfit | Уровень тейк-профита в пунктах, задающий целевой уровень фиксации прибыли по позиции. |
| UseTrailingStop | Переключатель, включающий или выключающий функцию трейлинг-стопа для управления защитой позиций. |
| TrailingStart | Расстояние в пунктах от цены открытия позиции, при достижении которого начинается сдвиг трейлинг-стопа. |
| TrailingStep | Шаг трейлинг-стопа в пунктах, определяющий расстояние от текущей цены до уровня стоп-лосса при активном трейлинге. |
| StartHour | Час начала торговой сессии. Сделки не открываются до указанного часа. |
| EndHour | Час окончания торговой сессии. Сделки не открываются после указанного часа. |
| TradeMondayFriday | Переключатель, определяющий, торговать ли советнику с понедельника по пятницу (выходные дни исключаются при включении). |
| AvoidNews | При включении советник старается избегать открытия сделок в периоды выхода важных новостей. |
| MaxOpenPositions | Максимальное количество одновременно открытых позиций, управляемых советником. |
Поиск по коду файла
#property version "8.00"
#property description "СПЕЦИАЛЬНОЕ ПРЕДЛОЖЕНИЕ ДЛЯ ТОРГОВЛИ С СИСТЕМОЙ HFT"
#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\OrderInfo.mqh>
input group "=== ОСНОВНЫЕ НАСТРОЙКИ ==="
input bool EnableTrading = true; // Разрешить торговлю
input string EA_Comment = "Супермощная HFT-торговля"; // Комментарий ЕА
input int MagicNumber = 12345; // Магический номер
input group "=== НАСТРОЙКИ ЛОТОВ ==="
input double FixedLot = 0.1; // Фиксированный лот
input bool UseAutoLot = false; // Автоматический расчет лота
input double RiskPercent = 2.0; // Риск в процентах от депозита
input double MaxLot = 10.0; // Максимальный лот
input double MinLot = 0.01; // Минимальный лот
input group "=== СТОП-ЛОСС И ТЕЙК-ПРОФИТ ==="
input int StopLoss = 20; // Стоп-лосс в пунктах
input int TakeProfit = 30; // Тейк-профит в пунктах
input bool UseTrailingStop = true; // Использовать трейлинг-стоп
input int TrailingStart = 15; // Начало трейлинга в пунктах
input int TrailingStep = 5; // Шаг трейлинга в пунктах
input group "=== ВРЕМЕННЫЕ НАСТРОЙКИ ==="
input int StartHour = 6; // Час начала торговли
input int EndHour = 20; // Час окончания торговли
input bool TradeMondayFriday = true; // Торговать с понедельника по пятницу
input bool AvoidNews = true; // Избегать новостей
input group "=== НАСТРОЙКИ СКАЛЬПИНГА ==="
int ScalpPeriod = 1; // Период для скальпинга (минуты)
double MinPriceMovement = 5.0; // Минимальное движение цены (пункты)
input int MaxOpenPositions = 5; // Максимальное количество открытых позиций
int RSI_Period = 14; // Период RSI
int RSI_Overbought = 70; // Уровень перекупленности RSI
int RSI_Oversold = 30; // Уровень перепроданности RSI
input group "=== НАСТРОЙКИ ХЕДЖИРОВАНИЯ ==="
bool EnableHedging = true; // Включить хеджирование
double HedgeRatio = 1.5; // Коэффициент хеджирования
int HedgeTrigger = -50; // Убыток для активации хеджа (пункты)
int MaxHedgePositions = 3; // Максимум позиций хеджа
input group "=== НАСТРОЙКИ ИНДИКАТОРОВ ==="
int EMA_Fast = 5; // Быстрая EMA
int EMA_Slow = 20; // Медленная EMA
int BB_Period = 20; // Период Bollinger Bands
double BB_Deviation = 2.0; // Отклонение Bollinger Bands
CTrade trade;
CPositionInfo positionInfo;
COrderInfo orderInfo;
int ema_fast_handle;
int ema_slow_handle;
int rsi_handle;
int bb_handle;
double ema_fast[];
double ema_slow[];
double rsi[];
double bb_upper[];
double bb_lower[];
double bb_middle[];
datetime lastTradeTime;
int totalPositions;
double totalProfit;
bool hedgeActive;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
IndicatorRelease(ema_fast_handle);
IndicatorRelease(ema_slow_handle);
IndicatorRelease(rsi_handle);
IndicatorRelease(bb_handle);
Print("Скальпинг и Хеджирование ЕА деинициализирован");
}
void OnTick()
{
// код доступен только после оплаты
}
bool IsTradeTime()
{
MqlDateTime dt;
TimeToStruct(TimeCurrent(), dt);
if(TradeMondayFriday && (dt.day_of_week == 0 || dt.day_of_week == 6))
return false;
if(dt.hour < StartHour || dt.hour > EndHour)
return false;
return true;
}
bool UpdateIndicators()
{
if(CopyBuffer(ema_fast_handle, 0, 0, 3, ema_fast) <= 0)
return false;
if(CopyBuffer(ema_slow_handle, 0, 0, 3, ema_slow) <= 0)
return false;
if(CopyBuffer(rsi_handle, 0, 0, 3, rsi) <= 0)
return false;
if(CopyBuffer(bb_handle, 1, 0, 3, bb_upper) <= 0)
return false;
if(CopyBuffer(bb_handle, 2, 0, 3, bb_lower) <= 0)
return false;
if(CopyBuffer(bb_handle, 0, 0, 3, bb_middle) <= 0)
return false;
return true;
}
void CountPositions()
{
totalPositions = 0;
totalProfit = 0;
for(int i = PositionsTotal() - 1; i >= 0; i--)
{
if(positionInfo.SelectByIndex(i))
{
if(positionInfo.Symbol() == Symbol() && positionInfo.Magic() == MagicNumber)
{
totalPositions++;
totalProfit += positionInfo.Profit() + positionInfo.Swap() + positionInfo.Commission();
}
}
}
}
void CheckScalpingSignals()
{
if(TimeCurrent() - lastTradeTime < ScalpPeriod * 60)
return;
double ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
double bid = SymbolInfoDouble(Symbol(), SYMBOL_BID);
if(IsLongSignal())
{
double lot = CalculateLotSize();
double sl = NormalizeDouble(ask - StopLoss * _Point, _Digits);
double tp = NormalizeDouble(ask + TakeProfit * _Point, _Digits);
if(tПоказано первые 50% кода (символов: 9358)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.