GRAALUn
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «graalun_ar.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
GRAALUn — пользовательский индикатор для платформы MetaTrader 4, отображающий аналитические значения в отдельном окне графика. Индикатор рассчитывает два буферных массива на основе ценовых данных за заданный период и визуализирует их в виде линий. При пересечении нулевого уровня одним из буферов на графике появляются стрелки-маркеры, обозначающие потенциальные точки разворота тренда. Индикатор поддерживает несколько типов уведомлений: всплывающие сообщения, звуковые сигналы, push-уведомления и email-рассылку, которые срабатывают при обнаружении соответствующих событий. Параметры периода, смещения стрелок и количества обрабатываемых баров настраиваются пользователем.
Настройки программы
| Настройка | Описание |
|---|---|
| period | Период — Период расчёта, используемый для определения максимальных и минимальных значений цен. |
| arrow_shift | Смещение стрелок — Задаёт величину смещения стрелок-маркеров относительно ценовой точки в пунктах. |
| nbars | Количество баров — Определяет количество баров, используемых для обработки и анализа данных индикатором. |
| alertsOn | Уведомления включены — Общий переключатель для включения или отключения всех типов уведомлений индикатора. |
| alertsMessage | Всплывающие сообщения — Включает или отключает всплывающие сообщения на графике при срабатывании событий индикатора. |
| alertsSound | Звуковые уведомления — Включает или отключает воспроизведение звукового сигнала при срабатывании событий индикатора. |
| alertsNotify | Push-уведомления — Включает или отключает отправку push-уведомлений на устройство при срабатывании событий индикатора. |
| alertsEmail | Email-уведомления — Включает или отключает отправку email-уведомлений при срабатывании событий индикатора. |
| soundFile | Файл звука — Путь к звуковому файлу, который воспроизводится при срабатывании звукового уведомления. |
| Shift (shift) | Смещение — Смещение индикатора по горизонтальной оси графика (Shift). |
Поиск по коду файла
#property version "1.0"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_style1 STYLE_SOLID
#property indicator_color1 Yellow
#property indicator_level1 0
#property indicator_maximum 3
#property indicator_minimum -3
extern int period=9;
extern int arrow_shift=25;
extern int nbars=300;
extern bool alertsOn = true;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsNotify = false;
extern bool alertsEmail = false;
extern string soundFile = "alert.wav";
input int shift = 1; // Shift
string gral_name="gral_";
string s_symbol,s_id,s_gral;
double ExtBuffer0[],ExtBuffer1[];
double arrow_up[];
double arrow_down[];
bool flag_last_trend,flag_arr_up,flag_arr_dn,flag_start_max_search;
double last_trend,max_value;
int k;
datetime time_alert_buy,time_alert_sell;
int whichBar = 0;
int deinit()
{
deleteArrows(s_gral);
return(0);
}
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int limit;
int counted_bars;
double Value0=0,Value1=0,Value2=0,Fish0=0,Fish1=0,Value00=0,Value11=0;
double price;
double MinL=0;
double MaxH=0;
counted_bars=IndicatorCounted();
if(counted_bars>0)
counted_bars--;
limit=Bars-counted_bars;
for(int i = shift; i<limit; i++)
{
MaxH = High[iHighest(NULL,0,MODE_HIGH,period,i)];
MinL = Low[iLowest(NULL,0,MODE_LOW,period,i)];
price = (High[i]+Low[i])/2;
if(MaxH-MinL == 0)
Value00 = 0.33*2*(0-0.5) + 0.67*Value0;
else
Value00 = 0.33*2*((price-MaxH)/(MinL-MaxH)-0.5) + 0.67*Value0;
if(1-Value00==0)
ExtBuffer0[i]=0.5+0.5*Fish0;
else
ExtBuffer0[i]=-0.5*MathLog((1+Value00)/(1-Value00))+0.5*Fish0;
Value00=MathMin(MathMax(Value00,-0.999),0.999);
Value0=Value00;
Fish0=ExtBuffer0[i];
if(MaxH-MinL==0)
Value11=0.33*2*(0-0.5)+0.67*Value1;
else
Value11=0.33*2*((price-MaxH)/(MinL-MaxH)-0.5)+0.67*Value1;
Value11=MathMin(MathMax(Value11,-0.999),0.999);
if(1-Value11==0)
ExtBuffer1[i]=0.5+0.5*Fish1;
else
ExtBuffer1[i]=-0.5*MathLog((1-Value11)/(1+Value11))+0.5*Fish1;
Value1=Value11;
Fish1=ExtBuffer1[i];
}
flag_last_trend=false;
k=0;
flag_start_max_search=false;
last_trend=0;
max_value=0;
for(int i = shift; i<nbars; i++)
{
flag_arr_up=false;
flag_arr_dn=false;
if(ExtBuffer1[i]>0 && ExtBuffer1[i+1]<=0)
{
create_arrow(s_gral+Time[i],High[i]+arrow_shift*_Point,Time[i],242,2,clrRed,ANCHOR_BOTTOM);
if(!flag_last_trend)
{
k=i;
flag_start_max_search=true;
last_trend=-1;
max_value=ExtBuffer1[i];
}
flag_last_trend=true;
flag_arr_dn=true;
}
if(ExtBuffer1[i]<0 && ExtBuffer1[i+1]>=0)
{
create_arrow(s_gral+TПоказано первые 50% кода (символов: 4810)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.