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

Fuerza Divisas 3.8 Todos

fuerza divisas 3.8 todos.mq4
Вы автор или правообладатель?

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

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

О программе

Индикатор Fuerza Divisas 3.8 Todos — это пользовательский индикатор для MetaTrader 4, отображающий аналитические данные о наклоне (slope strength) восьми основных валютных пар в отдельном окне. Каждая валюта (USD, EUR, GBP, JPY, AUD, CAD, NZD, CHF) отображается отдельной линией с настраиваемыми цветом и толщиной.
Продукт поддерживает гибкую настройку временных интервалов, списка символов для анализа и режима отображения. Доступны автоматический выбор символов и таймфрейма, а также режим ограничения отображения только символом на графике.
Индикатор включает систему уведомлений с поддержкой всплывающих окон, электронной почты и push-уведомлений. Также реализованы визуальные сигналы пересечений уровней и таблица ранжирования валют с цветовой индикацией силы пересечений.

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

НастройкаОписание
gen Общие настройки — Группа настроек общих параметров индикатора.
autoSymbols Автоматический выбор символов — При активации автоматически формирует список символов для анализа на основе доступных на сервере.
CADCHF,NZDCAD,EURCHF,EURGBP, (symbolsToWeigh) Список символов для анализа — Задаёт ручной список символов для анализа в формате через запятую (например, EURUSD, GBPUSD).
bars Количество баров — Задаёт количество баров, используемых для расчёта и отображения индикатора.
weighOnlySymbolOnChart Анализировать только символ графика — При активации ограничивает список анализируемых символов только символом текущего графика.
nonPropFont Шрифт таблицы — Задаёт шрифт для отображения текста в таблице и объектах индикатора.
addSundayToMonday Добавлять воскресенье в понедельник — Учитывает воскресные свечи при расчётах на дневном таймфрейме, корректируя смещение бара.
showOnlySymbolOnChart Показать только символ на графике — При активации ограничивает отображение только теми валютами, которые присутствуют на текущем графике.
ind Настройки индикатора — Группа настроек параметров индикатора.
autoTimeFrame Автоматический выбор таймфрейма — При активации автоматически использует таймфрейм текущего графика для расчётов индикатора.
ind_tf Список таймфреймов — Задаёт список доступных таймфреймов для выбора при ручном режиме.
timeFrame Основной таймфрейм — Задаёт основной таймфрейм для расчёта наклона валют при ручном режиме выбора.
extraTimeFrame Дополнительный таймфрейм — Задаёт дополнительный таймфрейм для отображения вторичной таблицы валют.
ignoreFuture Игнорировать будущие данные — При активации исключает будущие (непересчитанные) данные из расчётов наклона.
showCrossAlerts Показать пересечения — При активации отображает визуальные маркеры и отправляет уведомления при пересечении валютных линий.
differenceThreshold Порог разницы — Задаёт пороговое значение разницы для отображения цветовой индикации фона.
showLevelCross Показать пересечения уровней — При активации отображает горизонтальные линии уровней и маркеры пересечения.
levelCrossValue Значение уровня пересечения — Задаёт числовое значение уровня для отображения линий пересечения.
PopupAlert Всплывающие уведомления — При активации выводит всплывающие окна с уведомлениями о событиях индикатора.
EmailAlert Email-уведомления — При активации отправляет уведомления о событиях индикатора на электронную почту.
PushAlert Push-уведомления — При активации отправляет push-уведомления на мобильное устройство.
cur Настройки валют — Группа настроек включения и отключения отдельных валютных линий.
USD Включить USD — Включает или отключает отображение линии доллара США в отдельном окне индикатора.
EUR Включить EUR — Включает или отключает отображение линии евро в отдельном окне индикатора.
GBP Включить GBP — Включает или отключает отображение линии британского фунта в отдельном окне индикатора.
CHF Включить CHF — Включает или отключает отображение линии швейцарского франка в отдельном окне индикатора.
JPY Включить JPY — Включает или отключает отображение линии японской иены в отдельном окне индикатора.
AUD Включить AUD — Включает или отключает отображение линии австралийского доллара в отдельном окне индикатора.
CAD Включить CAD — Включает или отключает отображение линии канадского доллара в отдельном окне индикатора.
NZD Включить NZD — Включает или отключает отображение линии новозеландского доллара в отдельном окне индикатора.
colour Настройки цветов — Группа настроек цветового оформления линий и маркеров индикатора.
Color_USD Цвет USD — Задаёт цвет линии доллара США на графике индикатора.
Color_EUR Цвет EUR — Задаёт цвет линии евро на графике индикатора.
Color_GBP Цвет GBP — Задаёт цвет линии британского фунта на графике индикатора.
Color_CHF Цвет CHF — Задаёт цвет линии швейцарского франка на графике индикатора.
Color_JPY Цвет JPY — Задаёт цвет линии японской иены на графике индикатора.
Color_AUD Цвет AUD — Задаёт цвет линии австралийского доллара на графике индикатора.
Color_CAD Цвет CAD — Задаёт цвет линии канадского доллара на графике индикатора.
Color_NZD Цвет NZD — Задаёт цвет линии новозеландского доллара на графике индикатора.
line_widht_USD Толщина линии USD — Задаёт толщину линии доллара США.
line_style_USD Стиль линии USD — Задаёт стиль линии доллара США.
line_widht_EUR Толщина линии EUR — Задаёт толщину линии евро.
line_style_EUR Стиль линии EUR — Задаёт стиль линии евро.
line_widht_GBP Толщина линии GBP — Задаёт толщину линии британского фунта.
line_style_GBP Стиль линии GBP — Задаёт стиль линии британского фунта.
line_widht_JPY Толщина линии JPY — Задаёт толщину линии японской иены.
line_style_JPY Стиль линии JPY — Задаёт стиль линии японской иены.
line_widht_AUD Толщина линии NZD — Задаёт толщину линии новозеландского доллара.
line_style_AUD Стиль линии NZD — Задаёт стиль линии новозеландского доллара (0 — сплошная и другие).
line_widht_CAD Толщина линии CAD — Задаёт толщину линии канадского доллара.
line_style_CAD Стиль линии CAD — Задаёт стиль линии канадского доллара.
line_widht_NZD Толщина линии NZD — Задаёт толщину линии новозеландского доллара.
line_style_NZD Стиль линии NZD — Задаёт стиль линии новозеландского доллара.
line_widht_CHF Толщина линии CHF — Задаёт толщину линии швейцарского франка.
line_style_CHF Стиль линии CHF — Задаёт стиль линии швейцарского франка.
colorWeakCross Цвет слабого пересечения — Задаёт цвет маркера слабого пересечения валют.
colorNormalCross Цвет обычного пересечения — Задаёт цвет маркера обычного пересечения валют.
colorStrongCross Цвет сильного пересечения — Задаёт цвет маркера сильного пересечения валют.
colorDifferenceUp Цвет разницы (верх) — Задаёт цвет визуальной индикации разницы при восходящем направлении.
colorDifferenceDn Цвет разницы (низ) — Задаёт цвет визуальной индикации разницы при нисходящем направлении.
colorDifferenceLo Цвет разницы (малый) — Задаёт цвет визуальной индикации разницы при значении ниже порога.
colorTimeframe Цвет таймфрейма — Задаёт цвет отображения названия таймфрейма в таблице индикатора.
colorLevelHigh Цвет верхнего уровня — Задаёт цвет маркера пересечения верхнего уровня.
colorLevelLow Цвет нижнего уровня — Задаёт цвет маркера пересечения нижнего уровня.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 8
#property indicator_level1 0.8
#property indicator_level2 -0.8
#property indicator_level3 2.5
#property indicator_level4 -2.5
#property indicator_levelstyle STYLE_DOT
#property indicator_levelcolor clrDarkOrchid

