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

Trend_Catcher

trend_catcher.mq4

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

gg_master.mq5MQL5 / MetaTrader 5 · 1 общих теговxbest_rv3 (1).47.mq4MQL4 / MetaTrader 4 · 1 общих теговcoin_flip.mq4MQL4 / MetaTrader 4 · 1 общих теговbambang aryawan v2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!caio trader.mq5MQL5 / MetaTrader 5 · 1 общих теговoracle v2.0.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Trend_Catcher — это торговый советник для MetaTrader 4, использующий комбинацию трёх скользящих средних (SMA) и индикатора Parabolic SAR для генерации торговых сигналов. Советник анализирует текущие и предыдущие свечи в рамках выбранного таймфрейма, формируя сигналы на пересечении ценовых уровней SAR и соотношении быстрых и медленных скользящих средних.

При открытии позиций советник автоматически рассчитывает стоп-лосс на основе Parabolic SAR и тейк-профит как кратное значение стоп-лосса. Доступны ручебные настройки стоп-лосса и тейк-профита в пунктах. Лот рассчитывается исходя из процента баланса счёта и заданного риска.

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

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

НастройкаОписание
Candle_TF Таймфрейм свечи, в рамках которой советник может открыть только один ордер. Например, при выборе PERIOD_D1 советник открывает только один ордер на текущей дневной свече.
PeriodMA_slow Период медленной простой скользящей средней (SMA), используемой для формирования торговых сигналов.
PeriodMA_fast Период первой быстрой простой скользящей средней (SMA), используемой для формирования торговых сигналов.
PeriodMA_fast2 Период второй быстрой простой скользящей средней (SMA), используемой для формирования торговых сигналов.
Step_Sar Шаг для индикатора Parabolic SAR, определяющий чувствительность индикатора к изменениям цены.
Max_Sar Максимальное значение шага для индикатора Parabolic SAR.
Auto_SL Включает автоматическую установку стоп-лосса на основе индикатора Parabolic SAR. При значении false стоп-лосс задаётся вручную в пунктах параметром SL.
Auto_TP Включает автоматический расчёт тейк-профита как кратного значения стоп-лосса. При значении false тейк-профит задаётся вручную в пунктах параметром TP.
minSL Минимально допустимое значение стоп-лосса в пунктах. Если рассчитанный стоп-лосс меньше этого значения, ордер не открывается.
maxSL Максимально допустимое значение стоп-лосса в пунктах. Если рассчитанный стоп-лосс превышает это значение, ордер не открывается.
SL_koef Множитель для расчёта стоп-лосса на основе значения индикатора Parabolic SAR. При значении 1 стоп-лосс устанавливается точно на уровне SAR.
TP_koef Множитель для расчёта тейк-профита от стоп-лосса. Например, при значении 2 тейк-профит равен удвоенному стоп-лоссу.
SL Стоп-лосс в пунктах, применяется при отключённом автоматическом стоп-лоссе (Auto_SL = false).
TP Тейк-профит в пунктах, применяется при отключённом автоматическом тейк-профите (Auto_TP = false).
Risk Процент от баланса счёта, используемый для расчёта размера лота при открытии позиции. Зависит от стоп-лосса.
Martin Переключатель, активирующий систему мартингейла. При значении true при убыточном закрытии предыдущего ордера размер следующего ордера увеличивается.
Koef Множитель для расчёта размера лота при мартингейле. Если последний ордер закрыт с убытком, риск следующего ордера умножается на это значение.
Profit_Level Уровень прибыли в пунктах, при достижении которого позиция переводится в безубыток с учётом параметра SL_Plus.
SL_Plus Дополнительное количество пунктов, добавляемых к уровню безубытка при переводе позиции в безубыток.
Profit_Level2 Уровень прибыли в пунктах, при достижении которого активируется трейлинг-стоп.
TrailingStop2 Расстояние трейлинг-стопа в пунктах, на которое сдвигается стоп-лосс вслед за ценой после достижения уровня Profit_Level2.
Slip Допустимое проскальзывание при выполнении рыночных ордеров, в пунктах.
Magic Магический номер для фильтрации ордеров, управляемых советником.
Получить полный код

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

