Торговая система "Математика Мурри - страница 165

 

Мне очень нравятся эти круги конфликта, и я хотел бы применить их на своих графиках MT4. Есть ли версия, которая работает? Xard777 сделал одну несколько лет назад, но библиотека таймфреймов содержит массивы, которые нечитаемы для MetaEditor в наши дни. Я пробовал, но у меня не получается.

 
krelian99:
Мне очень нравятся эти круги конфликта и я хотел бы применить его на своих графиках MT4. Есть ли версия, которая работает? Xard777 сделал одну несколько лет назад, но библиотека таймфреймов содержит массивы, которые не читаются MetaEditor'ом в наши дни. Я пробовал, но у меня не получается.

krelian99

О каком именно коде вы говорите?

 

Я написал Xard777 ЛС на другом форуме и здесь, но он не появлялся до сих пор. У меня было немного времени и сейчас я прочитал заголовок. Стыдно за меня (я мог бы спросить раньше). The Murray Math files(http://www.forexfactory.com/showthre...73#post4071573)- это совместная работа Вас, mladen, Xard777, igor и др.

На следующей странице форума по ссылке находится непослушная библиотека: TimeFrameLib-v0.3.ex4

Я предполагаю, что она из той же команды, что и файлы MM. Вы можете что-нибудь сделать, mladen?

 

Здравствуйте, я пытаюсь узнать больше о программировании MQL4, в основном это редактирование существующих индикаторов, т.е. добавление предупреждений, дополнительных сигналов.

сигналы, изменение цвета и формы.

Я уверен, что следующий вопрос должен быть простым для большинства из вас, но я пытаюсь это сделать уже полдня, и я уверяю вас, что я пытался

найти решение самостоятельно...

---

Как "повторно инициализировать" индикатор типа линии Murrey Math?

---

и еще один большой вопрос

---

Когда индикатор должен быть "повторно инициализирован" после нескольких периодов (16, 32, 64, 96)?

а что если график полностью выходит за пределы диапазона Мюррея (в пределах периода времени)?

Как с этим быть?

---

Вот некоторые идеи, которые я пробовал и которые не сработали.

Обзорная версия (полный индикатор прилагается)

-----------------------------

extern int FirstBar = 0;

extern int periodtotake = 16;

extern int SomeVar = 0;

int bn_v1 = 0,

bn_v2 = 0,

shift = 0,

i2 = 0, //что это???

WorkTime = 0, // <---

CurPeriods = 0; // <---

//NewPeriod = 0; //игнорируем бесполезные попытки

int init()

{

//WorkTime = Time[0]; //wrongPosition

//CurPeriods = Period(); //wrongPosition

//NewPeriod = periodtotake; //игнорировать бесполезную попытку

//----

return(0);

}

//+------------------------------------------------------------------+

//| Функция деинициализации индикатора Custor |

//+------------------------------------------------------------------+

int deinit()

{

//---- TODO: добавьте свой код сюда

ObjectsDeleteAll(0, OBJ_HLINE);

ObjectsDeleteAll(0, OBJ_VLINE); //VLINE добавлена

ObjectDelete(VLine_0);

ObjectDelete(VLine_1);

ObjectDelete(VLine_2);

int count=ArraySize(textArray);

for(int ch=0;ch<count;ch++) {

ObjectDelete(textArray[ch]);

ObjectDelete(lineArray[ch]);

}

//ObjectsDeleteAll(0, OBJ_TEXT);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

if( (WorkTime != Time[0]) || (CurPeriods != Period()) ) // <---!!!

{

//цена

bn_v1 = Lowest( NULL, 0, MODE_LOW, periodtotake+SomeVar, FirstBar );

bn_v2 = Highest( NULL, 0, MODE_HIGH, periodtotake+SomeVar, FirstBar );

v1 = Low;

v2 = High;

//+------------------------------------------------------------------+

// Все вычисления

//+------------------------------------------------------------------+

// КОНЕЦ - здесь я все делаю неправильно

WorkTime = Time[0];

CurPeriods = Period();

}

//if( Time[periodtotake] >= periodtotake )

//if( CurPeriods>= periodtotake )

//{

// WindowRedraw();

//}

//else

//{

// // WindowRedraw();

//}

//----

return(0);

}

Если у вас есть время, напишите несколько слов объяснений (почему это работает, а это нет, или какие ключевые слова в какой части ссылки мне лучше посмотреть).

мне лучше присмотреться к этому),

