Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хороший индикатор прорывов на истории. Если не перерисовывал цены не было =)
В первом комментарии версия 1,1.
Не перерисовывается, кстати :)
Перерисовывает, перерисовывает... :)
Вот этот фрагмент
for(i = loopbegin; i >= 0; i--) {
B0[i]=0;
B1[i]=0;
B3[i]=0;
B4[i]=0;
Up[i]=0;
Dn[i]=0;
Stop[i]=0;
Target[i]=0;
}
for(i = loopbegin; i >= 0; i--) {
собственно и перерисовывает. Выручает то, что берется большая история (5000 баров). А в случае прикрепления этого индикатора к советнику (что сейчас пытаюсь сделать) длинная история тянет время. Оптимально, по-моему, для советника применять историю равную всего в несколько раз больше Nlin. Перерисовка явно видна начиная от 2*Nlin. Исправить можно так: когда формируется сигнал Up[] или Dn[] начинаем считать следующие бары и подставляем это число в цикле for вместо переменной loopbegin. Тогда обнуляться будут только последующие бары и попытка построить линейную регресию будет предприниматься на последующих (после последнего решения) барах.
Хороший индикатор прорывов на истории. Если не перерисовывал цены не было =)
В первом комментарии версия 1,1.
Не перерисовывается, кстати :)
Перерисовывает, перерисовывает... :)
Вот этот фрагмент
for(i = loopbegin; i >= 0; i--) {
B0[i]=0;
B1[i]=0;
B3[i]=0;
B4[i]=0;
Up[i]=0;
Dn[i]=0;
Stop[i]=0;
Target[i]=0;
}
for(i = loopbegin; i >= 0; i--) {
собственно и перерисовывает. Выручает то, что берется большая история (5000 баров). А в случае прикрепления этого индикатора к советнику (что сейчас пытаюсь сделать) длинная история тянет время. Оптимально, по-моему, для советника применять историю равную всего в несколько раз больше Nlin. Перерисовка явно видна начиная от 2*Nlin. Исправить можно так: когда формируется сигнал Up[] или Dn[] начинаем считать следующие бары и подставляем это число в цикле for вместо переменной loopbegin. Тогда обнуляться будут только последующие бары и попытка построить линейную регресию будет предприниматься на последующих (после последнего решения) барах.
Ну и что?. Пока не будет скрина с перерисовкой - не поверю ;) Для расчёта используются только ПРОШЛЫЕ бары.
Я сам на минутках сидел и проверял - никакой перерисовки нет. Если канал возник, он там и будет всегда.
В советник, кстати, этот индикатор вставлять нельзя, там надо использовать совершенно другую логику.
Ну и что?. Пока не будет скрина с перерисовкой - не поверю ;) Для расчёта используются только ПРОШЛЫЕ бары.
Я сам на минутках сидел и проверял - никакой перерисовки нет. Если канал возник, он там и будет всегда.
В советник, кстати, этот индикатор вставлять нельзя, там надо использовать совершенно другую логику.
Поставьте на минутах Nlin=6, например, и Nbars=12 (например) и увидите. Лин.регр. будет скользить за графиком.
И почему нельзя вставлять в советника? У Вас возражения в связи с авторскими правами? (это простой интерес). А если другая логика - мож.поделитесь?
Ну и что?. Пока не будет скрина с перерисовкой - не поверю ;) Для расчёта используются только ПРОШЛЫЕ бары.
Я сам на минутках сидел и проверял - никакой перерисовки нет. Если канал возник, он там и будет всегда.
В советник, кстати, этот индикатор вставлять нельзя, там надо использовать совершенно другую логику.
Поставьте на минутах Nlin=6, например, и Nbars=12 (например) и увидите. Лин.регр. будет скользить за графиком.
И почему нельзя вставлять в советника? У Вас возражения в связи с авторскими правами? (это простой интерес). А если другая логика - мож.поделитесь?
Другая логика. Ну а вы сами виноваты, что поставили такое малое значение Nbars :-)
Я вообще сейчас пользуюсь другой версией индикатора где эта проблема решена
а делается это так:
1) extern datetime D0=D'01.01.2010';
2) Nbars = iBarsShift(NULL,0,D0);
3)???????
4)PROFIT!
Никакой перерисовки, поверьте ;)
Предлагаю советника к этому КРАСИВОМУ индикатору: http://forum.mql4.com/ru/30164/page3#279355 (см. прикрепленный файл на форуме под моим именем)
Отличный индикатор Dserg +10. Респект
Если уж говорить об утреннем флете, то предлагаю ограничить время выявления такого флета.
Вносим такие изменения в индикатор:
...
extern string StartTime = "19:00"; //Начало работыextern string FinishTime = "07:00"; //Конец работы
...
for(i = loopbegin; i >= 0; i--) {
//у нас уже есть канал, ждём, пока его пробьёт
if (isChannel) {
//double up0=a0*(i-chEnd)+b0+range0;
//double dn0=a0*(i-chEnd)+b0-range0;
double up0=a0*i+b0+range0;
double dn0=a0*i+b0-range0;
B3[i]=up0;
B4[i]=dn0;
if(StartTime!="00:00"
&& B3[i]>0
&& iTime(NULL,0,i)<StrToTime(TimeToStr(iTime(NULL,0,i), TIME_DATE)+" "+FinishTime))
continue;
//проверяем пробитие
//вверх
if (Open[i]>up0) {
Up[i]=up0;
Stop[i]=dn0;
Target[i]=up0+(up0-dn0)*(t0-1);
isChannel=false;
//continue;
}
//вниз
if (Open[i]<dn0) {
Dn[i]=dn0;
Stop[i]=up0;
Target[i]=dn0-(up0-dn0)*(t0-1);
isChannel=false;
//continue;
}
continue;
}
else
if(StartTime!="00:00"
&& iTime(NULL,0,i)<StrToTime(TimeToStr(iTime(NULL,0,i), TIME_DATE)+" "+StartTime)
&& iTime(NULL,0,i)>StrToTime(TimeToStr(iTime(NULL,0,i), TIME_DATE)+" "+FinishTime))
continue;...
здесь, если StartTime="00:00", то ограничение по времени снимается.
Получается вот так: (задано: Nlin=100, r0=220)
а какие настройки для 5-ти значных пар? и 4-х значных?