← К каталогу
Исходный код · ID 2365

hedgelot_ea.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

HedgeLot_EA — торговый советник для MetaTrader 4, реализующий стратегию хеджирования с наращиванием лотов. При запуске советник одновременно открывает начальные позиции BUY и SELL с фиксированными параметрами Take Profit и Stop Loss. Если одна из позиций приносит прибыль, автоматически открываются дополнительные ордера в противоположном направлении с увеличенным размером лота по заданному множителю.

Советник использует два типа ордеров: мгновенные (InstantOrder) и отложенные (PendingOrder). Начальные позиции открываются одним лотом, а отложенные — другим. При появлении новой прибыльной позиции удаляются противоположные отложенные ордера и создаются новые с наращенным объёмом. Лоты корректируются с помощью множителя и нормализуются до заданного числа знаков после запятой.

Внутренняя логика включает проверки разрешения торговли на сервере, состояния торгового контекста и наличия подключения к серверу. Также советник контролирует уровень стоп-лосса относительно стоп-левела брокера. Магические номера разделяют начальные ордера (id1) и ордера продолжения (id2).

Настройки программы

НастройкаОписание
TP Тейк-профит в пунктах для начальных ордеров.
SL Стоп-лосс в пунктах для начальных ордеров.
UseInstantOrder Переключатель, определяющий, открываются ли начальные ордера мгновенно (true) или нет.
InstantLot Размер лота для начальных мгновенных ордеров (BUY/SELL).
PendingLot Размер лота для отложенных ордеров (BUYSTOP/SELLSTOP).
LotDecimal Количество знаков после запятой при нормализации размера лота.
LotMultiplicator Множитель для увеличения размера лота при открытии ордеров продолжения.
Получить полный код

Поиск по коду файла

extern int  TP = 35;
extern int  SL = 70;
extern bool UseInstantOrder = true;
extern double InstantLot = 0.1;
extern double PendingLot = 0.3;
extern int LotDecimal = 1;//jumlah angka dibelakang koma
extern double LotMultiplicator = 2.0; // faktor pengali

#define Slippage 2
#define id1 12345
#define id2 67890

static datetime lastB = -1;
static datetime lastS = -1;
static double nextLot;
static double levelBuy;
static double levelSell;
static bool firstRun;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {

   Comment("");

   return(0);
  }

int start()
  {
      // код доступен только после оплаты
   }

double p()
{
   double p;
   if(Digits==5 || Digits==3) p = 10*(MarketInfo(Symbol(),MODE_POINT));
   else p = MarketInfo(Symbol(),MODE_POINT);
   return (p);
}  

void openOrder(string simbol, int trade, double lotsize, double price, double sl, double tp,string pesan, int magic, color warna) 
{                     
   int tiket=OrderSend(simbol,trade,lotsize,price,Slippage,sl,tp,pesan,magic,0,warna);                              
   if(tiket>0)
   {  
        if(OrderSelect(tiket,SELECT_BY_TICKET,MODE_TRADES)) OrderPrint(); 
   }
   else Print("Tidak bisa buka order karena : ",GetLastError());        
}

void firstRun()
{//

   RefreshRates();
   int spread = MarketInfo(Symbol(),MODE_SPREAD);

   double buyTP = Ask+(TP-spread)*p();
   double buySL = Bid-SL*p();
   if(UseInstantOrder) openOrder(Symbol(),OP_BUY,InstantLot,Ask,buySL,buyTP,"buy awal",id1,Blue);
   levelBuy = Ask;

   double sellTP = Bid-(TP-spread)*p();
   double sellSL = Ask+SL*p

Показано первые 50% кода (символов: 4496)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
449,60₽ ≈ $5.49