Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2551

 
Stepan Moiseev #:
Привет, друзья!
Кто может подсказать как прописать следующий алгоритм?


Значение RSI ≤ самого минимального значения RSI за последние n-свечей.

По аналогии если прописать Цена закрытия ≤ минимального значения цены закрытия за последние n-свечей, то это можно прописать таким образом:
iClose(symbol,TF,0) <=   iLow(symbol,TF, iLowest(symbol,TF,MODE_CLOSE, n,1).
Я думаю, должно быть аналогично и с RSI, только никак не могу сообразить как это прописать...

Заранее благодарю!!!

Привет.
1. Лучше научиться программировать самостоятельно. Тем более у тебя времени должно быть навалом, всё ведь автоматизировано. Иначе можешь ненароком спалить какому-то программисту суть ТС.
2. Я рекомендую применять ООП и брать реализацию индикаторов с реккурентной (рекурсивной) формулой в виде отдельного класса. Это хорошо тем, что такой индикатор просто принимает на вход новое значение цены. И поэтому легко один индикатор заставить считать значения другого, просто подав выход на вход. В твоем случае просто взял бы класс RSI, на вход подаешь новые значения цены. Выход RSI подаешь на WPR, и собственно всё.
3. У меня есть реализации индикатора MinMax и RSI, правда на С++. Но можно переписать. Мой говнокод:
Быстрый min-max: https://github.com/NewYaroslav/xtechnical_analysis/blob/master/include/indicators/xtechnical_fast_min_max.hpp
RSI: https://github.com/NewYaroslav/xtechnical_analysis/blob/master/include/indicators/xtechnical_rsi.hpp

Работает так:
- если бар закрылся, вызываем метод update и передаем туда цену (например цену закрытия)
- если есть новый бар, который не закрылся, и пришло изменение цены, то её передает в метод test (передаем последнюю известную цену).

Метод test вычисляет значение индикатора, но не изменяет его внутреннее состояние. Метод update изменяет внутреннее состояние индикатора.

Быстрый min-max это по сути тот же WPR, просто индюк находит минимальное и максимальное значение по алгоритму, который работает быстрее обычного перебора скользящего массива.

Извиняюсь за качестве, код на гитхабе у меня говно, но работает.

xtechnical_analysis/include/indicators/xtechnical_fast_min_max.hpp at master · NewYaroslav/xtechnical_analysis
xtechnical_analysis/include/indicators/xtechnical_fast_min_max.hpp at master · NewYaroslav/xtechnical_analysis
  • NewYaroslav
  • github.com
C++ header-only библиотека технического анализа для алготрейдинга - NewYaroslav/xtechnical_analysis
 
grezky #:
Виртуальная машина это типа Sandbox в Win10?
Ее настройки сохраняются после перегрузки компьютера?
(Sandbox при каждом выходе обнуляется)

Я Oracle VirtualBox использую. По поводу Sandbox я не знаю.

 
Vladislav Boyko #:
Я Oracle VirtualBox использую.

Посмотрел сегодня пару коротких видео по теме виртуальных машин.
Oracle VirtualBox - говорили что эта программа платная?
Она сохраняет все настройки после перегрузки компа?

В Win10 вроде есть встроенная Hyper-V виртуальная машина - почему Вы ею не воспользовались?
Какая у Вас операционка в компе и в виртуальной машине?

 
grezky #:

Посмотрел сегодня пару коротких видео по теме виртуальных машин.
Oracle VirtualBox - говорили что эта программа платная?
Она сохраняет все настройки после перегрузки компа?

В Win10 вроде есть встроенная Hyper-V виртуальная машина - почему Вы ею не воспользовались?
Какая у Вас операционка в компе и в виртуальной машине?

VirtualBox - бесплатно.. будет комп-в-компе :-) чтобы два раза не вставать: для установки Windows в виртуалку потребуется дистр. виндовс.

все настройки конечно-же сохраняются. 

grezky
grezky
  • 2023.12.20
  • www.mql5.com
Профиль трейдера
 
grezky #:
Oracle VirtualBox - говорили что эта программа платная?

Она бесплатная

grezky #:
Она сохраняет все настройки после перегрузки компа?

Это просто еще 1 полноценный Windows. Я выключаю виртуальную машину после использования и все сохраняется аналогично тому, как если бы вы выключили свой основной компьютер.

grezky #:
В Win10 вроде есть встроенная Hyper-V виртуальная машина - почему Вы ею не воспользовались?

Я не пользовался встроенной от Windows, но я уверен, что VirtualBox на голову выше по возможностям.

grezky #:
Какая у Вас операционка в компе и в виртуальной машине?

Windows 10 и там и там.

grezky #:
Посмотрел сегодня пару коротких видео по теме виртуальных машин.

В интернете огромное количество образовательных материалов на тему виртуализации для задач любого уровня сложности.

 
Maxim Kuznetsov #:

VirtualBox - бесплатно.. будет комп-в-компе :-) чтобы два раза не вставать: для установки Windows в виртуалку потребуется дистр. виндовс.

все настройки конечно-же сохраняются. 

Vladislav Boyko #:

Она бесплатная

Это просто еще 1 полноценный Windows. Я выключаю виртуальную машину после использования и все сохраняется аналогично тому, как если бы вы выключили свой основной компьютер.

Я не пользовался встроенной от Windows, но я уверен, что VirtualBox на голову выше по возможностям.

Windows 10 и там и там.

В интернете огромное количество образовательных материалов на тему виртуализации для задач любого уровня сложности.

Спасибо!

 
Возникла необходимость разобраться с OnInit().
Допустим включаю к-л индикатор на графике М5, при этом срабатывает OnInit(). 
После этого меняю таймфрейм с М5 на М30 - OnInit() в этом случае уже не используется?
 
grezky #:
Возникла необходимость разобраться с OnInit().
Допустим включаю к-л индикатор на графике М5, при этом срабатывает OnInit(). 
После этого меняю таймфрейм с М5 на М30 - OnInit() в этом случае уже не используется?

OnInit() при смене периода,символа будет срабатывать. 

Из статьи:  Функция предназначена для инициализации запущенной MQL5-программы.

 
Sergei Gurov #:
OnInit() при смене периода,символа будет срабатывать. 


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

 
Интересно, можно ли из кода индикатора отправлять серверу торговые приказы, например, OrderSend()? Вроде ограничений в справке не видел. Или я что-то не знаю?