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

robotpowerm5_meta4v1.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует индикаторы Bulls Power и Bears Power с заданным периодом и открывает сделки в зависимости от суммарного знака их значений: при положительном значении открывается покупка, при отрицательном — продажа.

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

Для идентификации своих ордеров советник использует пользовательский идентификатор, что позволяет запускать несколько советников одновременно на одном счёте с различными параметрами. Торговые операции выполняются через стандартный функцию OrderSend платформы MetaTrader 4.

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

НастройкаОписание
BullBearPeriod Период расчёта индикаторов Bulls Power и Bears Power, используемых для определения сигнала на открытие позиции.
lots Объём торговой позиции в лотах.
TrailingStop Расстояние трейлинг-стопа в пунктах для защиты прибыли по открытым позициям.
takeProfit Уровень тейк-профита в пунктах. Рекомендуется не устанавливать более 150 пунктов.
stopLoss Уровень стоп-лосса в пунктах. В настройке указано, что стоп-лосс не рекомендуется использовать.
slippage Допустимое проскальзывание цены при выполнении торговых ордеров в пунктах.
nameEA Идентификатор советника. Позволяет нескольким советникам одновременно существовать на одном счёте с различными значениями параметров.
Получить полный код

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

extern int BullBearPeriod=5;
extern double lots         = 1.0;           // 
extern double TrailingStop = 15;            // trail stop in points
extern double takeProfit   = 150;            // recomended  no more than 150
extern double stopLoss     = 45;             // do not use s/l
extern double slippage     = 3;

extern string nameEA       = "DayTrading";  // EA identifier. Allows for several co-existing EA with different values

double bull,bear;

double realTP, realSL,b,s,sl,tp;
bool isBuying = false, isSelling = false, isClosing = false;
int cnt, ticket;

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

int deinit() {
   return(0);
}

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

   if(Bars < 200) {
      Print("Not enough bars for this strategy - ", nameEA);
      return(-1);
   }
   calculateIndicators();                      // Calculate indicators' value   

   int totalOrders = OrdersTotal();
   int numPos = 0;
   for(cnt=0; cnt<totalOrders; cnt++) {        // scan all orders and positions...
      OrderSelect(cnt, SELECT_BY_POS);         // the next line will check for ONLY market trades, not entry orders
      if(OrderSymbol() == Symbol() && OrderType() <= OP_SELL ) {   // only look for this symbol, and only orders from this EA      
         numPos++;
         if(OrderType() == OP_BUY) {           // Check for close signal for bought trade

            if(TrailingStop > 0) {             // Check trailing stop
               if(Bid-OrderOpenPrice() > TrailingStop*Point)
                {
                  if(OrderStopLoss() < (Bid - TrailingStop*Point))
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Blue);
               }
            }
         } else {                              // Check sold trade for close signal

            if(TrailingStop > 0) {             // Control trailing stop
               if(OrderOpenPrice() - Ask > TrailingStop*Point)
                {
                  if(OrderStopLoss() == 0 || OrderStopLoss() > Ask + TrailingStop*Point)
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Red);
               }           
            } 
         }
      }
   }

   if(numPos < 1) {   
      if(AccountFreeMargin() < 1000*lots) {
         Print("Not enough money to trade ",

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

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

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

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

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

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

Стоимость полного кода
315,90₽ ≈ $3.86