| / | Форум |
|
Hell
12.05.2006 17:52
Как сделать в эксперте что бы при использовании любого таймфрейма можно было бы получить мксимальную цену за текущий день? И случайно не подскажите, есть ли шаблон что бы формулку подставить и уже готов индикатор? Ну например есть такая простенькая формула.......мммм..... х = SUM (High[i] - Open[i])/ SUM(Close[i] - Low[i]) Формула не особа важна, там используються только цены закрытия/открытия и/или цены минимума/максимума за определённый период (i). Но я уже устал искать правильное решение куда её вставить что б всё адекватно показывалось :( Заранеее спасибо. И пжлст ответтье хоть на первый вопрос. |
|
Организуйте багтрекинг и техсаппорт для своей компании В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем. |
|
Itso
12.05.2006 17:58
Как сделать в эксперте что бы при использовании любого таймфрейма
можно было бы получить мксимальную цену за текущий день?
MaxPriceToday = iHigh(Symbol(), PERIOD_D1, 0); |
|
4ebur
12.05.2006 18:01
Если лень учить язык, то самый простой способ --> открыть какой-нибудь
индикатор,который рисует как надо,
но не то что надо, и заменить формулу на свою. И шаблон есть, и место для формулы нашлось :) |
|
Hell
12.05.2006 18:05
Спасибо! Если кто ответит и на 2-й вопрос, то ваще будет выше крыши :) |
|
Hell
12.05.2006 18:16
4ebur писал (а):
Если лень учить язык, то самый простой способ --> открыть какой-нибудь индикатор,который рисует как надо, но не то что надо, и заменить формулу на свою. И шаблон есть, и место для формулы нашлось :)
Но в том всё и беда, что я так уже делал ( открывал индикатор, пытался впихивать). Но все индикаторы замудрёные , даже самые простые. А мне хоцца суть понять в каком месте моя формула отображаеться. Вот и задался целью сделать индикатор как можно проще, что б понять что к чему. Потому и формула такая глупая..... что первое в голову пришло так сказать...... а всё одно что то не так :( |
|
Itso
12.05.2006 18:18
Если кто ответит и на 2-й вопрос, то ваще будет выше крыши :) 'Особенности написания Пользовательских Индикаторов' - читаеш, смотриш - все поймеш и сделаеш. А иначе так - быстренко
нельзя - иначе сделали бы. |
|
4ebur
12.05.2006 18:24
В цикл надо вставлять. |
33759 |
Rosh
12.05.2006 18:37
Hell писал (а): Конкретно для этого случаяНу например есть такая простенькая формула.......мммм..... х = SUM (High[i] - Open[i])/ SUM(Close[i] - Low[i]) x=(Средняя(High,period)-Средняя(open,period))/(Средняя(Close,period)-Средняя(Low, period)) |
|
Hell
16.05.2006 12:27
Вот к чему привели меня мои попытки. Вот такой код: #property copyright "Hell" #property link "" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Blue #property indicator_minimum -5 #property indicator_maximum 5 //---- input parameters extern int H_period=10; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); //---- return(0); } int start() { int counted_bars=IndicatorCounted(); double ind; int i, up_sh, dn_sh, up = 1, dn = 1; //---- //========================================================================== for (i=0; i < H_period; i++) { up_sh = (High[i] - Open[i])/Point; dn_sh = (Close[i] - Low[i])/Point; up = up + up_sh; dn = dn + dn_sh; //-------------------------------------------------------------------------- if (up > dn) ind = up/dn - 1; if (dn < up) ind = (dn/up - 1)*(-1); if (up == dn) ind =0; //========================================================================== ExtMapBuffer1[i] = ind; } //---- return(0); } //+------------------------------------------------------------------+ Он работает, однако это совсем не то что я хотел :( Во первых график отображаеться только на последних 10 барах. Это я думаю связано с переменной "H_period". Но как сделать что бы он отображался на всей истории? А главное весь график перересовываеться при каждом новом тике.
Это меня вообще ставит в тупик :(. Вот иллистрации . Вот собственно из-за этого я поднял тему. Так как совершенно не пойму как работает код идикаторов :( И ещё вопрос уже по эксперту. Есть такая строка tik_buy = OrderSend (Symbol(), OP_BUYSTOP, limitbuy*Point, 3, 0, 0, "op", 12345, D'14:00:00' , Green);
'14:00:00' - date literal string is incomplete Что ему не так? Помогите плиз. Заранее спасибо! |
|
ustim
16.05.2006 14:25
Hell писал (а): Как сделать в эксперте что бы при использовании любого таймфрейма можно было бы получить мксимальную цену за текущий день? И случайно не подскажите, есть ли шаблон что бы формулку подставить и уже готов индикатор? Ну например есть такая простенькая формула.......мммм..... х = SUM (High[i] - Open[i])/ SUM(Close[i] - Low[i]) Формула не особа важна, там используються только цены закрытия/открытия и/или цены минимума/максимума за определённый период (i). Но я уже устал искать правильное решение куда её вставить что б всё адекватно показывалось :( Заранеее спасибо. И пжлст ответтье хоть на первый вопрос. чтобы полкчить текущий хай за день достаточно ArrayCopySeries( double&array[], int series_index, string symbol=NULL, int timeframe=0) (остальное в хелпе МТ) и потом array[0]... |
|
komposter
16.05.2006 15:31
Однако при компиляции выдаеться ошибка:
это предупреждение, что дата указана не полностью (день, месяц,
год, часы, минуты, секунды). Строка '14:00:00', по идее, при компиляции
заменится на 'дата компиляции 14:00:00''14:00:00' - date literal string is incomplete Что ему не так? НО! Как можно использовать время истечения, не указывая дату? Надо сделать привязку к CurTime()
|
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий