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

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 и перейдите к оплате.

Стоимость полного кода
689,10₽ ≈ $8.42