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

smc test.mq5

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный продукт представляет собой торгового советника для платформы MetaTrader 5, который анализирует ценовые данные с помощью индикатора TMA (центрированные полосы), скользящей средней, индикатора ADX и собственной реализации индекса потока денег (MFI). Советник формирует сигналы на покупку и продажу, основываясь на положении цены относительно полос TMA и направлении скользящей средней, с дополнительным подтверждением через значения ADX и MFI. В качестве защиты используются пользовательские стоп-лосс и тейк-профит, а также механизм трейлинг-стопа для перемещения стоп-лосса при благоприятном движении цены. Торговые операции выполняются через класс CTrade стандартной библиотеки MetaTrader 5.

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

НастройкаОписание
LotSize Размер лота — Размер лота для торговых операций
TrailingStop Трейлинг-стоп — Числовой параметр, определяющий значение трейлинг-стопа
HalfLength Половинная длина — Целочисленный параметр, используемый в логике расчётов советника
Period for Moving Average (MaPeriod) Период скользящей средней — Период скользящей средней
Period for ADX (ADXPeriod) Период ADX — Период расчёта индикатора ADX
Period for MFI (MFIPeriod) Период MFI — Период расчёта индекса потока денег (MFI)
Threshold for ADX (ADXThreshold) Порог ADX — Пороговое значение ADX для подтверждения тренда
Threshold for high MFI (MFIThresholdHigh) Верхний порог MFI — Верхний порог MFI для подтверждения перекупленности
Threshold for low MFI (MFIThresholdLow) Нижний порог MFI — Нижний порог MFI для подтверждения перепроданности
User defined Stop Loss (points) (UserStopLoss) Стоп-лосс пользователя — Пользовательский стоп-лосс в пунктах
User defined Take Profit (points) (UserTakeProfit) Тейк-профит пользователя — Пользовательский тейк-профит в пунктах
Distance to move SL (TrailingDistance) Расстояние трейлинг-стопа — Расстояние для перемещения стоп-лосса
Distance before starting to move SL (ProfitLockDistance) Расстояние фиксации прибыли — Расстояние в пользу цены, после которого начинается перемещение стоп-лосса
Initial stop loss distance (350 points) (InitialStopLoss) Начальный стоп-лосс — Начальное расстояние стоп-лосса в пунктах
Distance from current price to move SL when locking in profit (MoveSLDistance) Расстояние перемещения стоп-лосса — Расстояние от текущей цены для перемещения стоп-лосса при фиксации прибыли
Получить полный код

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

#include <Trade\Trade.mqh>

CTrade trade;

double middleBand[];
double upperBand[];
double lowerBand[];
double maTrend[];
double adxBuffer[];
double mfiBuffer[];

input double LotSize = 0.2;
input double TrailingStop = 30;
input int HalfLength = 12;
input int MaPeriod = 50; // Period for Moving Average
input int ADXPeriod = 14; // Period for ADX
input int MFIPeriod = 14; // Period for MFI
input double ADXThreshold = 25; // Threshold for ADX
input double MFIThresholdHigh = 80; // Threshold for high MFI
input double MFIThresholdLow = 20; // Threshold for low MFI
input double UserStopLoss = 50; // User defined Stop Loss (points)
input double UserTakeProfit = 100; // User defined Take Profit (points)
input double TrailingDistance = 500;  // Distance to move SL
input double ProfitLockDistance = 500;  // Distance before starting to move SL
input double InitialStopLoss = 350;  // Initial stop loss distance (350 points)
input double MoveSLDistance = 350; // Distance from current price to move SL when locking in profit

int handleTMA;
int handleMA;
int handleADX;
datetime lastBuyTime = 0;  // Store the last buy signal time
datetime lastSellTime = 0;  // Store the last sell signal time
int minTimeBetweenTrades = 15;  // Minimum time between trades in minutes

double CalculateMFI(int period)
{
   double positiveFlow = 0;
   double negativeFlow = 0;
   for (int i = 1; i <= period; i++)
   {
      double typicalPrice = (iHigh(Symbol(), Period(), i) + iLow(Symbol(), Period(), i) + iClose(Symbol(), Period(), i)) / 3;
      double prevTypicalPrice = (iHigh(Symbol(), Period(), i + 1) + iLow(Symbol(), Period(), i + 1) + iClose(Symbol(), Period(), i + 1)) / 3;
      double moneyFlow = typicalPrice * iVolume(Symbol(), Period(), i);

      if (typicalPrice > prevTypicalPrice)
         positiveFlow += moneyFlow;
      else if (typicalPrice < prevTypicalPrice)
         negativeFlow += moneyFlow;
   }

   double moneyRatio = (negativeFlow == 0) ? 0 : positiveFlow / negativeFlow;
   double mfi = 100 - (100 / (1 + moneyRatio));
   return mfi;
}

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

void OnDeinit(const int reason)
{

   if(handleTMA != INVALID_HANDLE)
      IndicatorRelease(handleTMA);
   if(handleMA != INVALID_HANDLE)
      IndicatorRelease(handleMA);
   if(handleADX != INVALID_HANDLE)
      IndicatorRelease(handleADX);
}

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

   if(handleTMA == INVALID_HANDLE || handleMA == INVALID_HANDLE || handleADX == INVALID_HANDLE)
       return;

   int copiedMiddle = CopyBuffer(handleTMA, 0, 0, 1, middleBand); // Middle band buffer
   int copiedUpper = CopyBuffer(handleTMA, 1, 0, 1, upperBand); // Upper band buffer
   int copiedLower = CopyBuffer(handleTMA, 2, 0, 1, lowerBand); // Lower band buffer
   int copiedMA = CopyBuffer(handleMA, 

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

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

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

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

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

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

Стоимость полного кода
520,10₽ ≈ $6.36