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

PipeBomb

pipebomb_ea (2).mq4
Вы автор или правообладатель?

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

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

О программе

PipeBomb — торговый советник для платформы MetaTrader 4, разработанный автором Bluto. Советник автоматизирует процесс торговли, генерируя сигналы на основе пересечения линий пользовательского индикатора StepMA и открывая сделки в соответствии с этими сигналами.

Советник поддерживает фиксированный и процентный риск через параметр управления денежными средствами: при активном режиме размер позиции рассчитывается на основе текущего баланса счёта и заданного процента риска. Также доступны стоп-лосс и тейк-профит для контроля рисков.

Советник отслеживает открытые позиции на счёте, обновляет стоп-лоссы при благоприятном движении цены и закрывает позиции противоположного направления при смене торгового сигнала. Все операции выполняются через стандартные торговые API MetaTrader 4.

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

НастройкаОписание
LotSize Размер лота — Размер лота для открытия позиции при отключённом управлении денежными средствами.
Slippage Слиппаж — Допустимое отклонение цены при исполнении рыночных ордеров.
StopLoss Стоп-лосс — Уровень стоп-лосса в пунктах для ограничения убытков по позиции.
TakeProfit Тейк-профит — Уровень тейк-профита в пунктах для фиксации прибыли по позиции.
RiskPercent Процент риска — Процент от баланса счёта, используемый для расчёта размера позиции при активном управлении денежными средствами.
UseMoneyMgmt Использовать управление денежными средствами — Переключатель, определяющий, используется ли автоматический расчёт размера позиции на основе процентного риска или фиксированный размер лота.
Получить полный код

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

extern double LotSize=5;
extern int    Slippage=3;
extern double StopLoss=20;
extern double TakeProfit=600;
extern double RiskPercent=2.0;
extern bool   UseMoneyMgmt=true;

int           MagicNumber=0;
int           ticket;
int           BuyOrders=0;
int           SellOrders=0;
int           i;

bool          Buy_A_Bomb=false, Sell_A_Bomb=false;
double        StepMA_Up_1=0;
double        StepMA_Up_2=0;
double        StepMA_Dn_1=0;
double        StepMA_Dn_2=0;
double        MM_MinLotSize=0;
double        MM_MaxLotSize=0;
double        MM_LotStep=0;
double        MM_Decimals=0;
double        MM_OrderLotSize=0;
int           MM_AcctLeverage=0;
int           MM_CurrencyLotSize=0;

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

int deinit()
{
 return(0);
}

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

  MM_AcctLeverage = AccountLeverage();
  MM_MinLotSize = MarketInfo(Symbol(),MODE_MINLOT);
  MM_MaxLotSize = MarketInfo(Symbol(),MODE_MAXLOT);
  MM_LotStep = MarketInfo(Symbol(),MODE_LOTSTEP);
  MM_CurrencyLotSize = MarketInfo(Symbol(),MODE_LOTSIZE);

  if(MM_LotStep == 0.01) {MM_Decimals = 2;}
  if(MM_LotStep == 0.1) {MM_Decimals = 1;}

  if (UseMoneyMgmt == true)
   {
    MM_OrderLotSize = AccountEquity() * (RiskPercent * 0.01) / (MM_CurrencyLotSize / MM_AcctLeverage);
    MM_OrderLotSize = StrToDouble(DoubleToStr(MM_OrderLotSize,MM_Decimals));
   }
    else
   {
    MM_OrderLotSize = LotSize;
   }

  if (MM_OrderLotSize < MM_MinLotSize) {MM_OrderLotSize = MM_MinLotSize;}
  if (MM_OrderLotSize > MM_MaxLotSize) {MM_OrderLotSize = MM_MaxLotSize;}

  double StepMA_Up_1 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,0,1);
  double StepMA_Up_2 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,0,2);
  double StepMA_Dn_1 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,1,1);
  double StepMA_Dn_2 = iCustom(NULL,Period(),"N_StepMA_1_Email",7,1,0,500,false,1,2);

  if(StepMA_Up_1 < StepMA_Dn_1 && StepMA_Up_2 > StepMA_Dn_2) {Sell_A_Bomb=true;Buy_A_Bomb=false;}
  if(StepMA_Up_1 > StepMA_Dn_1 && StepMA_Up_2 < StepMA_Dn_2) {Sell_A_Bomb=false;Buy_A_Bomb=true;}

  BuyOrders=0;
  SellOrders=0; 

  for(i=OrdersTotal();i >= 0;i--) 
   {
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) 
     {
      if (OrderType() == OP_BUY && StopLoss > 0)
       {
        BuyOrders++;
        if (StopLoss > 0 && Bid - (StopLoss * Point) > OrderStopLoss())
         {
          OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid - (StopLoss * Point),Digits),OrderTakeProfit(),0);
         }
       }   
      if (OrderType() == OP_SELL)
       {
        SellOrders++;
        if (StopLoss > 0 && Ask + (StopLoss * Point) < OrderStopLoss())
         {
          OrderModify(OrderTicket(),O

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

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

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

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

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

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

Стоимость полного кода
615,50₽ ≈ $7.52