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

Keltner Breakout

keltner breakout fxfishermanfiltered.mq4
Вы автор или правообладатель?

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

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

О программе

Keltner Breakout — торговый советник для MetaTrader 4, работающий на сигналах индикатора Keltner Channels. Советник определяет точки входа по пробою канала и управляет позицией с помощью стоп-лосса, тейк-профита, безубытка и трейлинг-стопа. Дополнительно доступны фильтр волатильности Damiani на таймфреймах M15 и M30, фильтр торговой сессии и возможность расчёта размера лота как фиксированного значения, так и в процентах от баланса.

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

НастройкаОписание
_______Position_______ Раздел «Позиция» — Текстовый разделитель группы параметров позиции в диалоге настроек.
Lots Лот — Фиксированный размер лота для совершения сделок.
Lots_PCT Лот в процентах — Процент от баланса счёта, используемый для расчёта размера лота при включённом режиме процентного лота.
Use_Lots_PCT Использовать процент лота — Переключатель между фиксированным лотом и расчётом лота в процентах от баланса.
TP Тейк-профит — Уровень фиксации прибыли в пунктах (0 отключает тейк-профит).
SL Стоп-лосс — Расстояние стоп-лосса в пунктах от цены входа.
SL_Mode Режим стоп-лосса — Режим расчёта уровня стоп-лосса (фиксированный, по ATR, по волатильности и др.).
Breakeven_Pips Безубыток в пунктах — Количество пунктов прибыли, при котором стоп-лосс перемещается на уровень входа.
______TrailingStop_____ Раздел «Трейлинг-стоп» — Текстовый разделитель группы параметров трейлинг-стопа в диалоге настроек.
tss0 Описание режима 0–2 — Текстовое описание режимов трейлинг-стопа: отключён, фиксированный стоп, ATR.
tss1 Описание режима 3 — Текстовое описание режима трейлинг-стопа половинной волатильности.
tss2 Описание режима 4 — Текстовое описание режима трейлинг-стопа по пробою вчерашнего диапазона.
tss3 Описание режима 5 — Текстовое описание режима безубытка в трейлинг-стопе.
0 = disabled, 1 = Fixed SL, 2 = ATR, 3 = Half Volatility, 4 = Breakout Yesterday Hi/Lo (TS_Mode) Режим трейлинг-стопа — Режим работы трейлинг-стопа: отключён, фиксированный стоп, по ATR, по половинной волатильности, по пробою и безубыток.
TS_Trigger Триггер трейлинг-стопа — Расстояние в пунктах, которое должно быть пройдено в прибыль, прежде чем трейлинг-стоп начнёт активироваться.
TS_Sensitivity Чувствительность трейлинг-стопа — Шаг смещения трейлинг-стопа в пунктах при его перемещении.
applied only if TrailingStopMode = 2 or 3 (TS_DynamicFactor) Динамический коэффициент — Множитель, применяемый при расчёте трейлинг-стопа в режимах ATR или половинной волатильности.
1 chart, 0 tick, > 0 specified min (Evaluate_Interval) Интервал анализа — Периодичность анализа графика для поиска сигналов: по тикам, по графику или в минутах.
_______Indicators______ Раздел «Индикаторы» — Текстовый разделитель группы параметров индикаторов в диалоге настроек.
Extra_Pips Дополнительные пункты — Дополнительный отступ в пунктах от сигнала индикатора для подтверждения входа.
Keltner_Period Период Кельтнера — Период расчёта канала Кельтнера, используемый в вызове индикатора.
Use300 Использовать параметр 300 — Переключатель для передачи дополнительного параметра 300 в вызов индикатора Keltner Channels.
_______Damiani________ Раздел «Damiani» — Текстовый разделитель группы настроек фильтра Damiani в диалоге настроек.
Filter_Damiani_15 Фильтр Damiani M15 — Включение фильтра волатильности Damiani на 15-минутном таймфрейме (0 — отключён, 1 — включён).
Filter_Damiani_30 Фильтр Damiani M30 — Включение фильтра волатильности Damiani на 30-минутном таймфрейме (0 — отключён, 1 — включён).
_______Session_______ Раздел «Сессия» — Текстовый разделитель группы настроек торговой сессии в диалоге настроек.
Filter_Session Фильтр сессии — Включение фильтра, запрещающего торговлю вне указанного временного окна сессии.
From_Hour Час начала сессии — Начальный час торговой сессии (по часовому поясу терминала).
From_Min Минута начала сессии — Начальная минута торговой сессии.
To_Hour Час окончания сессии — Конечный час торговой сессии (по часовому поясу терминала).
To_Min Минута окончания сессии — Конечная минута торговой сессии.
Получить полный код

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

#include <stdlib.mqh>

