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

JCF_EndTrend_v1.22

jcf_endtrend_v1.22.mq5
Вы автор или правообладатель?

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

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

О программе

JCF_EndTrend_v1.22 — это пользовательский индикатор для MetaTrader 5, работающий в отдельном окне. Основой расчёта является преобразование Фишера (Fisher Transform) цены за заданный период, которое отображается в виде линий выше и ниже нуля, обозначающих направление тренда. Дополнительно к основной линии рассчитывается скользящая средняя, и при её пересечении с основной линией на экране появляются стрелки и гистограммы сигнальных моментов.

Индикатор поддерживает визуальные сигналы в виде стрелок и текстовых меток, а также звуковые уведомления, синтез речи через внешнюю DLL и отправку электронной почты при наступлении сигнальных условий. Состояние тренда дополнительно сохраняется в глобальных переменных терминала, что позволяет использовать его во внешних сценариях. Все расчёты выполняются на каждом тике в стандартном обработчике start().

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

НастройкаОписание
34 (period) Период расчёта преобразования Фишера, определяющий количество баров для анализа экстремумов цены.
14 (MA_Per1) Период скользящей средней для сигнальной линии.
MA_Per2 Дополнительный параметр периода скользящей средней (объявлен в коде, не используется в расчётах).
MA1Type Тип скользящей средней, используемой для расчёта сигнальной линии.
MA2Type Дополнительный параметр типа скользящей средней (объявлен в коде, не используется в расчётах).
Treshold Дополнительный параметр порога (объявлен в коде, не используется в расчётах).
drawArrows Включает или отключает отображение стрелок на графике.
Arr_otstup Отступ стрелки от цены в пунктах.
Arr_width Толщина стрелок на графике.
Arr_Up_col Цвет стрелки, отображающей восходящий сигнал.
Arr_Dn_col Цвет стрелки, отображающей нисходящий сигнал.
useGV Включает или отключает запись состояния тренда в глобальные переменные терминала.
useTTS Включает или отключает синтез речи (text-to-speech) при сигнальных событиях через внешнюю библиотеку.
AlertSound Включает или отключает звуковое оповещение при наступлении сигнальных условий пересечения.
SoundFileBuy Путь к звуковому файлу, воспроизводимому при восходящем сигнале.
SoundFileSell Путь к звуковому файлу, воспроизводимому при нисходящем сигнале.
SendMailPossible Включает или отключает отправку электронной почты при сигнальных событиях.
SIGNAL_BAR Номер бара, на котором проверяются сигнальные условия для оповещений.
Получить полный код

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

#import "speak_b6.dll"
	bool gSpeak(string text, int rate, int volume);
#import

#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 clrNONE
#property indicator_color2 clrBlue
#property indicator_color3 clrRed
#property indicator_color4 clrNONE //clrLimeGreen
#property indicator_color5 clrYellow
#property indicator_color6 clrAqua
#property indicator_color7 clrOrangeRed
#property indicator_level1 0
#property indicator_levelcolor clrSilver

extern int period = 21;  //34
extern int MA_Per1 = 10; //14
extern int MA_Per2 = 45; 
extern int MA1Type = 0;
extern int MA2Type = 3;
extern double Treshold = 0.25;
extern bool   drawArrows = false;
extern int    Arr_otstup    = 0; 
extern int    Arr_width     = 1;
extern color  Arr_Up_col    = clrLime;
extern color  Arr_Dn_col    = clrRed;
extern bool useGV =true;
extern bool useTTS=false; 
extern bool AlertSound=true; 
extern string SoundFileBuy ="analyze buy.wav";
extern string SoundFileSell="analyze sell.wav";
extern bool SendMailPossible = false;
extern int SIGNAL_BAR = 0;

bool SoundBuy  = true;
bool SoundSell = true;

double g_ibuf_0[];
double g_ibuf_1[];
double g_ibuf_2[];
double g_ibuf_3[];
double g_ibuf_4[];
double g_ibuf_5[];
double g_ibuf_6[];
string gs_112 = "";
string gs_120 = "JCF_EndTrend_v1.22";
string PREFIX="Fish";
string gvn = _Symbol+"-"+_Period+"-fsh";
string gtn = _Symbol+"-"+_Period+"-fsht";
string tts = _Symbol+"-"+_Period;
int gva;

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

  for(int i = ObjectsTotal() - 1; i >= 0; i--)
     {
       string label = ObjectName(i);

       if(StringSubstr(label, 0, 4) == "Fish")  
       ObjectDelete(label);

     }
     return(0);
   }

int start() {
      // код доступен только после оплаты
   }
   double ld_0;
   double ld_8;
   double ld_16;
   int counted_bars = IndicatorCounted();
   double ld_28 = 0;
   double ld_36 = 0;
   double ld_unused_44 = 0;
   double ld_unused_52 = 0;
   double ld_60 = 0;
   double ld_unused_68 = 0;
   double l_low_76 = 0;
   double l_high_84 = 0;
   creataalltext();
   RefreshRates();
   int li_92 = 16777215;
   if (counted_bars > 0) counted_bars--;
   if(counted_bars < 0)  return(-1);

   int l_bars_96=Bars-counted_bars;
   if(counted_bars==0) l_bars_96-=1+period;

   for (int li_100 = 0; li_100 < l_bars_96; li_100++) { //from bar0 to 'Bars' ++
      l_high_84 = High[iHighest(NULL, 0, MODE_HIGH, period, li_100)];
      l_low_76 = Low[iLowest(NULL, 0, MODE_LOW, period, li_100)];
      ld_16 = (High[li_100] + Low[li_100]) / 2.0;
      ld_28 = 0.66 * ((ld_16 - l_low_76) / (l_high_84 - l_low_76) - 0.5) + 0.67 * ld_36;
      ld_28 = MathMin(MathMax(ld_28, -0.999), 0.999);
      g_ibuf_0[li_100] = MathLog((ld_28 + 1.0) / (1 - ld_28)) / 2.0 + ld_60 / 2.0; //Log Fisher price
      ld_36 = ld_28;
      ld_60 = g_ibuf_0[li_100];  
   }
   bool li_104 = true;
   for (li_100 = l_bars_96 - 2; li_100 >= 0; li_100--) {
      ld_8 = g_ibuf_0[li_100]; //Fisher price [0]
      ld_0 = g_ibuf_0[li_100 + 1]; //Fisher price [1]
      if ((ld_8 < 0.0 && ld_0 > 0.0) || ld_8 < 0.0) li_104 = false; //crossig down or below zero
      if ((ld_8 > 0.0 && ld_0 < 0.0) || ld_8 > 0.0) li_104 = true;  //crossing up or above zero
      if (!li_104) { //if below zero
         g_ibuf_2[li_100] = ld_8;  //paint line red
         g_ibuf_1[li_100] = 0.0;
         gs_112 = "Trend Dn";
         li_92 = 65535;
      } else {
         g_ibuf_1[li_100] = ld_8; //else paint blue
         g_ibuf_2[li_100] = 0.0;
         gs_112 = "Trend Up";
         li_92 = 65280;
      }
   }

   for (li_100 = Bars-1; li_100 >= 0; li_100--) g_ibuf_3[li_100] = g_ibuf_2[li_10

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

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

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

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

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

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

Стоимость полного кода
669,20₽ ≈ $8.18