Судя по архивам, вопрос уже поднимался года 2 с лишним назад, но своего решения так и не нашел. Может все-таки имеет смысл отрисовывать фрактал после того, как 5 баров полностью сформировались, т.е. без учета текущего бара (имею в виду что не считаем фракталом комбинацию, в которой пятый бар-текущий, ждем следующего)?
- [АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3.
- Код платформы многовалютного многотаймфреймового советника
- Господа разработчики вопрос по фракталам ?
Хотелось бы все-таки услышать мнение разработчиков
возьмите пользовательский индикатор фракталов и измените его по своему усмотрению. только не забудьте переименовать.
возьмите пользовательский индикатор фракталов и измените его по своему усмотрению. только не забудьте переименовать.
Уважаемый Слава не поджскажите где можно взять текст индикатора Фрактал для МТ4?
С уважением...
если устроит wlxFractals
//+------------------------------------------------------------------+ //| wlxFractals.mq4 | //| Copyright © 2004, by konKop, GOODMAN, Mstera, af + wellx | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2004, by wellx" #property link "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 DeepSkyBlue #property indicator_color2 Red //---- input parameters extern int Equals=7; extern int nLeftUp=3; extern int nRightUp=3; extern int nLeftDown=3; extern int nRightDown=3; //---- buffers double FractalsUp[]; double FractalsDown[]; int pos=0, cntup=0, cntdown=0, cnt=0; int r=0,l=0,e=0; int fup=0,fdown=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,217); SetIndexBuffer(0,FractalsUp); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,218); SetIndexBuffer(1,FractalsDown); SetIndexEmptyValue(1,0.0); cntup=nLeftUp+nRightUp+Equals+1; cntdown=nLeftDown+Equals+1; if (cntup>=cntdown) cnt=cntup; if (cntup<cntdown) cnt=cntdown; //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i=0, j=0; int cbars=IndicatorCounted(); if (cbars<0) return(-1); if (cbars>0) cbars--; pos=0; if (cbars > (Bars-cnt-1)) pos=(Bars-cnt-1); else pos=cbars+nRightUp; while (pos>=nRightUp) { FractalsUp[pos] =NULL; FractalsDown[pos]=NULL; //фРАКТАЛ ВВЕРХ r=nRightUp; //проверяем правую сторону фрактала for (i=1;i<=r;i++) { if (High[pos]<=High[pos-i]) break; } //если справа все ОК то i должно быть равно r+1 if (i==r+1) //FractalsUp[pos]=High[pos]; { l=nLeftUp; //проверяем левую сторону фрактала e=Equals; for (j=1;j<=l+Equals;j++) { if (High[pos] < High[pos+j]) break; if (High[pos] > High[pos+j]) l--; if (High[pos] == High[pos+j])e--; if (l==0) { FractalsUp[pos]=High[pos]; break; } if (e<0) break; } } //ФРАКТАЛ ВНИЗ r=nRightDown; //проверяем правую сторону фрактала for (i=1;i<=r;i++) { if (Low[pos]>=Low[pos-i]) break; } if (i==r+1) //FractalsUp[pos]=High[pos]; { l=nLeftDown; //проверяем левую сторону фрактала e=Equals; for (j=1;j<=l+Equals;j++) { if (Low[pos] > Low[pos+j]) break; if (Low[pos] < Low[pos+j]) l--; if (Low[pos] == Low[pos+j])e--; if (l==0) { FractalsDown[pos]=Low[pos]; break; } if (e<0) break; } } pos--; } //---- return(0); } //+------------------------------------------------------------------+
Большое спасибо уважаемый Profi_R!
Хочу заранее извиниться за наглость, но может быть Вы можете подсказать где взять такой индикатор , который распознает правильные фракталы. То есть середина самая высокая, а склоны убывающие.
Пробовал переделать из того что Вы выложили, но не очень получается на момент.
С уважением...
Хочу заранее извиниться за наглость, но может быть Вы можете подсказать где взять такой индикатор , который распознает правильные фракталы. То есть середина самая высокая, а склоны убывающие.
Пробовал переделать из того что Вы выложили, но не очень получается на момент.
С уважением...
Большое спасибо уважаемый Profi_R!
Хочу заранее извиниться за наглость, но может быть Вы можете подсказать где взять такой индикатор , который распознает правильные фракталы. То есть середина самая высокая, а склоны убывающие.
Пробовал переделать из того что Вы выложили, но не очень получается на момент.
С уважением...
Хочу заранее извиниться за наглость, но может быть Вы можете подсказать где взять такой индикатор , который распознает правильные фракталы. То есть середина самая высокая, а склоны убывающие.
Пробовал переделать из того что Вы выложили, но не очень получается на момент.
С уважением...
Ну я бы поспорил насчет слова правильные, кроме того вы можете выровнять число баров подсчета и кол-во баров слева/справа. А алее там просто надо поставить доп.проверку на то что каждый предыд./послед. бар выше / ниже предыдущего.
попробуй посмотри rvmFractalLevel на пауке в ветке МТ я обычно снабжаю код подробными комментами может поможет, с разбором кода (кстати у меня внутренние бары не учитываются)
2wellx
ему скорее всего трудно понять где нужно вставлять доп. условие, если не трудно подскажи пожалуйста, что-то мне лень вникать
2wellx
ему скорее всего трудно понять где нужно вставлять доп. условие, если не трудно подскажи пожалуйста, что-то мне лень вникать
попробуй посмотри rvmFractalLevel на пауке в ветке МТ я обычно снабжаю код подробными комментами может поможет, с разбором кода (кстати у меня внутренние бары не учитываются)
2wellx
ему скорее всего трудно понять где нужно вставлять доп. условие, если не трудно подскажи пожалуйста, что-то мне лень вникать
2wellx
ему скорее всего трудно понять где нужно вставлять доп. условие, если не трудно подскажи пожалуйста, что-то мне лень вникать
Вот здесь
//фРАКТАЛ ВВЕРХ
r=nRightUp; //проверяем правую сторону фрактала
for (i=1;i<=r;i++)
{
if (High[pos]<=High[pos-i]) break;
}
убрать знак равно, а здесь
if (High[pos] < High[pos+j]) break;
if (High[pos] > High[pos+j]) l--;
if (High[pos] == High[pos+j])e--;
if (l==0)
убрать строку с равно. вроде все.
2wellx
Спасибо (страждующий походу уже утолил жажду)
Спасибо (страждующий походу уже утолил жажду)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь