| / | Форум |
|
m1rr0r
13.10.2006 10:39
Как сделать чтобы, например, фракталы написанные мною не улетали
вверх при увеличении. Чтобы были все время на фиксированном
расстоянии от High/Low (как это сделано во встроенном индикаторе
Фракталов)
Я делаю типа ...=High[i]+10*Point ![]() на картинке видно, как фракталы летают ( |
|
Увеличьте эффективность групповой работы Поставьте TeamWox и увеличьте эффективность групповой работы в вашей компании. TeamWox позволяет хранить всю рабочую информацию в одном месте: письма, документы, файлы, платежи и история сообщений в чате. Так решается проблема сохранности данных и удобной групповой работы с ними. |
|
Integer
13.10.2006 10:54
Вместо 10*Point воспользуйся значением индикатора ATR. Не идеально,
но все же лучше.
|
|
Simca
13.10.2006 14:04
Integer писал (а): Тогда они будут на каждом баре скакать в зависимости от ATR. :)Вместо 10*Point воспользуйся значением индикатора ATR. Не идеально, но все же лучше. |
|
Mak
13.10.2006 14:13
ATR можно считать по большому периоду.
|
|
Simca
13.10.2006 14:20
Mak писал (а): И как это будет сказываться на МАСШТАБЕ графика? Ведь суть-то
в том что при малом масштабе пипсы помельче выглядят (большой
диапазон, баров помещается), а при большом масштабе пипсы визуально
крупнее (мало баров влазит), соответственно и символы фракталов
либо ближе к барам, либо дальше и тут хоть в пипсах отступ хоть
в "ATR-ах" один фиг символы ближе/дальше прыгают. Как я понял
вопрос именно в этом был.ATR можно считать по большому периоду. |
|
KimIV
13.10.2006 17:01
//+------------------------------------------------------------------+ //| i-Signals_Enter.mq4 | //| Ким Игорь В. aka KimIV | //| http://www.kimiv.ru | //| | //| 15.12.2005 Translaned from MT3 by KimIV. | //+------------------------------------------------------------------+ #property copyright "Ким Игорь В. aka KimIV" #property link "http://www.kimiv.ru" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Orange #property indicator_color2 Red //------- Внешние параметры индикатора ------------------------------- extern int NumberOfBars = 1000; extern int HPeriod = 10; extern int LPeriod = 40; //------- Глобальные переменные индикатора --------------------------- int ArrowInterval; //------- Буферы индикатора ------------------------------------------ double buf0[]; double buf1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void init() { SetIndexBuffer(0, buf0); SetIndexStyle (0, DRAW_ARROW); SetIndexArrow (0, 241); SetIndexEmptyValue(0, EMPTY_VALUE); SetIndexBuffer(1, buf1); SetIndexStyle (1, DRAW_ARROW); SetIndexArrow (1, 242); SetIndexEmptyValue(1, EMPTY_VALUE); ArrowInterval=GetArrowInterval(); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ void start() { double ms[2]; int LoopBegin, sh; if (NumberOfBars==0) LoopBegin=Bars-41; else LoopBegin=NumberOfBars-41; LoopBegin=MathMin(Bars-41, LoopBegin); for (sh=1; sh<=LoopBegin; sh++) { ms[0]=EMPTY_VALUE; ms[1]=EMPTY_VALUE; GetSignals(sh, ms); buf0[sh]=ms[0]; buf1[sh]=ms[1]; } } //+------------------------------------------------------------------+ //| Формирует и возвращает ссигналы | //+------------------------------------------------------------------+ void GetSignals(int sh, double& ms[]) { double ema10=iMA(NULL, 0, HPeriod, 0, MODE_EMA, PRICE_CLOSE, sh); double ema20=iMA(NULL, 0, LPeriod, 0, MODE_EMA, PRICE_CLOSE, sh); double ema11=iMA(NULL, 0, HPeriod, 0, MODE_EMA, PRICE_CLOSE, sh-1); double ema21=iMA(NULL, 0, LPeriod, 0, MODE_EMA, PRICE_CLOSE, sh-1); if (ema10<ema20 && ema11>ema21) ms[0]=Low[sh]-ArrowInterval*Point; if (ema10>ema20 && ema11<ema21) ms[1]=High[sh]+ArrowInterval*Point; } //+------------------------------------------------------------------+ //| Возвращает интервал установки сигнальных указателей | //+------------------------------------------------------------------+ int GetArrowInterval() { int p=Period(); switch (p) { case 1: return(3); case 5: return(5); case 15: return(8); case 30: return(12); case 60: return(17); case 240: return(25); case 1440: return(50); case 10080: return(100); case 43200: return(200); } } //+------------------------------------------------------------------+ |
|
Integer
13.10.2006 19:02
Simca писал (а): Integer писал (а): Тогда они будут на каждом баре скакать в зависимости от ATR. :)Вместо 10*Point воспользуйся значением индикатора ATR. Не идеально, но все же лучше. Но смотрится это вполне прилично |
|
m1rr0r
13.10.2006 23:13
Спасибо за ответы ;)
|
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий