shi_mod.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «shi_mod.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой пользовательский индикатор для платформы MetaTrader 4, отображаемый в окне графика. Он визуализирует аналитические уровни и структуры цены с помощью линий тренда и стрелочных маркеров, создавая графические объекты непосредственно на чарте.
Индикатор считывает внешние данные из CSV-файлов, соответствующих текущему символу и таймфрейму, и на их основе проводит анализ структуры цены с использованием фрактальных методов. Результаты анализа отображаются в виде нескольких линий тренда разного стиля и цвета, а также вертикальной линии-ориентира.
Продукт поддерживает настройку глубины поиска фрактальных точек через параметр BarsForFract. При недостаточной истории данных индикатор выводит предупреждение. При удалении с графика временные файлы автоматически удаляются.
Настройки программы
| Настройка | Описание |
|---|---|
| BarsForFract | BarsForFract — Задаёт количество баров для поиска фрактальных точек. При значении 0 используется значение по умолчанию, зависящее от текущего таймфрейма. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
double ExtMapBuffer1[];
double UpLabel[];
extern int BarsForFract=0;
int CurrentBar=0;
double Step=0;
int B1=-1,B2=-1,iB1=0,iB2=0,flag=0;
int UpDown=0;
double P1=0,P2=0,PP=0,P1f=0,PPf=0;
int i=0,AB=300,BFF=0;
int ishift=0;
double iprice=0;
datetime T1,T2,Tf;
string fileNAME;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
FileDelete(fileNAME);
return(0);
}
void DelObj()
{
ObjectDelete("TL1"); ObjectDelete("TL2"); ObjectDelete("MIDL");
ObjectDelete("Lab1");ObjectDelete("Lab2");ObjectDelete("Lab3");
ObjectDelete("TL1f");ObjectDelete("TL2f");
ObjectDelete("MyBarLine");
}
int start()
{
// код доступен только после оплаты
}
double iPP,Lab1Val,Lab2Val,Lab3Val;
int MyBar,lastBarTime,h1,ii;
string v1,fileFrame;
switch (Period()) // ???????????? ????? ????? ???????? ?????
{
case PERIOD_M1: fileFrame=",M1";break;
case PERIOD_M5: fileFrame=",M5";break;
case PERIOD_M15: fileFrame=",M15";break;
case PERIOD_M30: fileFrame=",M30";break;
case PERIOD_H1: fileFrame=",H1";break;
case PERIOD_H4: fileFrame=",H4";break;
case PERIOD_D1: fileFrame=",Daily";break;
case PERIOD_W1: fileFrame=",Weekly";break;
case PERIOD_MN1: fileFrame=",Monthly";break;
}
fileNAME=Symbol()+fileFrame+".csv";
h1=FileOpen(Symbol()+fileFrame+".csv",FILE_CSV,";");
v1 = FileReadString(h1);
FileClose(h1);
Comment(v1);
lastBarTime=StrToTime(v1);
i=0;
while (i<=Bars-1 )
{if (lastBarTime==Time[i])
{ MyBar=i;break;}
i++;
}
ArrayInitialize(UpLabel,0.0);
if (Bars<MyBar+303) {Alert("Too little history");return(-1);}
int counted_bars=IndicatorCounted();
if (BarsForFract>0)
BFF=BarsForFract;
else
{
switch (Period())
{
case 1: BFF=12; break;
case 5: BFF=48; break;
case 15: BFF=24; break;
case 30: BFF=24; break;
case 60: BFF=12; break;
case 240: BFF=15; break;
case 1440: BFF=10; break;
case 10080: BFF=6; break;
default: DelObj(); return(-1); break;
}
}
CurrentBar=2+MyBar; //??????? ? ???????? ????, ????? ??????? "??????????
B1=-1; B2=-1; UpDown=0; flag=0;
while(((B1==-1) || (B2==-1)) && (CurrentBar<(AB+MyBar)))
{
if((UpDown<1) && (CurrentBar==Lowest(Symbol(),Period(),MODE_LOW,BFF*2+1,CurrentBar-BFF)))
{
if(UpDown==0) { UpDown=-1; B1=CurrentBar; iB1=CurrentBar; P1=Low[B1];}
else { B2=CurrentBar; iB2=CurrentBar; P2=Low[B2];}
}
if((UpDown>-1) && (CurrentBar==Highest(Symbol(),Period(),MODE_HIGH,BFF*2+1,CurrentBar-BFF)))
{
if(UpDown==0) { UpDown=1; B1=CurrentBar; iB1=CurrentBar; P1=High[B1];}
else { B2=CurrentBar; iB2=CurrentBar; P2=High[B2];}
}
CurrentBar++;
}
if((B1==-1) || (B2==-1)) {DelObj(); return(-1);} // ?????? ?? ????? ???Показано первые 50% кода (символов: 5141)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.