Generic A-TLP
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «generic a-tlp v.9.02.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Торговый советник для MetaTrader 4, работающий на таймфрейме M15. Использует канальный анализ на основе скользящей средней и стандартного отклонения, а также скользящую среднюю на M1 для определения направления. Советник открывает позиции при пробое границы канала и закрывает их по нескольким фильтрам выхода: по времени, по ценовому движению и по развороту скользящей средней. Поддерживает динамический тейк-профит, перевод в безубыток, автоматический расчёт лота по риску, фильтры по спреду, дневному диапазону и волатильности, а также ограничения по дням недели и часовым сессиям.
Настройки программы
| Настройка | Описание |
|---|---|
| MagicNumber | Магический номер — Идентификатор ордеров, открытых данным советником. |
| Comm | Комментарий — Текстовый комментарий, добавляемый к каждой сделке. |
| Max_Spread | Максимальный спред — Допустимый максимальный спред в пунктах для размещения сделок. |
| Slipage | Слиппейдж — Допустимое проскальзывание цены при исполнении ордера. |
| Stop_Loss | Стоп-лосс — Фиксированный стоп-лосс в пунктах от цены входа. |
| Take_Profit | Тейк-профит — Фиксированный тейк-профит в пунктах от цены входа. |
| use_dyn_TP | Динамический TP — Включает расчёт тейк-профита как процент от ширины канала. |
| TP_perc | Процент TP — Процент ширины канала, используемый для динамического тейк-профита. |
| min_TP | Минимальный TP — Минимальное значение тейк-профита в пунктах при использовании динамического расчёта. |
| use_BE | Безубыток — Включает перемещение стоп-лосса в безубыток при достижении указанного профита. |
| X | Порог безубытка — Количество пунктов движения цены в пользу, при котором активируется перевод в безубыток. |
| Y | Смещение стопа — Смещение стоп-лосса в пунктах от цены входа при переводе в безубыток. |
| Channel_Period | Период канала — Период расчёта скользящей средней и канала волатильности. |
| Entry_Break | Пробой для входа — Количество пунктов, на которое цена должна пробить границу канала для входа в сделку. |
| Exit_Distance | Расстояние выхода — Отступ от границы канала для срабатывания фильтра выхода. |
| MaxDailyRange | Макс. дневной диапазон — Максимальный допустимый дневной диапазон в пунктах для входа в сделку. |
| Lots | Лот — Фиксированный размер торгового лота. |
| Auto_Risk | Авто-риск — Процент от свободного маржи для автоматического расчёта размера лота. |
| Min_Volatility | Мин. волатильность — Минимальная ширина канала в пунктах, необходимая для входа в сделку. |
| Exit_Profit_Pips | Прибыль для выхода 2 — Минимальная прибыль в пунктах для срабатывания фильтра выхода по ценовому движению. |
| Reverse_Profit | Прибыль для разворота — Минимальная прибыль в пунктах для срабатывания фильтра выхода при развороте скользящей средней. |
| Exit_Minutes | Мин. время выхода — Минимальное время нахождения ордера в минутах для срабатывания временного фильтра выхода. |
| Time_Profit_Pips | Прибыль для времени — Минимальная прибыль в пунктах, при которой срабатывает временной фильтр выхода. |
| Filter_1 | Фильтр выхода 1 — Включает или отключает первый фильтр выхода по времени и прибыли. |
| Filter_2 | Фильтр выхода 2 — Включает или отключает второй фильтр выхода по пробою канала. |
| Filter_3 | Фильтр выхода 3 — Включает или отключает третий фильтр выхода по развороту скользящей средней. |
| Col_info | Цвет панели — Цвет информационной панели на графике. |
| S1 | Раздел Дни недели — Заголовок раздела настроек фильтра по дням недели. |
| monday | Понедельник — Разрешает или запрещает торговлю в понедельник. |
| monday_open | Пн открытие — Время начала торговой сессии в понедельник. |
| monday_pause_start | Пн пауза старт — Время начала перерыва в понедельник. |
| monday_pause_stop | Пн пауза стоп — Время окончания перерыва в понедельник. |
| monday_close | Пн закрытие — Время окончания торговой сессии в понедельник. |
| tuesday | Вторник — Разрешает или запрещает торговлю во вторник. |
| tuesday_open | Вт открытие — Время начала торговой сессии во вторник. |
| tuesday_pause_start | Вт пауза старт — Время начала перерыва во вторник. |
| tuesday_pause_stop | Вт пауза стоп — Время окончания перерыва во вторник. |
| tuesday_close | Вт закрытие — Время окончания торговой сессии во вторник. |
| wednesday | Среда — Разрешает или запрещает торговлю в среду. |
| wednesday_open | Ср открытие — Время начала торговой сессии в среду. |
| wednesday_pause_start | Ср пауза старт — Время начала перерыва в среду. |
| wednesday_pause_stop | Ср пауза стоп — Время окончания перерыва в среду. |
| wednesday_close | Ср закрытие — Время окончания торговой сессии в среду. |
| thursday | Четверг — Разрешает или запрещает торговлю в четверг. |
| thursday_open | Чт открытие — Время начала торговой сессии в четверг. |
| thursday_pause_start | Чт пауза старт — Время начала перерыва в четверг. |
| thursday_pause_stop | Чт пауза стоп — Время окончания перерыва в четверг. |
| thursday_close | Чт закрытие — Время окончания торговой сессии в четверг. |
| friday | Пятница — Разрешает или запрещает торговлю в пятницу. |
| friday_open | Пт открытие — Время начала торговой сессии в пятницу. |
| friday_pause_start | Пт пауза старт — Время начала перерыва в пятницу. |
| friday_pause_stop | Пт пауза стоп — Время окончания перерыва в пятницу. |
| friday_close | Пт закрытие — Время окончания торговой сессии в пятницу. |
| sunday | Воскресенье — Разрешает или запрещает торговлю в воскресенье. |
| sunday_open | Вс открытие — Время начала торговой сессии в воскресенье. |
| sunday_pause_start | Вс пауза старт — Время начала перерыва в воскресенье. |
| sunday_pause_stop | Вс пауза стоп — Время окончания перерыва в воскресенье. |
| sunday_close | Вс закрытие — Время окончания торговой сессии в воскресенье. |
| S2 | Раздел Ролловер — Заголовок раздела настроек фильтра ролловера. |
| use_rollover_filter | Фильтр ролловера — Включает закрытие позиций в период ролловера. |
| rollover_start | Время ролловера старт — Время начала периода ролловера. |
| rollover_end | Время ролловера стоп — Время окончания периода ролловера. |
Поиск по коду файла
#property version "9.02"
#property strict
#define _TRADE_ 1
#define _PAUSE_ 2
enum _EventYesNo{
YES = 1, //ДА
NO = 2 //НЕТ
};
enum _EventFilter{
ON = 1,
OFF = 2
};
input int MagicNumber = 11052016;
input string Comm = "Generic A-TLP v9.0"; //Комментарий
input double Max_Spread = 3;
input int Slipage = 1;
extern double Stop_Loss = 38;
extern double Take_Profit = 35;
input bool use_dyn_TP = false; //использовать динамический TP
input int TP_perc = 80; //%% TP от размера канала
input int min_TP = 10;
input bool use_BE = false; //использовать перевод в безубыток
input double X = 7; //Если текущая цена лучше цены входа на Х пунктов
input double Y = 1; //перемещаем СЛ на Y пунктов в профит
input int Channel_Period = 13;
input int Entry_Break = 1;
input int Exit_Distance = -13;
input int MaxDailyRange = 1000;
input double Lots = 0.1;
input double Auto_Risk = 0.0;
input int Min_Volatility = 20;
input int Exit_Profit_Pips = -12;
int ma_period = 2;
input int Reverse_Profit = 20;
input int Exit_Minutes = 140;
input int Time_Profit_Pips = 0;
input _EventFilter Filter_1 = 1; //Фильтр ¹1 (на выход из сделки)
input _EventFilter Filter_2 = 1; //Фильтр ¹2 (на выход из сделки)
input _EventFilter Filter_3 = 1; //Фильтр ¹3 (на выход из сделки)
input color Col_info = C'176,162,168'; //Цвет инфо панели
double maxlot = 0.01;
double lotstep = 0.01;
double old_point = 0.0001;
double minlot = 0.0;
int lotsize = 0;
int stoplevel = 0;
double lots = 0;
int count_sell;
int count_buy;
datetime day_of_trade;
string tr_hr = "";
string tp_info = "";
string be_info = "";
int slippage;
datetime need_to_verify_market_info;
string InpFileName; // Имя файла
string fileName = "EA_Generic"; // Имя файла
string InpDirectoryName = "LOGS"; // Имя каталога
input string S1 = " DayOfWeek Filter";
input _EventYesNo monday = 1; //торгуем в ПОНЕДЕЛЬНИК?
input string monday_open = "00:00";
input string monday_pause_start = "01:00";
input string monday_pause_stop = "22:00";
input string monday_close = "23:59";
input _EventYesNo tuesday = 1; //торгуем во ВТОРНИК?
input string tuesday_open = "00:00";
input string tuesday_pause_start = "01:00";
input string tuesday_pause_stop = "22:00";
input string tuesday_close = "23:59";
input _EventYesNo wednesday = 1; //торгуем в СРЕДУ?
input string wednesday_open = "00:00";
input string wednesday_pause_start = "01:00";
input string wednesday_pause_stop = "22:00";
input string wednesday_close = "23:59";
input _EventYesNo thursday = 1; //торгуем в ЧЕТВЕРГ?
input string thursday_open = "00:00";
input string thursday_pause_start = "01:00";
input string thursday_pause_stop = "22:00";
input string thursday_close = "23:59";
input _EventYesNo friday = 1; //торгуем в ПЯТНИЦУ?
input string friday_open = "00:00";
input string friday_pause_start = "01:00";
input string friday_pause_stop = "22:00";
input string friday_close = "23:59";
input _EventYesNo sunday = 2; //торгуем в ВОСКРЕСЕНЬЕ?
input string sunday_open = "08:30";
input string sunday_pause_start = "15:30";
input string sunday_pause_stop = "17:55";
input string sunday_close = "21:35";
input string S2 = " Roll Over Filter";
input _EventYesNo use_rollover_filter = 1; //закрывать сделки в ролловер
input string rollover_start = "23:55"; //время начала ролловера
input string rollover_end = "00:35"; //время окончания ролловера
int flag_trade;
datetime time1,
time2,
time3,
time4;
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
Comment("");
fRectLabelDelete(0,"info_panel");
}
void OnTick()
{
// код доступен только после оплаты
}
void OpenTrade(string type){
double price = 0;
double range = 0;
int cmd = -1;
color col_type = clrNONE;
if(type == "BUY"){
cmd = OP_BUY;
col_type = clrAqua;
range = (iOpen(NULL,PERIOD_D1,0) - Bid)/old_point;
}
if(type == "SELL"){
cmd = OP_SELL;
col_type = clrRed;
range = (Bid - iOpen(NULL,PERIOD_D1,0))/old_point;
}
for(int count = 0; count < 5; count++){
RefreshRates();
if(type == "BUY") price = Ask;
if(type == "SELL") price = Bid;
int ticket = OrderSend(Symbol(), cmd, lots, price, slippage, 0, 0, Comm,
MagicNumber, 0, col_type);
Sleep(3000);
if(ticket > 0){
if(!OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES)){
string q = __FUNCTION__ + ": не удалось выделить ордер " +
IntegerToString(ticket) + "! " + fMyErDesc();
Print(q);
fWriteDataToFile(q);
break;
}
else{
string q = __FUNCTION__ + ": ордер " + type + " открыт по цене " +
DoubleToStr(OrderOpenPrice(),Digits) + "; DailyRange = (" +
DoubleToStr(range,1) + ") пипс.";
Print(q);
fWriteDataToFile(q);
break;
}
}
else{
string q = __FUNCTION__ + ": ордер " + type +
" не был открыт!: " + fMyErDesc();
Print(q);
fWriteDataToFile(q);
}
}
}
bool fGetRollOver(void){
if(use_rollover_filter == 2){ //не закрывать сделки в ролловер
if(StrToTime(rollover_start) > StrToTime(rollover_end)){
if(TimeCurrent() >= StrToTime(rollover_start) || TimeCurrent() < StrToTime(rollover_end))
return(true);
}
else{
if(TimeCurrent() >= StrToTime(rollover_start) && TimeCurrent() < StrToTime(rollover_end))
return(true);
}
}
return(false);
}
string fInfoTradeHours(void){
switch(DayOfWeek()){
case 0: { if(sunday == 2){
return( "\n"
+ "\n no trade today"
+ "\n"
+ "\n");
}
else{
if(sunday_pause_start == "0"){
return( "\n Start Hour (Broker Time) = " + sunday_open
+ "\n End Hour (Broker Time) = " + sunday_close
Показано первые 50% кода (символов: 33057)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.