Ilan_TrendRacing_3.51ME
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «trend racing 3.51 me lite_tral_lasttp.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Ilan_TrendRacing_3.51ME — это торговый советник (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Программа предназначена для автоматического анализа ценовых данных и открытия сделок на основе комбинации нескольких технических индикаторов.
Советник формирует торговые сигналы, используя пересечение скользящих средних (MA), индикаторы CCI, ADX, RSI (через пользовательский индикатор MAonRSI), а также Accelerator Oscillator (AC). В зависимости от настроек включения/отключения фильтров, сигналы формируются при совпадении направления MA с другими индикаторами и прохождении AC определённого диапазона.
Продукт поддерживает управление несколькими ордерами с нарастающими лотами (экспоненциальное увеличение), функцию трейлинг-стопа, отдельную настройку тейк-профита для последних ордеров, а также режим закрытия убыточных позиций по уровню убытка. Визуализация включает отображение текущих сигналов, спреда и уровней на графике.
Советник включает систему контроля состояния с проверкой корректности параметров (стоп-лосс, деление валютных пар, количество ордеров) и выводом предупреждений. Доступна отладочная печать ключевых переменных для диагностики работы.
Настройки программы
| Настройка | Описание |
|---|---|
| Set1 | Set1 — Текстовый разделитель группы настроек. |
| ???????? ??????? ???? (Lots) | Lots — Начальный размер лота для открытия первого ордера. |
| ??????????? ?????????????? ?????????? ????? ?????? ???? (LotExponent) | LotExponent — Экспонента для расчёта размера лота при пирамидировании (размер увеличивается по формуле Lots * LotExponent^n). |
| ?????? ? ??????? (TakeProfit) | TakeProfit — Стандартное значение тейк-профита в пунктах для ордеров. |
| ??????????????? ???? ( ?????? ? ???????? ) )) (slip) | slip — Допустимое отклонение цены при исполнении ордеров (в пунктах). |
| ?????????? ??????????? ??????????? ??????? ( ???? ?? "0" ) (MaxTrades) | MaxTrades — Максимальное допустимое количество одновременно открытых ордеров. Если 0 — ограничение снимается. |
| ?????????????, ??????????? ???????? "????" ?????? ?? ????? ??? (MagicNumberB) | MagicNumberB — Магический номер для идификации ордеров Buy, открытых советником. |
| ?????????????, ??????????? ???????? "????" ?????? ?? ????? ???? (MagicNumberS) | MagicNumberS — Магический номер для идификации ордеров Sell, открытых советником. |
| Set2 | Set2 — Текстовый разделитель группы настроек. |
| Set3 | Set3 — Текстовый разделитель группы настроек. |
| ????????? ??????? (FirstPipStep) | FirstPipStep — Начальный шаг в пунктах для открытия последующих ордеров в цепочке. |
| ???????, ???????????? ??? ??????? ??????????, ??? ?????????? EconomProfil ??????? ?? FirstEconomOrd (LongPipStep) | LongPipStep — Увеличенный шаг в пунктах для пирамидирования при активном экономическом профиле. |
| ?? ??????? ????????????? ??? ? ??????????? ?? ?????? ?????? (PipStepExponent) | PipStepExponent — Основание экспоненты для расчёта шага между ордерами в цепочке. |
| Set4 | Set4 — Текстовый разделитель группы настроек. |
| ??????????? ?????????? (info) | info — Переключатель: отображает информационные метки на графике с названием советника и текущими сигналами. |
| ??????????? ?????? ????????? ???? ??????? ?? ??????????? (Zero) | Zero — Переключатель: отображает горизонтальную линию нулевого уровня по чистой прибыли на графике. |
| ?????????? ????????? ???????? (BarControl) | BarControl — Переключатель: ограничивает обработку торговых операций одним тиком на каждом новом баре. |
| ??????? (debug) | debug — Переключатель: включает вывод отладочной информации в журнал. |
| ????? ??? ?????????? ?????????? (EconomProfil) | EconomProfil — Переключатель: включает экономический профиль — переключение на увеличенный шаг пирамидирования после определённого количества ордеров. |
| ?????, ? ???????? ?????????? ??????????? ?????. ????????, ???? 4, ?? 4, 5, 6 ... ?????? ????? 1 ? ?? (FirstEconomOrd) | FirstEconomOrd — Номер ордера, начиная с которого включается экономический профиль (увеличенный шаг пирамидирования). |
| ????????? ?????? ?????????? ????????? ??????? ?????????? ?????? (Overlapping) | Overlapping — Переключатель: включает функцию перекрытия — закрытие менее прибыльного ордера при достижении определённого уровня прибыли другого. |
| ? ?????? ?????? ???????? ??????????. (LeadingOrder) | LeadingOrder — Минимальное количество ордеров в цепочке, при котором активируется функция перекрытия позиций. |
| ??????? ?????????? (FLPersent) | FLPersent — Процент от прибыли, используемый для определения уровня закрытия менее прибыльного ордера при перекрытии позиций. |
| UseTrailingStop | UseTrailingStop — Переключатель: включает функцию трейлинг-стопа для управления открытыми ордерами. |
| ??, ??????? ????? ?????????? (TrailTP) | TrailTP — Начальное значение тейк-профита для трейлинг-стопа (в пунктах). |
| ?????????? ?? ????, ?? ??????? ???????? ?? (TrailDist) | TrailDist — Расстояние трейлинг-стопа от точки входа (в пунктах). |
| ?? ??? TrailingStop (AutoTakeProfit) | AutoTakeProfit — Значение тейк-профита, используемое при активном трейлинг-стопе (в пунктах). |
| v1 | v1 — Текстовый комментарий к секции настроек LastTP. |
| SeparateLastTP | SeparateLastTP — Переключатель: включает отдельный тейк-профит для последних ордеров в цепочке. |
| ?? ?????????? ??????. ???? "0", ?? LastTP = TakeProfit (LastTP) | LastTP — Значение тейк-профита для последних ордеров в цепочке (в пунктах). Если 0, используется значение TakeProfit. |
| ? ??????, ? ???????? ???????? ???????? LastTP (LastTPNo) | LastTPNo — Номер ордера, начиная с которого применяется отдельный тейк-профит LastTP. |
| MASet | MASet — Текстовый комментарий к секции настроек скользящих средних. |
| ?????? ??????? ?? (MA1_Period) | MA1_Period — Период первой скользящей средней (MA1). |
| ?????? ????????? ?? (MA2_Period) | MA2_Period — Период второй скользящей средней (MA2). |
| DeltaSet | DeltaSet — Текстовый комментарий к секции настроек MA. |
| Comm1 | Comm1 — Текстовый комментарий к параметру DelFX. |
| ??????? ??????? ?? "?? ?????????" (DelFX) | DelFX — Коэффициент деления для параметров цены (применяется при 3 или 5-значных котировках). |
| Comm5 | Comm5 — Текстовый комментарий к параметрам CCI. |
| ????????? ???????? CCI (CCI_kontr) | CCI_kontr — Переключатель: включает использование индикатора CCI в качестве дополнительного фильтра сигнала. |
| ??????? ?? ??????? CCI (CCI_Lim) | CCI_Lim — Пороговое значение индикатора CCI, при превышении которого сигнал CCI считается нейтральным. |
| Comm6 | Comm6 — Текстовый комментарий к секции настроек. |
| Comm7 | Comm7 — Текстовый комментарий к секции настроек ADX. |
| ADX_kontr | ADX_kontr — Переключатель: включает использование индикатора ADX в качестве дополнительного фильтра сигнала. |
| ?????????? ???????? ????? ADX (ADX_Trend) | ADX_Trend — Пороговое значение индикатора ADX, при превышении которого тренд считается достаточно сильным для сигнала. |
| Comm8 | Comm8 — Текстовый комментарий к секции настроек MAonRSI. |
| Comm9 | Comm9 — Текстовый комментарий к секции настроек MAonRSI. |
| MAonRSI | MAonRSI — Переключатель: включает использование пользовательского индикатора MAonRSI вместо комбинации MA и CCI/ADX. |
| ?????? ?????????? RSI (RSI_Period) | RSI_Period — Период индикатора RSI, используемого в MAonRSI. |
| ?????? ?? ?????????? MAonRSI (MA_Period) | MA_Period — Период скользящей средней внутри пользовательского индикатора MAonRSI. |
| ??????? ??????? RSI (RSI_max) | RSI_max — Верхний порог RSI, при превышении которого сигнал MAonRSI обнуляется. |
| ?????? ??????? RSI (RSI_min) | RSI_min — Нижний порог RSI, при снижении ниже которого сигнал MAonRSI обнуляется. |
| Comm10 | Comm10 — Текстовый комментарий к параметру AClim. |
| ?????? ?? ?? ???? ?? ????? ??? ?????????? ???????? ?? ???????? ??????? ?????? (AClim) | AClim — Пороговое значение для диапазона Accelerator Oscillator, при котором сигнал считается подтверждённым. |
| Comm11 | Comm11 — Текстовый комментарий к параметру CloseAll и TradeStop. |
| ??????? ??????????? ???????? ???? "?????" ??????? (CloseAll) | CloseAll — Переключатель: при активации советник закрывает все открытые позиции на текущем символе. |
| ?????? ???????? ????? ??????, ???? ????????? ????????/?????? ?????? ?????????? (0.1 - 10% ? ??? ???? (TradeStop) | TradeStop — Пороговое значение соотношения средств к балансу (в процентах), при нарушении которого советник останавливает торговлю. |
| ????????? ???????? ?????? ?? ???????? (LL) | LL — Переключатель: включает режим закрытия всех позиций в направлении при достижении заданного уровня убытка. |
| ??????? ?????? ? ??????? ?????? (LossLevel) | LossLevel — Уровень убытка (в пунктах), при достижении которого происходит закрытие позиций в убыточном направлении. |
Поиск по коду файла
#include <stderror.mqh>
#include <stdlib.mqh>
#include <WinUser32.mqh>
extern string Set1 = "====== ????? ????????? =====";
extern double Lots = 0.01; // ???????? ??????? ????
extern double LotExponent = 1.4; // ??????????? ?????????????? ?????????? ????? ?????? ????
extern double TakeProfit = 8.0; // ?????? ? ???????
double StopLoss = 0; // ???? ? ???????
extern double slip = 5; // ??????????????? ???? ( ?????? ? ???????? ) ))
extern int MaxTrades = 30; // ?????????? ??????????? ??????????? ??????? ( ???? ?? "0" )
extern int MagicNumberB = 777; // ?????????????, ??????????? ???????? "????" ?????? ?? ????? ???
extern int MagicNumberS = 555; // ?????????????, ??????????? ???????? "????" ?????? ?? ????? ????
extern string Set2 = "===== ????????? ???????? =====";
extern string Set3 = " ?? ???????? ??????? ????????? ";
extern double FirstPipStep = 6.0; // ????????? ???????
extern double LongPipStep = 100; // ???????, ???????????? ??? ??????? ??????????, ??? ?????????? EconomProfil ??????? ?? FirstEconomOrd
extern double PipStepExponent= 1.8; // ?? ??????? ????????????? ??? ? ??????????? ?? ?????? ??????
extern string Set4 = "== ?????????????? ????????? ==";
extern bool info = True; // ??????????? ??????????
extern bool Zero = True; // ??????????? ?????? ????????? ???? ??????? ?? ???????????
extern bool BarControl = True; // ?????????? ????????? ????????
extern bool debug = False; // ???????
extern bool EconomProfil = False; // ????? ??? ?????????? ??????????
extern int FirstEconomOrd = 4; // ?????, ? ???????? ?????????? ??????????? ?????. ????????, ???? 4, ?? 4, 5, 6 ... ?????? ????? 1 ? ??? ?? ???.
extern bool Overlapping = True; // ????????? ?????? ?????????? ????????? ??????? ?????????? ??????
extern int LeadingOrder = 4; // ? ?????? ?????? ???????? ??????????.
extern int FLPersent = 7; // ??????? ??????????
extern bool UseTrailingStop = true;
extern double TrailTP = 5; // ??, ??????? ????? ??????????
extern double TrailDist = 5; // ?????????? ?? ????, ?? ??????? ???????? ??
extern int AutoTakeProfit = 50; // ?? ??? TrailingStop
extern string v1 = "????? LastTP";
extern bool SeparateLastTP = true;
extern int LastTP = 5; //?? ?????????? ??????. ???? "0", ?? LastTP = TakeProfit
extern int LastTPNo = 3; //? ??????, ? ???????? ???????? ???????? LastTP
int ExcludeTicketB=0;
int ExcludeTicketS=0;
extern string MASet = "======== ????????? ?? ========";
int MATimeFrame = 0; // 0 (????)- ?????? ???????? ???????; 1 - PERIOD_M1; 5 - PERIOD_M5; 15 - PERIOD_M15; 30 - PERIOD_M30;
extern int MA1_Period = 7; // ?????? ??????? ??
int MA1_Shift = 0; // ????? ??????? ??
extern int MA2_Period = 21; // ?????? ????????? ??
int MA2_Shift = 0; // ????? ????????? ??
extern string DeltaSet = "== ???? ???????????? ??????? ==";
extern string Comm1 = " ???????? ????? ? ??????, 0 - 5";
extern double DelFX = 2; // ??????? ??????? ?? "?? ?????????"
int MA_sf = 1; // ????? "????-????" ??? ????? ??????????? ??????
extern string Comm5 = "=== ??????? ???????? ?? CCI ===";
extern bool CCI_kontr = True; // ????????? ???????? CCI
extern double CCI_Lim = 170.0; // ??????? ?? ??????? CCI
int CCI_tf = 0; // ???? ????? CCI 0 - ???????
int CCI_Per = 14; // ?????? CCI
int CCI_sf = 1; // ????? "????-????" ??? ????? ????????? CCI
extern string Comm6 = "= ????????? ????????????? ?????? =";
extern string Comm7 = "=========== ?? ADX ==========";
extern bool ADX_kontr = False;
int TF_ADX = 0; // ????????? ADX, 0 - ???????
int Per_ADX = 7; // ?????? ADX
extern double ADX_Trend = 25; // ?????????? ???????? ????? ADX
int PriceADX = 0; // 0 - ???? ????????, 1 - ???? ????????
int Sh_ADX = 1; // ????? "????-????" ??? ????? ????????? ADX ( ?? ????? ???? 0! )
extern string Comm8 = "=== ????????? ????? ?? MAonRSI ===";
extern string Comm9 = " (????????? ?????????? ??????????)";
extern bool MAonRSI = False;
int MAonRSI_TimeFr = 0; // ?? ?????????? MAonRSI ( ?? ????????? - ??????? )
extern int RSI_Period = 8; // ?????? ?????????? RSI
int RSI_Metod = 6; // ????? ??????? ???? RSI
extern int MA_Period = 21; // ?????? ?? ?????????? MAonRSI
int MA_Metod = 1; // ????? ??????? ???? ??
double Delta_MAonRSI = 2.0; // ???? ?????????????????? ?????????? ( 0 - 5 )
extern int RSI_max = 70; // ??????? ??????? RSI
extern int RSI_min = 30; // ?????? ??????? RSI
extern string Comm10 = "= ????????? ??????? ????? ?? ??=";
extern double AClim = 0.0001; // ?????? ?? ?? ???? ?? ????? ??? ?????????? ???????? ?? ???????? ??????? ??????
extern string Comm11 = "== ??????, ????????, ???????? ==";
extern bool CloseAll = False; // ??????? ??????????? ???????? ???? "?????" ???????
extern double TradeStop = 0.0; // ?????? ???????? ????? ??????, ???? ????????? ????????/?????? ?????? ?????????? (0.1 - 10% ? ??? ?????.. )
extern bool LL = False; // ????????? ???????? ?????? ?? ????????
extern int LossLevel = 10; // ??????? ?????? ? ??????? ??????
int MA1_Price = 0; //0 - ???? ????????; 1 - ???? ????????; 2 - ???????????? ????; 3 - ??????????? ????;
int MA1_Method = 0; //0 - ??????? ?????????? ???????; 1 - ???????????????? ?????????? ???????;
int MA2_Price = 0;
int MA2_Method = 0;
double StopperB = 0.0, StopperS = 0.0;
double CCI_Del, ADX_Del, STOP_L, Lprofit, Profit_B, Profit_S, Cprofit;
double LastBuyPrice, LastSellPrice, PipStepB, PipStepS, iLotsB, iLotsS, SL,TP, PrevEquity, CCI_min, CCI_max, ACmax, ACmin, Dig;
double CProfit = 0, CProfit2 = 0, LProfit = 0, PrcCL1 = 0, PrcCL = 0;
bool flagB, flagS;
bool LongTrade = False, ShortTrade = False, NewOrdersPlacedB = True, NewOrdersPlacedS = True;
int timeprev = 0, NumOfTradesB = 0, NumOfTradesS = 0, cnt = 0, DCCoef = 10000;
int ticket, expiration, totalB, totalS, total, CheckTotalS, CheckTotalB, lotdecimal, Error, Lpos, StopSet, Cpos;
string title="???????? ??????????", msg="";
string EAName = "Ilan_TrendRacing_3.51ME";
string txt1, txt2, txt3, txt4, txt5, txt6;
int init() {
// код доступен только после оплаты
}
int deinit() {
ObjectDelete("Lable1");
ObjectDelete("Lable2");
ObjectDelete("Lable3");
ObjectDelete("Lable4");
ObjectDelete("Lable5");
ObjectDelete("Zero");
ObjectDelete("LableB");
ObjectDelete("LableS");
return (0);
}
int start()
{
// код доступен только после оплаты
}
void RecalculationB() {
double AveragePriceB = 0;
double PriceTargetB = 0;
double CountB = 0;
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
if (OrderType() == OP_BUY ) {
AveragePriceB += OrderOpenPrice() * OrderLots();
CountB += OrderLots();
}
}
}
}
if (totalB > 0) AveragePriceB = NormalizeDouble(AveragePriceB / CountB, Dig);
if (NewOrdersPlacedB) {
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
if (OrderType() == OP_BUY) {
PriceTargetB = AveragePriceB + TakeProfit * Point;
StopperB = AveragePriceB - StopLoss * Point;
flagB = TRUE;
}
}
}
}
}
if (NewOrdersPlacedB) {
if (flagB == TRUE) {
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
if (OrderType() == OP_BUY ) {
bool res;
if(SeparateLastTP && totalB >= LastTPNo && OrderTakeProfit() == 0.0)
res = OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble( OrderOpenPrice() + LastTP * Point, Dig), 0, Blue);
else
res = OrderModify(OrderTicket(), AveragePriceB, OrderStopLoss(), PriceTargetB, 0, Blue);
if(res)
NewOrdersPlacedB = FALSE;
}
}
}
}
}
}
}
void RecalculationS() {
double AveragePriceS = 0;
double PriceTargetS = 0;
double CountS = 0;
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
if (OrderType() == OP_SELL ) {
AveragePriceS += OrderOpenPrice() * OrderLots();
CountS += OrderLots();
}
}
}
}
if (totalS > 0) AveragePriceS = NormalizeDouble(AveragePriceS / CountS, Dig);
if (NewOrdersPlacedS) {
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
if (OrderType() == OP_SELL) {
PriceTargetS = AveragePriceS - TakeProfit * Point;
StopperS = AveragePriceS + StopLoss * Point;
flagS = TRUE;
}
}
}
}
}
if (NewOrdersPlacedS) {
if (flagS == TRUE) {
for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
if (OrderType() == OP_SELL) {
bool res;
if(SeparateLastTP && totalS >= LastTPNo && OrderTakeProfit() == 0.0)
res = OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble( OrderOpenPrice() - LastTP * Point, Dig), 0, Red);
else
res = OrderModify(OrderTicket(), AveragePriceS, OrderStopLoss(), PriceTargetS, 0, Red);
if(res)
NewOrdersPlacedS = FALSE;
}
}
}
}
}
Показано первые 50% кода (символов: 31033)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.