О, если бы я только хотел иметь работающий освежающий Murrey, я бы использовал Murrey_Math_Line_X, но это также для обучения...

Полный (в процессе работы) индикатор прилагается.

Большое спасибо, что уделили мне время, я постараюсь "дать что-либо взамен", как только мои знания будут достойны того, чтобы ими поделиться ;-)murrey2-z---murreymath-timeframe-colorless5d-fresh.mq4

 
hallo5534:
Здравствуйте, я пытаюсь узнать больше о программировании MQL4, в основном это редактирование существующих индикаторов, т.е. добавление алертов, дополнительных...

сигналы, меняя цвет и форму.

Я уверен, что следующий вопрос должен быть простым для большинства из вас, но я пробую его уже полдня, и уверяю вас, я пытался

найти решение самостоятельно...

---

Как "повторно инициализировать" индикатор типа линии Murrey Math?

---

и еще один большой вопрос

---

Когда индикатор должен быть "повторно инициализирован" после нескольких периодов (16, 32, 64, 96)?

а что если график полностью выходит за пределы диапазона Мюррея (в пределах временного периода)?

Как с этим быть?

---

Вот некоторые идеи, которые я пробовал и которые не сработали.

Обзорная версия (полный индикатор прилагается)

-----------------------------

extern int FirstBar = 0;

extern int periodtotake = 16;

extern int SomeVar = 0;

int bn_v1 = 0,

bn_v2 = 0,

shift = 0,

i2 = 0, //что это???

WorkTime = 0, // <---

CurPeriods = 0; // <---

//NewPeriod = 0; //игнорируем бесполезные попытки

int init()

{

//WorkTime = Time[0]; //wrongPosition

//CurPeriods = Period(); //wrongPosition

//NewPeriod = periodtotake; //игнорировать бесполезную попытку

//----

return(0);

}

//+------------------------------------------------------------------+

//| Функция деинициализации индикатора Custor |

//+------------------------------------------------------------------+

int deinit()

{

//---- TODO: добавьте свой код сюда

ObjectsDeleteAll(0, OBJ_HLINE);

ObjectsDeleteAll(0, OBJ_VLINE); //VLINE добавлена

ObjectDelete(VLine_0);

ObjectDelete(VLine_1);

ObjectDelete(VLine_2);

int count=ArraySize(textArray);

for(int ch=0;ch<count;ch++) {

ObjectDelete(textArray[ch]);

ObjectDelete(lineArray[ch]);

}

//ObjectsDeleteAll(0, OBJ_TEXT);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

if( (WorkTime != Time[0]) || (CurPeriods != Period()) ) // <---!!!

{

//цена

bn_v1 = Lowest( NULL, 0, MODE_LOW, periodtotake+SomeVar, FirstBar );

bn_v2 = Highest( NULL, 0, MODE_HIGH, periodtotake+SomeVar, FirstBar );

v1 = Low;

v2 = High;

//+------------------------------------------------------------------+

// Все вычисления

//+------------------------------------------------------------------+

// КОНЕЦ - здесь я все делаю неправильно

WorkTime = Time[0];

CurPeriods = Period();

}

//if( Time[periodtotake] >= periodtotake )

//if( CurPeriods>= periodtotake )

//{

// WindowRedraw();

//}

//else

//{

// // WindowRedraw();

//}

//----

return(0);

}

Если у вас есть время, напишите несколько слов объяснений (почему это работает, а это нет, или какие ключевые слова в какой части ссылки мне лучше посмотреть).

мне лучше присмотреться к этому),

О, если бы я только хотел иметь работающий освежающий Murrey, я бы использовал Murrey_Math_Line_X, но это также для обучения...

Полный (в процессе работы) индикатор прилагается.

спасибо большое, что уделили мне время, я постараюсь "отдать что-л. взамен", как только мои знания станут достойны того, чтобы ими поделиться ;-)murrey2-z---murreymath-timeframe-colorless5d-fresh.mq4

Вы не можете повторно инициализировать любой код mql, если вы не меняете параметры, символ или таймфрейм.

 
hallo5534:
Здравствуйте, я пытаюсь узнать больше о программировании MQL4, в основном это редактирование существующих индикаторов, т.е. добавление алертов, дополнительных