#define version            "v3.8"
#property strict

#define CURRENCYCOUNT      8

extern string  gen               = "----General inputs----";
extern bool    autoSymbols       = false;
extern string  symbolsToWeigh="AUDCAD,AUDCHF,AUDJPY,AUDNZD,AUDUSD,CADJPY,CHFJPY,EURAUD,EURCAD,EURJPY,EURNZD,EURUSD,GBPAUD,GBPCAD,GBPCHF,GBPJPY,GBPNZD,GBPUSD,NZDCHF,NZDJPY,NZDUSD,USDCAD,USDCHF,USDJPY";//CADCHF,NZDCAD,EURCHF,EURGBP,
extern int     bars= 50;
extern bool    weighOnlySymbolOnChart=false;
extern string  nonPropFont       = "Lucida Console";
extern bool    addSundayToMonday = true;
extern bool    showOnlySymbolOnChart= false;

extern string  ind               = "----Indicator inputs----";
extern bool    autoTimeFrame     = true;
extern string  ind_tf            = "timeFrame M1,M5,M15,M30,H1,H4,D1,W1,MN";
extern string  timeFrame         = "H4";
extern string  extraTimeFrame    = "D1";
extern bool    ignoreFuture      = true;
extern bool    showCrossAlerts   = false;
extern double  differenceThreshold=0.0;
extern bool    showLevelCross    = false;
extern double  levelCrossValue   = 0.20;
extern bool      PopupAlert=false;
extern bool      EmailAlert= false;
extern bool      PushAlert=false;

