Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Просто в начале я бросил фразу, что несложно и самому написать такую функцию, вот сейчас оправдываюсь/объясняюсь, что имел в виду.
Напомню, там речь шла про поиск бара по времени не совпадающем с хранимым в массиве, например поиск часового бара в который попадает время 12:01
Мне кажется, что не нужно дергать разработчиков по таким вещам, которые уже можно сделать и самим.
Есть вещи, которые невозможно сделать средствами имеющимися в системе.
Вот на эту тему можно было бы подергать ...
Но даже это мне кажется сейчас лишнее.
Лучше всем сосредоточиться на поиске и вычищении багов - их еще много.
А каждая новая фича плодит новые баги.
На сайте в каталоге выложен индикатор - PriceChanel (рабочий вариант под редакцией Романа), тот что строит уровни на текущем таймфрейме с данными бОльшего таймфрейма. Там как раз возможность обратиться по времени сильно помогла бы, хотя на мой взгляд приведенный код очень оптимален, но создание дополнительных массивов сильно потребляет ресурсы, что приводит к тормозам. К примеру: на M30 мне нужно "видеть" границы построенные по таймфрейму=D1, получасовых данных у меня с августа 2004г. , а дневок с 1989 года, т.е. из массивов полезной инфой в данном случае является менее 6%, но мне приходится их держать для того чтобы перебором искать необходимые мне уровни. На моей тачке P4-2800 c 512Мб и WXP на борту, индикатор отрисовывался более 3 минут (и это в офлайне), а при перерасчетах на каждом тике, мне что вешаться :)
Не хотите продемонстрировать изворворотливость ума и показать на примере как реализовать? :)
На всякий пожарный ссылка на индюк http://www.metaquotes.ru/experts/33/PChannel_m%203.mq4
Не хочу :)
Если только в выходные.
С текстом пока не разбирался, просто запустил с параметрами по умолчанию (в онлайн).
У меня рисует за доли секунды на всех таймфреймах.
Наверное параметры нужно какие-то задать, чтобы задержки увидеть?
Попробовал задать W1 на получасовках, тоже все махом.
Закрыл МТ и запустил заново.
Терминал подвис секунд на 5-10, но у меня там еще куча своего висит на куче чартов.
-------------------
По тексту.
1. наверное часть вычислений можно делать не по новому тику, а по новому бару.
2. Если все же тормозит и история слишком длинная, можно наверное в
for(i=0,y=0;i<Bars;i++) { ..................... }сделать цикл покороче?
(может ерунду говорю - с текстолм пока не разбирался)
На сайте в каталоге выложен индикатор - PriceChanel (рабочий вариант под редакцией Романа), тот что строит уровни на текущем таймфрейме с данными бОльшего таймфрейма. Там как раз возможность обратиться по времени сильно помогла бы, хотя на мой взгляд приведенный код очень оптимален, но создание дополнительных массивов сильно потребляет ресурсы, что приводит к тормозам. К примеру: на M30 мне нужно "видеть" границы построенные по таймфрейму=D1, получасовых данных у меня с августа 2004г. , а дневок с 1989 года, т.е. из массивов полезной инфой в данном случае является менее 6%, но мне приходится их держать для того чтобы перебором искать необходимые мне уровни. На моей тачке P4-2800 c 512Мб и WXP на борту, индикатор отрисовывался более 3 минут (и это в офлайне), а при перерасчетах на каждом тике, мне что вешаться :)
Не хотите продемонстрировать изворворотливость ума и показать на примере как реализовать? :)
На всякий пожарный ссылка на индюк http://www.metaquotes.ru/experts/33/PChannel_m%203.mq4
Вот простой код
//+------------------------------------------------------------------+ //| Test.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| https://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "https://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern int PeriodMin=1440; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { datetime daytimes[]; int bigshift; int shift; int counted_bars=IndicatorCounted(); //---- TODO: add your code here ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PeriodMin); for (shift=Bars;shift>=0;shift--) { if(Time[shift]>=daytimes[0]) bigshift=0; else { bigshift = ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND); if(Period()<PERIOD_D1) bigshift++; } // bigshift=MathFloor(shift*Period()/PeriodMin); // ExtMapBuffer1[shift]=iCustom(NULL,PeriodMin,"GATO",22,300,120,50,6,0,bigshift); ExtMapBuffer1[shift]=iCustom(NULL,PeriodMin,"PChannel_m 3",10,0,bigshift); } //---- return(0); } //+------------------------------------------------------------------+Воткни сколько надо линий и обращайся к ним .
цикл там оптимальный справа налево, как только получасовки кончаются, так и дневки не трогаются, на дневках тоже справа на лево, а вот массивы созданные с дневок - затормаживают, попробовал руками уменьшил историю дневок - результат положительный, а как уменьшить массив в индикаторе??? история та нужна, да % полезного использования очень низкий (если взять пятиминутки, и четырехчасовки когда лимит базы исчерпан, то из полученного массива будет использоваться только 1/48 часть, т.е. около 2%)