# Доработка ботов (советников, индикаторов) vol. 2

Раздел: Язык программирования MQL4
Автор темы: chocolate
Создана: 2014-10-02 12:48
Ответов: 33795 | Просмотров: 6649427
Страница 1646 из 1690
Источник: https://forexsystemru.com/threads/77111/page-1646

---

## Genry_05 — 2025-04-23 21:27

> Цитата (jhndoo):
> ***Ребята, программисты***! Нужен подвиг, конвертировать из ***Pine Script®***
> в ***MQL5. *** Перспективный индикатор, идеально как фильтр для других
> индикаторов. В прилагаемых файлах есть готовый индикатор, но в закрытом
> коде. Нужен такой же, но с буферами читаемыми советником.

Ради интереса попробовал перевести из пайна в мукл4.
Сначала полученный код порадовал - чего-то нарисовал с параметрами по умолчанию
Но после вызова настройки параметров возникает ошибка Access violation read to 0x00000034 без указания строки  где возникает.

Напихал  в код кучу if (Debug_On) Print( чтобы поймать при обращении к какому массиву возникает косяк, так и не нашел....  может глаз замылился и не вижу очевидного :unsure:.
Вот код для желающих продолжить начатое ... ;)

## mobidik — 2025-04-24 01:38

> Цитата (Genry_05):
> Ради интереса попробовал перевести из пайна в мукл4.
> Сначала полученный код порадовал - чего-то нарисовал с параметрами по умолчанию
> Но после вызова настройки параметров возникает ошибка Access violation read to 0x00000034 без указания строки где возникает.

1) Не нужно задавать в OnInit, а затем в OnCalculate (на каждом тике!) размеры массивов которые связаны с индикаторными буферами - терминал сам прекрасно с этим справляется.
2) Оператор switch - требует наличия оператора break, иначе будет то, что есть.
3) Не использовать в одном и том же цикле расчет iMA или чего бы то ни было и тут же производить расчет данных с помощью iMAOnArray.
Исправишь и все заработает.

## vladradon — 2025-04-24 03:10

> Цитата (Genry_05):
> Вот код для желающих продолжить начатое ... ;)

Привет! Все нормально работает, но посмотришь изменения в функции расчета ТМА. Ошибку исправил. 😎

## Genry_05 — 2025-04-24 04:04

> Цитата (mobidik):
> 1) Не нужно задавать в OnInit, а затем в OnCalculate (на каждом тике!) размеры массивов которые связаны с индикаторными буферами - терминал сам прекрасно с этим справляется.

Я в курсе ;) Это уже из пушки по воробьям: добавил в попытке поймать в каком массиве возникает Access violation из-за размерности. Но наличие этих операторов на ошибку не повлияло, как и отсутствие.

> Цитата (mobidik):
> 2) Оператор switch - требует наличия оператора break, иначе будет то, что есть.

Там return... break после него как мертвому припарка.
        case SMA:    
            Print("Расчет SMA для бара index=", index);
            return(iMA(NULL, 0, _period, 0, MODE_SMA, PRICE_CLOSE, index));
            Print("этого сообщения не должно быть");
лог 
2025.04.24 03:23:53.151    Optimized Trend Tracker XAUUSD,H1: Расчет SMA для бара index=0
2025.04.24 03:23:53.151    Optimized Trend Tracker XAUUSD,H1: Расчет SMA для бара index=1
2025.04.24 03:23:53.151    Optimized Trend Tracker XAUUSD,H1: Расчет SMA для бара index=2
2025.04.24 03:23:53.151    Optimized Trend Tracker XAUUSD,H1: Расчет SMA для бара index=3

> Цитата (mobidik):
> 3) Не использовать в одном и том же цикле расчет iMA или чего бы то ни было и тут же производить расчет данных с помощью iMAOnArray.

