Ilan_VS_TrendTrading_Trail
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ilan_vs_trendtrading_trail.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник автоматизирует процесс открытия и управления рыночными позициями, используя технические индикаторы для формирования торговых сигналов и механизм трейлинга для управления стоп-лоссом.
Логика входа в позицию основана на анализе скользящей средней и индикатора CCI. Поддерживается множественный вход в позицию с постепенным увеличением объёма лота по мере накопления позиций. Реализован режим автоматического управления размером лота на основе процента от баланса счёта.
Для защиты прибыли советник использует трейлинг-стоп, перемещающий уровень стоп-лосса в зависимости от динамики ценовых баров на заданном таймфрейме. Также предусмотрены режим ручного открытия первой позиции и режим отладки с выводом диагностических сообщений в лог.
Настройки программы
| Настройка | Описание |
|---|---|
| ??????????? ?????????? ???????? (PipStepExponent) | Экспонента шага — Экспонента для расчёта шага между последовательными позициями. |
| ?????????????? ???????? PipStep (DefaultPips) | Базовый шаг (пункты) — Базовое значение шага в пунктах между последовательными позициями. |
| ???????????? ???????? PipStep (MaxPips) | Максимальный шаг (пункты) — Максимальное значение шага в пунктах между позициями. |
| ?????? ???? ??? ?????? ?????? (Lots) | Размер лота — Фиксированный размер лота для открытия позиции. |
| ??????? ?????? ????? ??????? ? ???? ???????????? 0 - ?????????? ???? (1), 1 - ???????? (0.1), 2 - ?? (lotdecimal) | Точность лота — Точность отображения размера лота: 0 — целые числа, 1 — десятые (0.1), 2 — сотые (0.01). |
| ???? ????? ????? (Trail_TimeFrame) | Таймфрейм трейлинга — Таймфрейм для расчёта уровня трейлинг-стопа. |
| ???? ????? ?? (MA_TimeFrame) | Таймфрейм скользящей — Таймфрейм для расчёта скользящей средней. |
| ?????? ?? (MA_Period) | Период скользящей — Период расчёта скользящей средней. |
| ?? ??????? ?????? ?????????? ?? ?? ???????? ?????, ????? ?????? ???????? (MA_Delta) | Дельта скользящей — Пороговое значение разницы между текущим и предыдущим значением скользящей средней для формирования торгового сигнала. |
| ??????? ?? ?????? CCI ?? ???????, ???? ??????? ????????, ?? ????? ?? ????? ??????????? (CCIlevel) | Уровень CCI — Уровень индикатора CCI для определения условий входа в позицию. |
| ????????? ????? (???????? ????????? ???????? ???? ?????? ?? ?????) (MagicNumber) | Магический номер — Идентификатор ордеров, принадлежащих данному советнику. |
| ??????????? ?????????? ???????????? ???????? ??????? (MaxTrades) | Максимум позиций — Максимальное количество одновременных позиций, управляемых советником. |
| MM | Управление рисками — Включает или отключает автоматический расчёт размера лота на основе процента от баланса. |
| ?? 0.01 - ???. (risk) | Риск (% от баланса) — Процент от баланса, используемый для расчёта размера лота при включённом управлении рисками. |
| ?????? ????????????????, ?? ?????? 1000 ???? ????? ????????? ??? ?? ???? (balans) | Базовый баланс — Базовая сумма баланса, используемая при расчёте размера лота. |
| ????????? ?????? ????? ??????? (ManualFirstOrder) | Ручной первый вход — Определяет, требуется ли ручной контроль при открытии первой позиции. |
| debug | Отладка — Включает режим отладки с выводом диагностических сообщений в лог. |
Поиск по коду файла
#include <stderror.mqh>
#include <stdlib.mqh>
double Stoploss = 500.0; // ??????? ?????????
double TrailStart = 10.0;
double TrailStop = 10.0;
string w1 = "??? Exponent 0-??????????/1-??????????/2-?????????";
int TypeLotExponent = 0; //??? ??????????:
double LotExponent = 1.4; // ?? ??????? ???????? ??? ??? ??????????? ?????????? ??????. ??????: ?????? ??? 0.1, ?????: 0.16, 0.26, 0.43 ...
extern double PipStepExponent = 1; //??????????? ?????????? ????????
extern int DefaultPips = 50; //?????????????? ???????? PipStep
extern int MaxPips = 100; //???????????? ???????? PipStep
double slip = 4.0; // ?? ??????? ????? ?????????? ???? ? ?????? ???? ?? ???????? ??????? (? ????????? ?????? ??????? ???????? ????)
extern double Lots = 0.1; // ?????? ???? ??? ?????? ??????
extern int lotdecimal = 2; // ??????? ?????? ????? ??????? ? ???? ???????????? 0 - ?????????? ???? (1), 1 - ???????? (0.1), 2 - ????? (0.01)
extern int Trail_TimeFrame = 3; // ???? ????? ?????
extern int MA_TimeFrame = 7; // ???? ????? ??
extern int MA_Period = 6; // ?????? ??
extern int MA_Delta = 3; // ?? ??????? ?????? ?????????? ?? ?? ???????? ?????, ????? ?????? ????????
extern int CCIlevel = 160; // ??????? ?? ?????? CCI ?? ???????, ???? ??????? ????????, ?? ????? ?? ????? ???????????
extern int MagicNumber = 2222; // ????????? ????? (???????? ????????? ???????? ???? ?????? ?? ?????)
int PipStep=0;
extern int MaxTrades = 10; // ??????????? ?????????? ???????????? ???????? ???????
extern bool MM = false;
extern double risk = 1; // ?? 0.01 - ???.
extern int balans = 1000; // ?????? ????????????????, ?? ?????? 1000 ???? ????? ????????? ??? ?? ????
extern bool ManualFirstOrder = false; // ????????? ?????? ????? ???????
extern bool debug = false;
double TakeProfit;
double AveragePrice,buf;
double LastBuyPrice, LastSellPrice, Spread, LastTP;
string EAName="Ilan_VS_TrendTrading_Trail";
int timeprev = 0;
int NumOfTrades = 0;
double iLots;
int cnt = 0, total, prev_total, i1, ma_tf, trail_tf;
bool LongTrade = FALSE, ShortTrade = FALSE;
int ticket, Error;
double Exponent, TP_Shift, LastTP_Lot, LastTP_Price_shift, TrailPrice;
int init() {
// код доступен только после оплаты
}
int deinit()
{
return (0);
}
int start()
{
// код доступен только после оплаты
}
int CountOfOrders()
{
int count = 0;
for (int i = 0; i < OrdersTotal(); i++)
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == MagicNumber))
if ((OrderType() == OP_SELL) || (OrderType() == OP_BUY))
count++;
return(count);
}
int SendMarketOrder(int Type, double Lots, int TP, int SL, int Magic, string Cmnt, int& Error)
{
double Price, Take, Stop;
int Ticket, Slippage, Color, Err;
bool Delay = False;
if (debug) Print("??????? SendMarketOrder");
while(!IsStopped())
{
if(!IsExpertEnabled())
{
Error = ERR_TRADE_DISABLED;
Print("???????? ????????? ?????????! ?????? \"????????\" ??????.");
return(-1);
}
if (debug) Print("???????? ????????? ?????????");
if(!IsConnected())
{
Error = ERR_NO_CONNECTION;
Print("????? ???????????!");
return(-1);
}
Print("????? ? ???????? ???????????");
if(IsTradeContextBusy())
{
Print("???????? ????? ?????!");
Print("??????? 3 ???...");
Sleep(3000);
Delay =Показано первые 50% кода (символов: 12388)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.