overlay positive hedging v1a_.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «overlay positive hedging v1a_.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Overlay Positive Hedging V1A — торговый советник для MetaTrader 4, работающий с двумя валютными парами. Советник открывает противоположные позиции по двум парам (покупку одной и продажу другой), формируя хеджинговую структуру. Лот второго инструмента рассчитывается на основе отношения средних дневных диапазонов (ADR) двух пар, что позволяет адаптировать размер позиции к волатильности каждого инструмента.
Советник поддерживает два торговых варианта (Couple 1 и Couple 2) с разным направлением открытия позиций. Доступен механизм наращивания слоёв при достижении заданного отрицательного плавающего результата, а также два варианта фиксации убытка: по пипсам и в долларовом эквиваленте. Количество слоёв ограничивается параметром MaximumLayer.
В качестве идентификатора ордеров используется магический номер, что позволяет советнику управлять только своими сделками. Текущие параметры и состояние позиций отображаются в комментарии на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| Basic_Setting | Текстовый разделитель для группы базовых настроек. |
| Lot | Базовый объём позиции (в лотах) для основной валютной пары. |
| LayerDistance | Расстояние в пипсах, при достижении отрицательного плавающего результата которого добавляется новый слой позиции. |
| UseTakeProfitByPip | Переключатель фиксации убытка по пипсам. При активации позиции закрываются при достижении значения TakeProfit. |
| TakeProfit | Значение фиксации убытка в пипсах, при достижении которого закрываются позиции. |
| UseTakeProfitByUSD | Переключатель фиксации убытка в долларах. При активации позиции закрываются при достижении значения TakeProfitInUSD. |
| TakeProfitInUSD | Значение фиксации убытка в долларовом эквиваленте, при достижении которого закрываются позиции. |
| MaximumLayer | Максимальное количество слоёв (открытых позиций) для каждой пары. |
| Pair_Setting | Текстовый разделитель для группы настроек пар. |
| Pair1 | Код первой валютной пары (например, GBPUSD). |
| Pair2 | Код второй валютной пары (например, EURUSD). |
| Note1 | Текстовая заметка, описывающая направление торговой пары для первого варианта. |
| Note2 | Текстовая заметка, описывающая направление торговой пары для второго варианта. |
| TradeCouple1 | Переключатель активности первой торговой пары (покупка Пара 1 / продажа Пара 2). |
| TradeCouple2 | Переключатель активности второй торговой пары (покупка Пара 2 / продажа Пара 1). |
| ADR_Setting | Текстовый разделитель для группы настроек ADR. |
| ADR_Day | Количество дней для расчёта среднего дневного диапазона (ADR) каждой валютной пары. |
| UseManual_ADR_Ratio | Переключатель, определяющий, используется ли вручную заданное отношение ADR или оно рассчитывается автоматически на основе исторических данных. |
| ADR_Ratio | Ручное значение отношения ADR для расчёта лота второй пары. Используется, если переключатель UseManual_ADR_Ratio активен. |
| MagicNo | Магический номер для идентификации ордеров, открытых советником. |
Поиск по коду файла
/*
Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
Website:
E-mail : p******m*@gmail.com
*/
extern string Basic_Setting = "----------------- Basic Setting -----------------";
extern double Lot = 0.1;
extern int LayerDistance = 100;
extern bool UseTakeProfitByPip = TRUE;
extern int TakeProfit = 80;
extern bool UseTakeProfitByUSD = FALSE;
extern double TakeProfitInUSD = 100.0;
extern int MaximumLayer = 5;
extern string Pair_Setting = "----------------- Pairs Setting -----------------";
extern string Pair1 = "GBPUSD";
extern string Pair2 = "EURUSD";
extern string Note1 = "Couple 1: Buy Pair1 Sell Pair2";
extern string Note2 = "Couple 2: Sell Pair1 Buy Pair2";
extern bool TradeCouple1 = TRUE;
extern bool TradeCouple2 = FALSE;
extern string ADR_Setting = "------------------ ADR Setting ------------------";
extern int ADR_Day = 365;
extern bool UseManual_ADR_Ratio = TRUE;
extern double ADR_Ratio = 0.8;
extern int MagicNo = 90000;
int gi_196;
int init() {
// код доступен только после оплаты
}
int deinit() {
Comment("");
return (0);
}
int start() {
// код доступен только после оплаты
}
int PostBuy(string as_0, string a_symbol_8, double a_lots_16, int ai_24, int a_magic_28) {
string l_comment_44 = as_0 + " - Layer " + ai_24;
RefreshRates();
double l_price_36 = NormalizeDouble(MarketInfo(a_symbol_8, MODE_ASK), MarketInfo(a_symbol_8, MODE_DIGITS));
int l_ticket_32 = OrderSend(a_symbol_8, OP_BUY, a_lots_16, l_price_36, 5, 0, 0, l_comment_44, a_magic_28, 0, Blue);
if (l_ticket_32 > 0) {
if (OrderSelect(l_ticket_32, SELECT_BY_TICKET, MODE_TRADES)) Print("BUY order #", OrderTicket(), " opened at ", OrderOpenPrice());
} else Print("#1: Error opening BUY order; Error Code: ", GetLastError(), ": ", ErrorDescription(GetLastError()));
return (l_ticket_32);
}
int PostSell(string as_0, string a_symbol_8, double a_lots_16, int ai_24, int a_magic_28) {
string l_comment_44 = as_0 + " - Layer " + ai_24;
RefreshRates();
double l_price_36 = NormalizeDouble(MarketInfo(a_symbol_8, MODE_BID), MarketInfo(a_symbol_8, MODE_DIGITS));
int l_ticket_32 = OrderSend(a_symbol_8, OP_SELL, a_lots_16, l_price_36, 5, 0, 0, l_comment_44, a_magic_28, 0, Red);
if (l_ticket_32 > 0) {
if (OrderSelect(l_ticket_32, SELECT_BY_TICKET, MODE_TRADES)) Print("SELL order #", OrderTicket(), " opened at ", OrderOpenPrice());
} else Print("#2: Error opening SELL order, Error Code: ", GetLastError(), ": ", ErrorDescription(GetLastError()));
return (l_ticket_32);
}
int GetLastLayerBuy(string a_symbol_0, int a_ticket_8, int a_magic_12) {
string ls_16;
int l_str2int_24;
if (OrderSelect(a_ticket_8, SELECT_BY_TICKET) == TRUE) {
if (OrderSПоказано первые 50% кода (символов: 20138)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.