Это в секции ТМА. Я чегото там перевел из паЙна, но еще не дошел до его отладки - ошибка возникает уже на первом расчете SMA. 
Хотя с точки зрения "глаз замылился" - этот код точно кривой и его надо поправить в первую очередь. 
Спасибо, **MobiDik**, возможно ошибка Access violation зарыта там - сейчас проверю.

## Genry_05 — 2025-04-24 04:15

> Цитата (Genry_05):
> Это в секции ТМА. Я чегото там перевел из паЙна, но еще не дошел до его отладки - ошибка возникает уже на первом расчете SMA.
> Хотя с точки зрения "глаз замылился" - этот код точно кривой и его надо поправить в первую очередь.
> Спасибо, **MobiDik**, возможно ошибка Access violation зарыта там - сейчас проверю.

> Цитата (vladradon):
> Привет! Все нормально работает, но посмотришь изменения в функции расчета ТМА. Ошибку исправил. 😎

Влад, доброе утро! 
Три головы оказалось в самый раз ✌️
Спасибо! Значит ТМА, которую я не вызывал при тестировании, из-за кривизны кода давала Access violation при переинициализации ?  Чудны коды твои, MQL4 :unsure:

## vladradon — 2025-04-24 05:33

> Цитата (Genry_05):
> Значит ТМА, которую я не вызывал при тестировании, из-за кривизны кода давала Access violation при переинициализации ?

Да, странно, что эту функцию нигде не вызываешь (**ТМА**), но **iMAOnArray**, при использовании константного массива в **ТМА**, вызывает такую ошибку доступа к массиву. Я много лет назад уже словил один раз такую ошибку и долго не мог понять в чем дело, и сегодня снова пришлось перерыть весь код, чтобы до нее добраться.:rolleyes:

## jhndoo — 2025-04-24 10:56

> Цитата (vladradon):
> Привет! Все нормально работает, но посмотришь изменения в функции расчета ТМА. Ошибку исправил. 😎

Что то не очень похоже, согласитесь? :unsure:

## MakarFX — 2025-04-24 11:04

> Цитата (jhndoo):
> Что то не очень похоже, согласитесь? :unsure:

Не все функции перенесли.

## vladradon — 2025-04-24 11:39

> Цитата (jhndoo):
> Что то не очень похоже, согласитесь? :unsure:

Я только исправил ошибку - за разработкой не ко мне.

## Алекс123456 — 2025-04-24 12:16

Доброго времени суток всем участникам чата.
У кого нибудь есть исходник этого индикатора?
Буду очени признателен если поделитесь.

## SanCheiser — 2025-04-24 13:22

прошу, может ли кто-нибудь добавить к этому индикатору периоды = младший и старший + менять цвет зоны между младшим и старшим в выбранный цвет?

## olegkom — 2025-04-24 15:29

Добрый день всем.Можно приделать стрелки при пересечении линий с буферами для сова.

## Genry_05 — 2025-04-24 16:12

> Цитата (jhndoo):
> Что то не очень похоже, согласитесь? :unsure:

Вообще-то  первые версии KivancOzbilgic@Anil_Ozeksi на ПайнЕ (2022-05-07) где-то так и рисовали.

Затем ее правил Sam4Cok@Samer800 в августе-ноябре 2022

Версия Пайна, с которой делали аналог на mql5, прошла несколько доработок, последние что я видел 2024 года.

В прицепе две версии для мукла4: с кнопкой и каким-то косяком внутри, и без кнопки и  косяка.
Делали их на сайте Младена, исходников нет - только ех4.

ЗЫ. Последняя версия Пайна с которой и надо делать перенос на мукл в прицепе. Но для моего первого раза  делать ее  сложно, может со временем разберусь что к чему.
Так что  желающие сделать это быстрее - велкам !

## BUT — 2025-04-24 18:27

> Цитата (SanCheiser):
> прошу, может ли кто-нибудь добавить к этому индикатору периоды = младший и старший + менять цвет зоны между младшим и старшим в выбранный цвет?

Стиль закрашивания меняйте в настройках.

## BUT — 2025-04-24 18:44

> Цитата (olegkom):
> Добрый день всем.Можно приделать стрелки при пересечении линий с буферами для сова.

Добрый день.
Буфер 2 - стрелка вверх.
Буфер 3 - стрелка вниз.

В настройках есть выбор типа сигнала: прямой и обратный. Прямой - в зависимости от того, как пересекает первый символ второй, так и появляется стрелка. Если обратный, соответственно сигналы как пересекает второй символ первый.

## jhndoo — 2025-04-24 19:15

> Цитата (Genry_05):
> Вообще-то  первые версии KivancOzbilgic@Anil_Ozeksi на ПайнЕ (2022-05-07) где-то так и рисовали.
>
> Затем ее правил Sam4Cok@Samer800 в августе-ноябре 2022
>
>
> Версия Пайна, с которой делали аналог на mql5, прошла несколько доработок, последние что я видел 2024 года.
>
> В прицепе две версии для мукла4: с кнопкой и каким-то косяком внутри, и без кнопки и  косяка.
> Делали их на сайте Младена, исходников нет - только ех4.
>
> ЗЫ. Последняя версия Пайна с которой и надо делать перенос на мукл в прицепе. Но для моего первого раза  делать ее  сложно, может со временем разберусь что к чему.
> Так что  желающие сделать это быстрее - велкам !

Осталось уже не так много, собрать линии в одну в случае совпадения, и назначить буферы.
Ну кто готов к подвигу?

## блондинка — 2025-04-24 20:17

> Цитата (Алекс123456):
> Доброго времени суток всем участникам чата.
> У кого нибудь есть исходник этого индикатора?
> Буду очени признателен если поделитесь.

cоветую запустить в тестере MT4 этот индикатор и посмотреть

## jhndoo — 2025-04-24 22:18

> Цитата (Genry_05):
> Вообще-то  первые версии KivancOzbilgic@Anil_Ozeksi на ПайнЕ (2022-05-07) где-то так и рисовали.
>
> Затем ее правил Sam4Cok@Samer800 в августе-ноябре 2022
>
>
> Версия Пайна, с которой делали аналог на mql5, прошла несколько доработок, последние что я видел 2024 года.
>
> В прицепе две версии для мукла4: с кнопкой и каким-то косяком внутри, и без кнопки и  косяка.
> Делали их на сайте Младена, исходников нет - только ех4.
>
> ЗЫ. Последняя версия Пайна с которой и надо делать перенос на мукл в прицепе. Но для моего первого раза  делать ее  сложно, может со временем разберусь что к чему.
> Так что  желающие сделать это быстрее - велкам !

И да, забыл сказать, всё это выполнить в ***.mql5***.

## ИванМН — 2025-04-24 23:00

Кошмар.... все светочи собрались для совершения... кгм... подвига по переводу Супертренда в непонятно что. Генри, Вам-то это зачем, скажите на милость? Вот уж не ожидал. Вы вроде говорили, что с программированием вообще завязали. Мне-то всё равно, просто зачем Вам эта пустота, о которой все через неделю забудут?

## Genry_05 — 2025-04-24 23:49

> Цитата (ИванМН):
> Кошмар.... все светочи собрались для совершения... кгм... подвига по переводу Супертренда в непонятно что. Генри, Вам-то это зачем, скажите на милость? Вот уж не ожидал. Вы вроде говорили, что с программированием вообще завязали. Мне-то всё равно, просто зачем Вам эта пустота, о которой все через неделю забудут?

Я планировал для себя из пайновского скрипта Nadaraya_RationalQuadKernel сделать мукловскую  версию. Там кода много - сразу не потяну, вот и решил попробовать на чем-то попроще. Пробовать все-равно на чем  ;), я просто учусь читать пайновский код.  Сам понимаешь, если алгоритм понятен, то смысла в портации кода нет. Легче и быстрее написать идею на мукле с нуля.

---

Следующая страница: https://forexsystemru.com/threads/77111/page-1647