extern string  cur               = "----Currency inputs----";
extern bool    USD               = true;
extern bool    EUR               = true;
extern bool    GBP               = true;
extern bool    CHF               = true;
extern bool    JPY               = true;
extern bool    AUD               = true;
extern bool    CAD               = true;
extern bool    NZD               = true;

extern string  colour="----Colo(u)r inputs----";
extern color   Color_USD         = clrRed;
extern color   Color_EUR         = clrDodgerBlue;
extern color   Color_GBP         = clrPurple;
extern color   Color_CHF         = clrBlack;
extern color   Color_JPY         = clrYellow;
extern color   Color_AUD         = clrBrown;
extern color   Color_CAD         = clrGreen;
extern color   Color_NZD         = clrDarkOrange;
extern int     line_widht_USD    = 2;
extern int     line_style_USD    = 0;
extern int     line_widht_EUR    = 2;
extern int     line_style_EUR    = 0;
extern int     line_widht_GBP    = 2;
extern int     line_style_GBP    = 0;
extern int     line_widht_JPY    = 3;
extern int     line_style_JPY    = 0;
extern int     line_widht_AUD    = 1;
extern int     line_style_AUD    = 0;
extern int     line_widht_CAD    = 1;
extern int     line_style_CAD    = 0;
extern int     line_widht_NZD    = 1;
extern int     line_style_NZD    = 0;
extern int     line_widht_CHF    = 2;
extern int     line_style_CHF    = 0;
extern color   colorWeakCross    = clrGold;
extern color   colorNormalCross  = clrGold;
extern color   colorStrongCross  = clrGold;
extern color   colorDifferenceUp = LightGray;
extern color   colorDifferenceDn = LightGray;
extern color   colorDifferenceLo = LightGray;
extern color   colorTimeframe    = clrNavy;
extern color   colorLevelHigh    = clrLimeGreen;
extern color   colorLevelLow     = clrCrimson;

string   indicatorName="CurrencySlopeStrength";
string   shortName;
int      userTimeFrame;
int      userExtraTimeFrame;
string   almostUniqueIndex;
bool     sundayCandlesDetected;

double   arrUSD[];
double   arrEUR[];
double   arrGBP[];
double   arrJPY[];
double   arrAUD[];
double   arrCAD[];
double   arrNZD[];
double   arrCHF[];

int      symbolCount;
string   symbolNames[];
string   currencyNames[CURRENCYCOUNT]={ "USD","EUR","GBP","JPY","AUD","CAD","NZD","CHF" };
double   currencyValues[CURRENCYCOUNT];      // Currency slope strength
double   currencyValuesPrior[CURRENCYCOUNT]; // Currency slope strength prior bar
double   currencyOccurrences[CURRENCYCOUNT]; // Holds the number of occurrences of each currency in symbols
int   line_widht[CURRENCYCOUNT];
int   line_style[CURRENCYCOUNT];
color    currencyColors[CURRENCYCOUNT];

int      verticalShift=18;
int      verticalOffset=33;
int      horizontalShift=20;
int      horizontalOffset=-500;

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

