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

VR Smart Grid Lite

vr smart grid lite.mq5
Вы автор или правообладатель?

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

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

О программе

VR Smart Grid Lite — это торговый советник для MetaTrader 5, предназначенный для автоматического управления сеткой позиций на одном инструменте. Советник анализирует текущие открытые позиции, отслеживает их цены и объёмы, а также использует данные ценовых свечей и текущих котировок для принятия решений об открытии новых сделок.

В ходе работы советник модифицирует существующие позиции: устанавливает или корректирует уровни Take Profit и убирает ненужные ордера. Лот новых позиций рассчитывается на основе уже открытых сделок с ограничением по максимальному объёму. Перед исполнением каждой торговой операции проверяется допустимость объёма в соответствии с ограничениями брокера.

Советник работает в рамках одного символа и использует магический номер для идентификации управляемых позиций. Торговые операции выполняются через стандартный торговый класс MetaTrader 5 с заданным допуском по проскальзыванию.

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

НастройкаОписание
Take Profit (in pips) (iTakeProfit) Take Profit — Расстояние в пунктах для установки уровня Take Profit на управляемых позициях.
Start lot (iStartLots) Начальный лот — Начальный объём лота для первой позиции.
Maximal Lots (iMaximalLots) Максимальный лот — Максимально допустимый объём лота для открытия и управления позициями.
Point order step (in pips) (iPointOrderStep) Шаг ордера — Шаг в пунктах, определяющий минимальное расстояние для открытия новых позиций.
Minimal profit for close grid (in pips) (iMinimalProfit) Минимальная прибыль — Минимальный уровень прибыли, используемый при расчёте условий модификации позиций.
Magic Number (in number) (iMagicNumber) Magic Number — Уникальный идентификатор (Magic Number) для отбора управляемых позиций на символе.
Slippage (in pips) (iSlippage) Проскальзывание — Допустимое проскальзывание (в пунктах) при исполнении торговых операций.
Получить полный код

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

#property version     "19.050"
#property description " "
#include <Trade\PositionInfo.mqh> CPositionInfo     m_position;
#include <Trade\Trade.mqh> CTrade trade;

input int          iTakeProfit         = 300;      // Take Profit (in pips)
input double       iStartLots          = 0.01;     // Start lot
input double       iMaximalLots        = 2.56;     // Maximal Lots 
input int          iPointOrderStep     = 390;      // Point order step (in pips)
input int          iMinimalProfit      = 70;       // Minimal profit for close grid (in pips)
input int          iMagicNumber        = 227;      // Magic Number (in number)
input int          iSlippage           = 30;       // Slippage (in pips)

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

void OnTick()
  {
      // код доступен только после оплаты
   }
   double
   BuyPriceMax=0,BuyPriceMin=0,BuyPriceMaxLot=0,BuyPriceMinLot=0,
   SelPriceMin=0,SelPriceMax=0,SelPriceMinLot=0,SelPriceMaxLot=0;

   ulong
   BuyPriceMaxTic=0,BuyPriceMinTic=0,SelPriceMaxTic=0,SelPriceMinTic=0;

   double
   op=0,lt=0,tp=0;

   ulong    tk=0;
   int b=0,s=0;

   int total=PositionsTotal();
   for(int k=total-1;k>=0;k--)
      if(m_position.SelectByIndex(k))
         if(m_position.Symbol()==Symbol())
            if(m_position.Magic()==iMagicNumber)
               if(m_position.PositionType()==POSITION_TYPE_BUY || m_position.PositionType()==POSITION_TYPE_SELL)
                 {

                  op=NormalizeDouble(m_position.PriceOpen(),Digits());
                  lt=NormalizeDouble(m_position.Volume(),2);
                  tk=m_position.Ticket();

                  if(m_position.PositionType()==POSITION_TYPE_BUY)
                    {
                     b++;
                     if(op>BuyPriceMax || BuyPriceMax==0)
                       {
                        BuyPriceMax    = op;
                        BuyPriceMaxLot = lt;
                        BuyPriceMaxTic = tk;
                       }
                     if(op<BuyPriceMin || BuyPriceMin==0)
                       {
                        BuyPriceMin    = op;
                        BuyPriceMinLot = lt;
                        BuyPriceMinTic = tk;
                       }
                    }

                  if(m_position.PositionType()==POSITION_TYPE_SELL)
                    {
                     s++;
                     if(op>SelPriceMax || SelPriceMax==0)
                       {
                        SelPriceMax    = op;
                        SelPriceMaxLot = lt;
                        SelPriceMaxTic = tk;
                       }
                     if(op<SelPriceMin || SelPriceMin==0)
                       {
                        SelPriceMin    = op;
                        SelPriceMinLot = lt;
                        SelPriceMinTic = tk;
                       }
                    }
                 }

   double   AwerageBuyPrice=0,AwerageSelPrice=0;
   if(b>=2) AwerageBuyPrice=NormalizeDouble((BuyPriceMax*BuyPriceMaxLot+BuyPriceMin*BuyPriceMinLot)/(BuyPriceMaxLot+BuyPriceMinLot)+iMinimalProfit*Point(),Digits());
   if(s>=2) AwerageSelPrice=NormalizeDouble((SelPriceMax*SelPriceMaxLot+SelPriceMin*SelPriceMinLot)/(SelPriceMaxLot+SelPriceMinLot)-iMinimalProfit*Point(),Digits());

   double BuyLot=0,SelLot=0;
   if(BuyPriceMinLot==0) BuyLot=iStartLots; else BuyLot=BuyPriceMinLot*2;
   if(SelPriceMaxLot==0) SelLot=iStartLots; else SelLot=SelPriceMaxLot*2;

   if(BuyLot>iMaximalLots)      BuyLot=iMaximalLots;
   if(SelLot>iMaxima

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

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

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

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

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

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

Стоимость полного кода
497,30₽ ≈ $6.08