#define TS_MODE_DISABLE 0
#define TS_MODE_FIXED_SL 1
#define TS_MODE_ATR 2
#define TS_MODE_HALF_VOLATILITY 3
#define TS_MODE_BREAKOUT 4
#define TS_MODE_BREAKEVEN 5

extern string    _______Position_______;
extern double    Lots=1;
extern double    Lots_PCT=10;
extern bool      Use_Lots_PCT=false;
extern int       TP=0;
extern int       SL=30;
extern int       SL_Mode=0;
extern int       Breakeven_Pips=0;

extern string    ______TrailingStop_____;
extern string    tss0 = "0 = disabled, 1 = Fixed SL, 2 = ATR";
extern string    tss1 = "3 = Half Volatility";
extern string    tss2 = "4 = Breakout Yesterday Hi/Lo";
extern string    tss3 = "5 = Breakeven";
extern int       TS_Mode=0;       // 0 = disabled, 1 = Fixed SL, 2 = ATR, 3 = Half Volatility, 4 = Breakout Yesterday Hi/Lo
extern int       TS_Trigger=30;
extern int       TS_Sensitivity=3;
extern double    TS_DynamicFactor=0.5;   // applied only if TrailingStopMode = 2 or 3
extern int       Evaluate_Interval=1; // -1 chart, 0 tick, > 0 specified min

extern string    _______Indicators______;
extern int       Extra_Pips=1;
extern int       Keltner_Period = 10;
extern bool      Use300 = false;
extern string    _______Damiani________;
extern int      Filter_Damiani_15=0;
extern int      Filter_Damiani_30=0;

extern string    _______Session_______;
extern bool Filter_Session=false;
extern int From_Hour=13;
extern int From_Min=0;
extern int To_Hour=18;
extern int To_Min=0;

string expert_name = "Keltner Breakout";
int main_magic;
int open_slippage=5;
int close_slippage=10;

int orderType;
double orderPrice;
datetime timeNextEval;

double   myPoint;
int     TradeStart;       // Start trades after time
int     TradeStop;      // Stop trading after time
bool YesStop;

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

int deinit()
  {
   return(0);
  }

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

int BuyNow()
{
    double trueSL, trueTP, lotSize;
    lotSize = GetLots(Symbol(), Lots, Lots_PCT, Use_Lots_PCT);
    trueSL = Get_SL(OP_BUY, Ask, Ask, SL, SL_Mode, TS_DynamicFactor);
    if (TP > 0) trueTP = Bid+(TP*myPoint);
    int ticket = OrderSendEx(Symbol(), OP_BUY, lotSize, Ask, open_slippage*myPoint, trueSL, trueTP, expert_name + " " + Symbol() + Period(), main_magic, 0, Yellow);
    if (ticket > 0) orderType = OP_BUY; orderPrice = Bid;
    return(ticket);
}

int SellNow()
{
  double trueSL, trueTP, lotSize;
  lotSize = GetLots(Symbol(), Lots, Lots_PCT, Use_Lots_PCT);
  trueSL = Get_SL(OP_SELL, Bid, Bid, SL, SL_Mode, TS_DynamicFactor);
  if (TP > 0) trueTP = Bid-(TP*myPoint);
  int ticket = OrderSendEx(Symbol(), OP_SELL, lotSize, Bid, open_slippage*myPoint, trueSL, trueTP, expert_name + " " + Symbol() + Period(), main_magic, 0, Yellow);
  if (ticket > 0) orderType = OP_SELL; orderPrice = Bid;
  return(ticket);
}

void ControlTrailingStop(int ticket, double SL, int TS_Mode, int TS_Trigger, double TS_DynamicFactor, int TS_Sensitivity)
{
  if (ticket == 0 || TS_Mode == 0) return;

  double ts;
  if (OrderSelectEx(ticket, SELECT_BY_TICKET, MODE_TRADES)==false) return;
  if (OrderType() == OP_BUY){
    ts = Get_SL(OP_BUY, OrderOpenPrice(), Bid, SL, TS_Mode, TS_DynamicFactor);
    if ((ts >= OrderStopLoss() + TS_Sensitivity*myPoint) && (ts > 0)  && (Bid >= OrderOpenPrice() + TS_Trigger*myPoint )) {
      if (Bid - ts >= 5 * myPoint)
      {
        OrderModifyEx(ticket, OrderOpenPrice(), ts, OrderTakeProfit(), 0, Red);
      }else if(Bid <= ts){
        CloseNow(ticket);
      }
    }

  }else if(OrderType() == OP_SELL){
    ts = Get_SL(OP_SELL, OrderOpenPrice(), Ask, SL, TS_Mode, TS_DynamicFactor);

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

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

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

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

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

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

Стоимость полного кода
1 068,40₽ ≈ $13.06