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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.