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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.