ReverseTrailing
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «reverse trailing mt5 source code.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
ReverseTrailing — торговый советник для платформы MetaTrader 5, реализующий систему обратного трейлинг-стопа с переворотной логикой. Советник отслеживает открытую позицию по заданному магическому номеру, перемещает стоп-лосс в сторону движения цены и одновременно выставляет отложенный ордер на переворот в противоположном направлении. При срабатывании стоп-лосса текущей позиции отложенный ордер активируется и открывает новую позицию в обратном направлении, продолжая цикл управления.
Настройки программы
| Настройка | Описание |
|---|---|
| Тип управления капиталом (InpMMType) | Тип управления капиталом — Выбор режима расчёта объёма лота: фиксированный размер или процент от свободного депозита. |
| Фиксированный лот (если выбран Fixed) (InpLotSize) | Фиксированный лот (если выбран Fixed) — Размер лота, используемый при фиксированном типе управления капиталом. |
| Процент риска от Free Margin (если выбран %) (InpRiskPercent) | Процент риска от Free Margin (если выбран %) — Доля свободного маржи, используемая для расчёта объёма лота при процентном типе управления капиталом. |
| Расстояние для Трейлинга и Стоп-ордеров (в пипсах/поинтах) (InpDistancePips) | Расстояние для Трейлинга и Стоп-ордеров (в пипсах/поинтах) — Расстояние в пипсах или поинтах для установки трейлинг-стопа и переворотных отложенных ордеров. |
| Магический номер робота (InpMagicNumber) | Магический номер робота — Идентификатор робота, по которому советник определяет свои позиции и ордера на счёте. |
Поиск по коду файла
#property version "1.00"
#property strict
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>
CTrade m_trade; // Объект для исполнения торговых приказов
CSymbolInfo m_symbol; // Объект для получения рыночных данных
enum ENUM_MM_TYPE
{
MM_FIXED_LOT = 0, // Фиксированный лот
MM_PERCENT_DEP = 1 // % от свободного депозита
};
input group "=== Торговые настройки ==="
input ENUM_MM_TYPE InpMMType = MM_FIXED_LOT; // Тип управления капиталом
input double InpLotSize = 0.1; // Фиксированный лот (если выбран Fixed)
input double InpRiskPercent = 1.0; // Процент риска от Free Margin (если выбран %)
input int InpDistancePips = 100; // Расстояние для Трейлинга и Стоп-ордеров (в пипсах/поинтах)
input ulong InpMagicNumber = 123456; // Магический номер робота
double m_adjusted_distance = 0;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
// код доступен только после оплаты
}
if(!m_symbol.RefreshRates()) return;
bool has_position = false;
ENUM_POSITION_TYPE pos_type = POSITION_TYPE_BUY;
double pos_open = 0;
double pos_sl = 0;
ulong pos_ticket = 0;
for(int i = PositionsTotal() - 1; i >= 0; i--)
{
if(PositionGetSymbol(i) == _Symbol && PositionGetInteger(POSITION_MAGIC) == InpMagicNumber)
{
has_position = true;
pos_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
pos_open = PositionGetDouble(POSITION_PRICE_OPEN);
pos_sl = PositionGetDouble(POSITION_SL);
pos_ticket = PositionGetInteger(POSITION_TICKET);
break; // Работаем с одной основной позицией
}
}
bool has_stop_order = false;
ulong order_ticket = 0;
ENUM_ORDER_TYPE ord_type = ORDER_TYPE_BUY_STOP;
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
ulong ticket = OrderGetTicket(i);
if(ticket > 0)
{
if(OrderGetString(ORDER_SYMBOL) == _Symbol && OrderGetInteger(ORDER_MAGIC) == InpMagicNumber)
{
has_stop_order = true;
order_ticket = ticket;
ord_type = (ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
break;
}
}
}
if(!has_position && !has_stop_order)
{
double lot = CalculateLot();
if(m_trade.Buy(lot, _Symbol, m_symbol.Ask(), 0, 0, "Initial Buy"))
{
Print("Стартовая позиция BUY открыта.");
}
return;
}
if(!has_position && has_stop_order)
{
return;
}
if(has_position)
{
double current_ask = m_symbol.Ask();
double current_bid = m_symbol.Bid();
Показано первые 50% кода (символов: 3949)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.