int initSymbols()
  {
   int i;

   string symbolExtraChars=StringSubstrOld(Symbol(),6,4);

   if(weighOnlySymbolOnChart)
     {
      symbolsToWeigh=Symbol();
     }

   symbolsToWeigh = StringTrimLeft(symbolsToWeigh);
   symbolsToWeigh = StringTrimRight(symbolsToWeigh);

   if(StringSubstrOld(symbolsToWeigh,StringLen(symbolsToWeigh)-1)!=",")
     {
      symbolsToWeigh=StringConcatenate(symbolsToWeigh,",");
     }

   if(autoSymbols)
     {
      createSymbolNamesArray();
     }
   else
     {

      i=StringFind(symbolsToWeigh,",");
      while(i!=-1)
        {
         int size=ArraySize(symbolNames);
         string newSymbol=StringConcatenate(StringSubstrOld(symbolsToWeigh,0,i),symbolExtraChars);

         ArrayResize(symbolNames,size+1);

         symbolNames[size]=newSymbol;

         symbolsToWeigh=StringSubstrOld(symbolsToWeigh,i+1);
         i=StringFind(symbolsToWeigh,",");
        }
     }

   if(showOnlySymbolOnChart)
     {
      symbolCount=ArraySize(symbolNames);
      string tempNames[];
      for(i=0; i<symbolCount; i++)
        {
         for(int j=0; j<CURRENCYCOUNT; j++)
           {
            if(StringFind(Symbol(),currencyNames[j])==-1)
              {
               continue;
              }
            if(StringFind(symbolNames[i],currencyNames[j])!=-1)
              {
               int size=ArraySize(tempNames);
               ArrayResize(tempNames,size+1);
               tempNames[size]=symbolNames[i];
               break;
              }
           }
        }
      for(i=0; i<ArraySize(tempNames); i++)
        {
         ArrayResize(symbolNames,i+1);
         symbolNames[i]=tempNames[i];
        }
     }

   symbolCount=ArraySize(symbolNames);

   for(i=0; i<symbolCount; i++)
     {

      int currencyIndex=getCurrencyIndex(StringSubstrOld(symbolNames[i],0,3));
      currencyOccurrences[currencyIndex]++;
      currencyIndex=getCurrencyIndex(StringSubstrOld(symbolNames[i],3,3));
      currencyOccurrences[currencyIndex]++;
     }

   userTimeFrame=PERIOD_D1;
   if(autoTimeFrame)
     {
      userTimeFrame=Period();
     }
   else
     {
      if(timeFrame=="M1") userTimeFrame=PERIOD_M1;
      else if( timeFrame == "M5" )  userTimeFrame = PERIOD_M5;
      else if( timeFrame == "M15" ) userTimeFrame = PERIOD_M15;
      else if( timeFrame == "M30" ) userTimeFrame = PERIOD_M30;
      else if( timeFrame == "H1" )  userTimeFrame = PERIOD_H1;
      else if( timeFrame == "H4" )  userTimeFrame = PERIOD_H4;
      else if( timeFrame == "D1" )  userTimeFrame = PERIOD_D1;
      else if( timeFrame == "W1" )  userTimeFrame = PERIOD_W1;
      else if( timeFrame == "MN" )  userTimeFrame = PERIOD_MN1;

      if(userTimeFrame<Period())
        {
         userTimeFrame=Period();
        }
     }
   userExtraTimeFrame = PERIOD_D1;
   if( extraTimeFrame == "M1" )       userExtraTimeFrame = PERIOD_M1;
   else if( extraTimeFrame == "M5" )  userExtraTimeFrame = PERIOD_M5;
   else if( extraTimeFrame == "M15" ) userExtraTimeFrame = PERIOD_M15;
   else if( extraTimeFrame == "M30" ) userExtraTimeFrame = PERIOD_M30;
   else if( extraTimeFrame == "H1" )  userExtraTimeFrame = PERIOD_H1;
   else if( extraTimeFrame == "H4" )  userExtraTimeFrame = PERIOD_H4;
   else if( extraTimeFrame == "D1" )  userExtraTimeFrame = PERIOD_D1;
   else if( extraTimeFrame == "W1" )  userExtraTimeFrame = PERIOD_W1;
   else if( extraTimeFrame == "MN" )  userExtraTimeFrame = PERIOD_MN1;
   return(0);
  }

int getCurrencyIndex(string currency)
  {
   for(int i=0; i<CURRENCYCOUNT; i++)
     {
      if(currencyNames[i]==currency)
        {
         return(i);
        }
     }
   return (-1);
  }

void createSymbolNamesArray()
  {
   int hFileName=FileOpenHistory("symbols.raw",FILE_BIN|FILE_READ);
   int recordCount=int(FileSize(hFileName)/1936);
   int counter=0;
   for(int i=0; i<recordCount; i++)
     {
      string tempSymbol=StringTrimLeft(StringTrimRight(FileReadString(hFileName,12)));
      if(MarketInfo(tempSymbol,MODE_BID)>0 && MarketInfo(tempSymbol,MODE_TRADEALLOWED))
        {
         ArrayResize(symbolNames,counter+1);
         symbolNames[counter]=tempSymbol;
         counter++;
        }
      FileSeek(hFileName,1924,SEEK_CUR);
     }
   FileClose(hFileName);

  }

string GetTimeframeString(int tf)
  {
   string result;
   switch(tf)
     {
      case PERIOD_M1:   result = "M1";    break;
      case PERIOD_M5:   result = "M5";    break;
      case PERIOD_M15:  result = "M15";   break;
      case PERIOD_M30:  result = "M30";   break;
      case PERIOD_H1:   result = "H1";    break;
      case PERIOD_H4:   result = "H4";    break;
      case PERIOD_D1:   result = "D1";    break;
      case PERIOD_W1:   result = "W1";    break;
      case PERIOD_MN1:  result = "MN1";   break;
      default: result="SRITSOD";
     }
   return ( result );
  }

void OnDeinit(const int reason)
  {

   int windex=WindowFind("Fuerza Divisas 3.8");
   if(windex>0)
     {
      ObjectsDeleteAll(windex);
     }

  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])

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

double getSlope(string symbol,int tf,int shift)
  {
   double dblTma,dblPrev;
   int shiftWithoutSunday=shift;
   if(addSundayT

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

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

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

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

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

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

Стоимость полного кода
2 398,50₽ ≈ $29.31