#property version   "1.00"
#property strict

input ENUM_TIMEFRAMES Candle_TF=PERIOD_CURRENT;

extern int    PeriodMA_slow=200;

extern int    PeriodMA_fast=50;

extern int    PeriodMA_fast2=25;

extern double Step_Sar = 0.004;
extern double Max_Sar  = 0.2;

extern bool   Auto_SL=true;

extern bool   Auto_TP=true;

extern int    minSL=10;

extern int    maxSL=200;

extern double SL_koef=1;

extern double TP_koef=1;

extern int    SL=20;

extern int    TP=200;

extern double Risk=2;

extern bool   Martin=true;

extern double Koef=2;

extern int Profit_Level=500;

extern int SL_Plus=1;

extern int Profit_Level2=500;

extern int TrailingStop2=10;

extern int    Slip=3;

extern int    Magic=1;

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

void OnDeinit(const int reason)
  {

  }

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

   int b=0,s=0,n=0,total=OrdersTotal();
   double bez=NormalizeDouble(Profit_Level*Point,Digits);
   double sl_plus=NormalizeDouble(SL_Plus*Point,Digits);
   double bez2=NormalizeDouble(Profit_Level2*Point,Digits);
   double tr=NormalizeDouble(TrailingStop2*Point,Digits);
   for(int i1=total-1; i1>=0; i1--)
      if(OrderSelect(i1,SELECT_BY_POS))
         if(OrderSymbol()==Symbol())
            if(OrderMagicNumber()==Magic)
              {
               if(OrderType()==OP_BUY)
                 {
                  b++;n++;
                  if(Bid-OrderOpenPrice()>bez && OrderStopLoss()<NormalizeDouble(OrderOpenPrice()+sl_plus,Digits) && OrderStopLoss()!=NormalizeDouble(OrderOpenPrice()+sl_plus,Digits))
                    {bool mod=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+sl_plus,Digits),OrderTakeProfit(),0,0);Print("????????? Buy",NormalizeDouble(OrderOpenPrice()+sl_plus,Digits));}
                  if(Bid-OrderOpenPrice()>bez2 && Bid-OrderStopLoss()>tr && OrderStopLoss()!=NormalizeDouble(Bid-tr,Digits))
                    {bool mod=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-tr,Digits),OrderTakeProfit(),0,0);Print("???????? Buy",NormalizeDouble(Bid-tr,Digits));}
                 }
               if(OrderType()==OP_SELL)
                 {
                  s++;n++;
                  if(OrderOpenPrice()-Ask>bez && OrderStopLoss()>NormalizeDouble(OrderOpenPrice()-sl_plus,Digits) && OrderStopLoss()!=NormalizeDouble(OrderOpenPrice()-sl_plus,Digits))
                    {bool mod=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-sl_plus,Digits),OrderTakeProfit(),0,0);Print("????????? Sell",NormalizeDouble(OrderOpenPrice()-sl_plus,Digits));}
                  if(OrderOpenPrice()-Ask>bez2)
                     if(OrderStopLoss()-Ask>tr || OrderStopLoss()==0)
                        if(OrderStopLoss()!=NormalizeDouble(Ask+tr,Digits))
                          {bool mod=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+tr,Digits),OrderTakeProfit(),0,0);Print("???????? Sell",NormalizeDouble(Ask+tr,Digits));}
                 }
              }

   int h=0,accTotal1=OrdersHistoryTotal();
   double h_Percent=0;
   double Lot_History=0;
   for(int h_1=0;h_1<accTotal1;h_1++)
    

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

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

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

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

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

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

Стоимость полного кода
505,40₽ ≈ $6.18