сигналы, меняя цвет и форму.

Я уверен, что следующий вопрос должен быть простым для большинства из вас, но я пробую его уже полдня, и уверяю вас, я пытался

найти решение самостоятельно...

---

Как "повторно инициализировать" индикатор типа линии Murrey Math?

---

и еще один большой вопрос

---

Когда индикатор должен быть "повторно инициализирован" после нескольких периодов (16, 32, 64, 96)?

а что если график полностью выходит за пределы диапазона Мюррея (в пределах временного периода)?

Как с этим быть?

---

Вот некоторые идеи, которые я пробовал и которые не сработали.

Обзорная версия (полный индикатор прилагается)

-----------------------------

extern int FirstBar = 0;

extern int periodtotake = 16;

extern int SomeVar = 0;

int bn_v1 = 0,

bn_v2 = 0,

shift = 0,

i2 = 0, //что это???

WorkTime = 0, // <---

CurPeriods = 0; // <---

//NewPeriod = 0; //игнорируем бесполезные попытки

int init()

{

//WorkTime = Time[0]; //wrongPosition

//CurPeriods = Period(); //wrongPosition

//NewPeriod = periodtotake; //игнорировать бесполезную попытку

//----

return(0);

}

//+------------------------------------------------------------------+

//| Функция деинициализации индикатора Custor |

//+------------------------------------------------------------------+

int deinit()

{

//---- TODO: добавьте свой код сюда

ObjectsDeleteAll(0, OBJ_HLINE);

ObjectsDeleteAll(0, OBJ_VLINE); //VLINE добавлена

ObjectDelete(VLine_0);

ObjectDelete(VLine_1);

ObjectDelete(VLine_2);

int count=ArraySize(textArray);

for(int ch=0;ch<count;ch++) {

ObjectDelete(textArray[ch]);

ObjectDelete(lineArray[ch]);

}

//ObjectsDeleteAll(0, OBJ_TEXT);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Пользовательская функция итерации индикатора |

//+------------------------------------------------------------------+

int start()

{

if( (WorkTime != Time[0]) || (CurPeriods != Period()) ) // <---!!!

{

//цена

bn_v1 = Lowest( NULL, 0, MODE_LOW, periodtotake+SomeVar, FirstBar );

bn_v2 = Highest( NULL, 0, MODE_HIGH, periodtotake+SomeVar, FirstBar );

v1 = Low;

v2 = High;

//+------------------------------------------------------------------+

// Все вычисления

//+------------------------------------------------------------------+

// КОНЕЦ - здесь я все делаю неправильно

WorkTime = Time[0];

CurPeriods = Period();

}

//if( Time[periodtotake] >= periodtotake )

//if( CurPeriods>= periodtotake )

//{

// WindowRedraw();

//}

//else

//{

// // WindowRedraw();

//}

//----

return(0);

}

Если у вас есть время, напишите несколько слов объяснений (почему это работает, а это нет, или какие ключевые слова в какой части ссылки мне лучше посмотреть).

мне лучше присмотреться к этому),

О, если бы я только хотел иметь работающий освежающий Murrey, я бы использовал Murrey_Math_Line_X, но это также для обучения...

Полный (в процессе работы) индикатор прилагается.

спасибо большое за то, что уделили мне время, я постараюсь "отдать что-л. обратно", как только мои знания будут достойны того, чтобы ими поделиться ;-)murrey2-z---murreymath-timeframe-colorless5d-fresh.mq4

Морро прав: повторная инициализация - не вариант.

Но также не нужна WindowRedraw() прямо перед выходом из процедуры запуска - она будет перерисована независимо от функции. WindowRedraw() нужна только если обработка занимает много времени или вы держите что-то в мертвом цикле.

 
poster:
Индикатор M-MATH v3 m-math_v3.rar

Есть ли у вас этот индикатор, который работает с новым билдом? Не могу загрузить его на свой график?

 

Для новой сборки: m-math_v3.mq4

Файлы:
m-math_v3.mq4  23 kb
 

спасибо, отличная система

 

Уровни отскока Мюррея

emurreyreboundlevels.ex4

Файлы:
Причина обращения: