Murrey_Math_Modified
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «murrey_math_modified1.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой индикатор для платформы MetaTrader 5, предназначенный для расчёта и визуализации аналитических уровней на ценовом графике. Он анализирует диапазон цен за заданный период и строит на графике набор горизонтальных линий и текстовых меток, соответствующих ключевым ценовым уровням.
Индикатор отображает результаты расчёта в виде объектов графика: горизонтальных линий с различными цветами и текстовых подписей, обозначающих дробные значения уровней. При смене бара или таймфрейма происходит пересчёт и обновление отображаемых уровней.
Продукт использует два буфера индикатора, однако основной визуальный вывод осуществляется через графические объекты чарта. В процессе деинициализации все созданные графические объекты удаляются для очистки графика.
Настройки программы
| Настройка | Описание |
|---|---|
| beginer | Начальное значение параметра, используемое в качестве базовой настройки индикатора. По умолчанию установлено значение 200. |
| periodtotake | Период анализа цен, определяющий количество баров, учитываемых при расчёте максимальной и минимальной цены для построения уровней. По умолчанию установлено значение 200. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 MediumBlue
#property indicator_color2 Red
extern int beginer=200;
extern int periodtotake=200;
double ExtMapBuffer1[];
double ExtMapBuffer2[];
int shift,i2,WorkTime,Periods;
double sum,v1,v2,fractal;
double v45,mml00,mml0,mml1,mml2,mml3,mml4,mml5,mml6,mml7,mml8,mml9,mml98,mml99;
double range,octave,mn,mx,price;
double finalH,finalL;
double x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6;
string textArray[13]={"mm11_txt","mm12_txt","mm1_txt","mm2_txt","mm3_txt","mm4_txt","mm5_txt","mm6_txt","mm7_txt","mm8_txt","mm9_txt","mm-1_txt","mm-2_txt"};
string lineArray[13]={"mm11","mm12","mm1","mm2","mm3","mm4","mm5","mm6","mm7","mm8","mm9","mm-1","mm-2"};
int init()
{
// код доступен только после оплаты
}
int deinit()
{
ObjectsDeleteAll(0, OBJ_HLINE);
int count=ArraySize(textArray);
for(int ch=0;ch<count;ch++) {
ObjectDelete(textArray[ch]);
ObjectDelete(lineArray[ch]);
}
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted(),CountBars;
if (CountBars>=Bars) CountBars=Bars;
SetIndexDrawBegin(0,Bars-CountBars);
SetIndexDrawBegin(1,Bars-CountBars);
if( (WorkTime != Time[0]) || (Periods != Period()) ) {
v1=(Low[Lowest(NULL,0,MODE_LOW,periodtotake,0)]);
v2=(High[Highest(NULL,0,MODE_HIGH,periodtotake,0)]);
if(v2<=250000 && v2>25000) {
fractal=100000;
}else if(v2<=25000 && v2>2500){
fractal=10000;
}else if(v2<=2500 && v2>250){
fractal=1000;
}else if (v2<=250 && v2>25) {
fractal=100;
}else if (v2<=25 && v2>12.5) {
fractal=12.5;
}else if(v2<=12.5 && v2>6.25) {
fractal=12.5;
}else if(v2<=6.25 && v2>3.125) {
fractal=6.25;
}else if(v2<=3.125 && v2>1.5625) {
fractal=3.125;
}else if(v2<=1.5625 && v2>0.390625) {
fractal=1.5625;
}else if(v2<=0.390625 && v2>0) {
fractal=0.1953125;
}
range=(v2-v1);
sum=MathFloor(MathLog(fractal/range)/MathLog(2));
octave=fractal*(MathPow(0.5,sum));
mn=MathFloor(v1/octave)*octave;
if((mn+octave)>v2) {
mx=mn+octave;
}else{
mx=mn+(2*octave);
}
if((v1>=3/16*(mx-mn)+mn)&& (v2<=9/16*(mx-mn)+mn)) {
x2=mn+(mx-mn)/2;
}else{
x2=0;
}
if((v1>=mn-(mx-mn)/8)&& (v2<=5/8*(mx-mn)+mn) && x2==0) {
x1=mn+(mx-mn)/2;
}else{
x1=0;
}
if((v1>=mn+7*(mx-mn)/16)&& (v2<=13/16*(mx-mn)+mn)) {
x4=mn+3*(mx-mn)/4;
}else{
x4=0;
}
if((v1>=mn+3*(mx-mn)/8)&& (v2<=9/8*(mx-mn)+mn)&& x4==0) {
x5=mx;
}else{
x5=0;
}
if((v1>=mn+(mx-mn)/8)&& (v2<=7/8*(mx-mn)+mn)&& x1==0 && x2==0 && x4==0 && x5==0) {
x3=mn+3*(mx-mn)/4; }else{
x3=0;
}
if((x1+x2+x3+x4+x5)==0) {
x6=mx; }else{
x6=0;
}
finalH=x1+x2+x3+x4+x5+x6;
if(x1>0) {
y1=mn; }else{
y1=0;
}
if(x2>0) {
y2=mn+(mx-mn)/4; }else{
y2=0;
}
if(x3>0) {
y3=mn+(mx-mn)/4;
}else{
y3=0;
}
if(x4>0) {
y4=mn+(mx-mn)/2;
}else{
y4=0;
}
if(x5>0) {
y5=mn+(mx-mn)/2;
}else{
y5=0;
}
if((finalH>0) && (y1+y2+y3+y4+y5==0)) {
y6=mn;
}else{
y6=0;
}
finalL=y1+y2+y3+y4+y5+y6;
v45=(finalH-finalL)/8;
mml00=(finalL-v45*2); //-2/8
mml0=(finalL-v45); //-1/8
mml1=(finalL);// 0/8
mml2=(finalL+v45);// 1/8
mml3=(finalL+2*v45); // 2/8
mml4=(finalL+3*v45); // 3/8
mml5=(finalL+4*v45); // 4/8
mml6=(finalL+5*v45); // 5/8
mml7=(finalL+6*v45); // 6/8
mml8=(finalL+7*v45);// 7/8
mml9=(finalL+8*v45);// 8/8
mml99=(finalL+9*v45);// +1/8
mml98=(finalL+10*v45);// +2/8
ObjectsRedraw( ) ;
ObjectCreate("mm11_txt",OBJ_TEXT,0,Time[30],mml00,Time[30],mml00); //???? 30-2/8 ????
ObjectSetText("mm11_txt","_????? ?"+finalH+"mml7 "+mml7,10,"Arial",Magenta);
ObjectCreate("mm12_txt",OBJ_TEXT,0,Time[30],mml0,Time[30],mml0);
ObjectSetText("mm12_txПоказано первые 50% кода (символов: 6891)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.