АвторСообщение



Сообщение: 2
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 14.07.14 18:23. Заголовок: Индикатор стохастик Ди Наполи


Здравствуйте, Scriptong. Помогите пожалуйста сделать стохастик Ди Наполи мультитаймфреймным, я всю голову поломал уже не могу ни как сделать
код индюка прилагаю: Стохастик Ди Наполи
Заранее благодарен!!!!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 38 , стр: 1 2 3 All [только новые]







Сообщение: 644
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 23.07.14 22:01. Заголовок: tench72 пишет: Я по..


tench72 пишет:

 цитата:
Я подставил индекс в код стохастика:


В этом коде Вы получили только два правильных значения: low и high. Все остальные - неправильные. Так, при расчете значения переменной Fast Вы использовали таймсерию, обращающуюся к текущему таймфрейму: Close. При работе с другим таймфреймом/графиком необходимо использовать функцию iClose.
Ну и со значением буфера StoBuffer Вы вновь допускаете ошибку - оперируете индексом текущего таймфрейма при расчете значения. Хотя сохранять значение, конечно же, нужно по индексу текущего таймфрейма. Разберитесь с тем, в каких местах нужно использовать индекс текущего таймфрейма, а в каких - другого. Так, при расчетах всегда нужно использовать индекс бара другого ТФ, а при визуализации значения (сохранении результата в буфер индикатора) используется индекс бара текущего ТФ.

Спасибо: 1 
ПрофильЦитата Ответить



Сообщение: 11
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 28.07.14 16:38. Заголовок: Scriptong пишет: Ну..


Scriptong пишет:

 цитата:
Ну и со значением буфера StoBuffer Вы вновь допускаете ошибку - оперируете индексом текущего таймфрейма при расчете значения. Хотя сохранять значение, конечно же, нужно по индексу текущего таймфрейма. Разберитесь с тем, в каких местах нужно использовать индекс текущего таймфрейма, а в каких - другого.


я изменил код:
while(i>=0)
{
int in= iBarShift(NULL, tf, Time);
low=Low[iLowest(NULL,tf,MODE_LOW,FastK,in)]; //минимум

high=High[iHighest(NULL,tf,MODE_HIGH,FastK,in)]; //максимум

double Fast=(iClose(NULL,tf,in)-low)/(high-low)*100; //расчёт первичной быстрой линии %К

StoBuffer[in]=StoBuffer[in+1]+(Fast-StoBuffer[in+1])/SlowK;

все равно ни чего не изменилось на другом таймфрейме индикатор и исчезает

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 659
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 28.07.14 20:03. Заголовок: tench72 пишет: все ..


tench72 пишет:

 цитата:
все равно ни чего не изменилось на другом таймфрейме индикатор и исчезает


Странно. У меня не исчезает. Просто показывает неправильные значения. Ну да ладно, с этим разберемся потом, когда код доведем до нужной кондиции.

Итак, Вы уже сделали определенные успехи - использовали функцию iClose, т. к. необходимо было получить цену закрытия бара другого таймфрейма. Но при этом почему-то забыли, что при расчете минимума и максимума тоже нужно оперировать данными другого таймфрейма. Low и High - это массивы таймсерии, при помощи которых можно получить минимум и максимум указанного бара, но на текущем таймфрейме. Если же необходимо получить максимум и минимум бара другого таймфрейма, то следует использовать функции iLow и iHigh.

Когда исправите эту ошибку, получите следующий вид индикатора на М5 при использовании данных М15:


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


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 12
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 28.07.14 20:38. Заголовок: а как же функции iLo..


а как же функции iLowest(NULL,tf,MODE_LOW,FastK,in) и iHighest(NULL,tf,MODE_HIGH,FastK,in) они вообще не нужны????
Ни чего не пойму... как использовать функции iLow и iHigh, совместно с ними???!!!!


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 660
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 28.07.14 21:17. Заголовок: tench72 пишет: а ка..


tench72 пишет:

 цитата:
а как же функции iLowest(NULL,tf,MODE_LOW,FastK,in) и iHighest(NULL,tf,MODE_HIGH,FastK,in) они вообще не нужны????


Нужны.
Функция iLowest определяет индекс минимального бара на заданном интервале. Нам же требуется получить значение минимума бара. Для текущего таймфрейма это делается при помощи обращения к массиву-таймсерии Low, а для таймфрейма, отличного от текущего, при помощи функции iLow. Аналогично с iHighest, High и iHigh.

Для лучшего понимания прочтите документацию по этим функциям. По таймсериям документация здесь.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 13
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 31.07.14 15:49. Заголовок: Добрый вечер Scripto..


Добрый вечер Scriptong. Спасибо за консультации, но честное слово, я не иогу понять что делать... В принципе я получил три стохастика Ди Наполи по разным тайм фреймам, я воспользовался функцией iCustom() ввел функции iLowest и iHighest, их значения ввел в функцию iCustom() с соответствующим таймфреймом. Вроде как получилось, правда ступенчатые они какие то но деваться не куда, что получилось то получилось. Еще раз спасибо!

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 668
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 31.07.14 19:16. Заголовок: tench72 пишет: Спас..


tench72 пишет:

 цитата:
Спасибо за консультации, но честное слово, я не иогу понять что делать...


Ну как что - разбираться, если хочется создавать программы лично
Здесь можете задавать любые глупые вопросы по теме MQL4/MQL5. Никто их тут тролить не будет.

tench72 пишет:

 цитата:
В принципе я получил три стохастика Ди Наполи по разным тайм фреймам, я воспользовался функцией iCustom() ввел функции iLowest и iHighest


При чем тут функция iCustom?

tench72 пишет:

 цитата:
Вроде как получилось, правда ступенчатые они какие то


На графике М5 показания с М15 обязательно будут ступеньками, т. к. каждый бар М15 - это 3 бара М5. То есть три подряд бара М5 будут отображать одинаковые показания.

Покажите тот код, который у Вас получился. Скорее всего, там еще есть несколько неучтенных моментов. Я то уже сделал для проверки "правильный вариант", в котором все подводные камни обнаружены.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 14
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 04.08.14 15:16. Заголовок: Код получился таким:..


Код получился таким:
int start()
{
int i,limit,y=0;

limit= ColBar-1;

for(i=0,y=0;i<limit;i++)
{

y=iBarShift(NULL, TimeFrame, Time);

ExtMapBuffer=iCustom(NULL,TimeFrame,"StochasticDN",FastK,0,y) ;
{

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

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 674
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 04.08.14 16:53. Заголовок: tench72 пишет: Код ..


tench72 пишет:

 цитата:
Код получился таким:


Вас занесло не в ту степь Использование функции iCustom в данном случае не нужно.
Это какой-то другой индикатор, который мы с Вами не обсуждали.
Предлагаю вернуться к прошлому обсуждению. Итак, у Вас должно было получиться что-то типа такого:

 цитата:
while (index >= 0)
{
int in = iBarShift(NULL, tf, Time[index]);

low = iLow(NULL, tf, iLowest(NULL, tf, MODE_LOW, FastK, in)); //минимум
high = iHigh(NULL, tf, iHighest(NULL, tf, MODE_HIGH, FastK, in)); //максимум
double diff = (high - low) * 100;
if (diff != 0 && SlowK != 0 && SlowD != 0)
{
double Fast = (iClose(NULL, tf, in) - low) / (high - low) * 100; //расчёт первичной быстрой линии %К
StoBuffer[index] = StoBuffer[index + 1] + (Fast - StoBuffer[index + 1]) / SlowK; //расчёт стохастической линии
SigBuffer[index] = SigBuffer[index + 1] + (StoBuffer[index] - SigBuffer[index + 1]) / SlowD; //расчёт сигнальной линии
}
index--;
}



Но это еще не совсем правильный код, хотя и рабочий.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 15
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 06.08.14 17:10. Заголовок: Здравствуйте Сэнсэй!..


Здравствуйте Сэнсэй!
А почему не совсем правильный вроде как гладкий и похож на тот который установлен на своем таймфрейме!

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 676
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 06.08.14 19:27. Заголовок: tench72 пишет: А по..


tench72 пишет:

 цитата:
А почему не совсем правильный вроде как гладкий и похож на тот который установлен на своем таймфрейме!


Вот именно поэтому он и неправильный. Показания старшего таймфрейма на младшем таймфрейме должны быть ступеньками.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 16
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 06.08.14 19:56. Заголовок: :sm33: Ну вот те на..


Ну вот те на.... А я так обрадовался
Ноя сравнивал значения перегибов стохастиков мультитаймфрейного наМ15 установленного на М5,
и обыкновенного на М15, они вроде как совпадают

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 677
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 07.08.14 10:21. Заголовок: tench72 пишет: Ноя ..


tench72 пишет:

 цитата:
Ноя сравнивал значения перегибов стохастиков мультитаймфрейного наМ15 установленного на М5,
и обыкновенного на М15, они вроде как совпадают


Если брать первую свечу М5, то, конечно, совпадают. Если брать следующие две - не совпадут. Также в динамике будет идти накопление ошибки расчетов тем большее, чем дольше работает индикатор без перезапуска.

Но решение есть. Попробуйте подумать именно в этом направлении.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 17
Зарегистрирован: 24.03.14
Репутация: 0
ссылка на сообщение  Отправлено: 10.08.14 20:45. Заголовок: Здравствуйте Script..


Здравствуйте Scriptong, я бы с удовольствием подумал в направлении в котором Вы указали...
Но увы я не программист, и даже не подозреваю в каком направлении думать, мой опыт программирования ограничен начальными курсоми Бейсика и Си в даааалеком 1995 году, когда я заканчивал универ. В учебнике MQL4 очень скудно описано про функции, да и мОзги уже не те что раньше

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 687
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 11.08.14 14:46. Заголовок: tench72 пишет: Но у..


tench72 пишет:

 цитата:
Но увы я не программист, и даже не подозреваю в каком направлении думать, мой опыт программирования ограничен начальными курсоми Бейсика и Си в даааалеком 1995 году, когда я заканчивал универ. В учебнике MQL4 очень скудно описано про функции, да и мОзги уже не те что раньше


Вы же вроде изъявили желание учить MQL4. Из этих соображений я и даю вводные. Если же намерений учить язык нет, то, конечно, все эти наши разговоры не имеют никакой перспективы.
Итак, продолжаю, исходя из предположения, что учиться Вы, все-таки, намерены.

Простой пример, для которого не нужно быть программистом. Достаточно знать математику на уровне 5-ого класса средней школы. Есть линия.

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


Так и в рассматриваемом индикаторе. Мы берем данные с таймфрейма М15. Это "текущий масштаб линии". Отображаем мы эти данные на таймфрейме М5 - это "увеличенный масштаб".
Вопрос: что мы должны увидеть на графике М5?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 38 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 2
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет