Таблица всех сделок. Доступ через MQL5 - страница 2 123456789...11 Новый комментарий Vasiliy Sokolov 2016.08.25 11:15 #11 prostotrader: Нашёл ошибку и оптимизировал работу.Хороший пример, хотя до оптимальной работы еще очень далеко. Пока главных тормоза три:1. CopyTiks каждый OnBookEvent копирует все тики начиная с момента запуска: int copied= CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,start_time,0);На самом деле это можно оптимизировать, если сделать динамические отсечки.2. Полный перебор всех полученных тиков в OnBookEventfor(int i=1; i<copied; i++) { if(( ticks[i].flags &TICK_FLAG_BUY)==TICK_FLAG_BUY) { buy_deals++; } else if(( ticks[i].flags &TICK_FLAG_SELL)==TICK_FLAG_SELL) { sell_deals++; } }Это тоже можно пофиксить при желании. 3. Полный перебор всех баров в OnCalculation:for(int i=rates_total-1; i>0; i--) { SellBuffer[i]= SellBuffer[i-1]; BuyBuffer[i] = BuyBuffer[i-1]; } prostotrader 2016.08.25 11:15 #12 По просьбе форумчан, доработал индикатор Файлы: DealsLent.mq5 9 kb prostotrader 2016.08.25 11:23 #13 Vasiliy Sokolov: Хороший пример, хотя до оптимальной работы еще очень далеко. Пока главных тормоза два:1. CopyTiks каждый OnBookEvent копирует все тики начиная с момента запуска: На самом деле это можно оптимизировать, если сделать динамические отсечки.2. Полный перебор всех полученных тиков в OnBookEventЭто тоже можно пофиксить при желании. 3. Полный перебор всех баров в OnCalculation:Спасибо, но не везде Вы правы.1. Не все тики (посмотрите внимательно)2. А как нужно?3. Легко сделать Щас подправим... prostotrader 2016.08.25 11:30 #14 Вот, подправил Файлы: DealsLent.mq5 9 kb Vasiliy Sokolov 2016.08.25 11:33 #15 prostotrader: Спасибо, но не везде Вы правы.1. Не все тики (посмотрите внимательно)2. Легко сделать3. Тожке дегко сделать Щас подправим... Да, действительно не все тики. Насчет третьего пункта не уверен что легко будет сделать. Т.к. индикатор тиковый и поэтому он действительно требует серьезной перерисовки. Но в целом все гуд. Спасибо за пример. Любой вопрос новичка, чтоб [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой Индикатор устанавливается в Советники, Vladimir Karputov 2016.08.25 11:36 #16 prostotrader: Вот, подправилСпасибо. prostotrader 2016.08.25 11:57 #17 Vasiliy Sokolov: Да, действительно не все тики. Насчет третьего пункта не уверен что легко будет сделать. Т.к. индикатор тиковый и поэтому он действительно требует серьезной перерисовки. Но в целом все гуд. Спасибо за пример. Действительно, индикатор тиковый, поэтому важны только текущие данные (последние).Если пользователь хочет забирать из буферов более длительную историю, ток это очень лего сделать.Сек... prostotrader 2016.08.25 12:01 #18 Вот, пользователь сам может выбрать размер интересующих его данных.Если ActSize = 0 - то вся доступная история Файлы: DealsLent.mq5 9 kb prostotrader 2016.08.25 12:22 #19 Последний штрих.. Файлы: DealsLent.mq5 10 kb prostotrader 2016.08.25 13:37 #20 Может кто знает в чём ошибка?Индикатор работает правильно, но отображается больше баров,чем сделано в настройке. 123456789...11 Новый комментарий
Нашёл ошибку и оптимизировал работу.
Хороший пример, хотя до оптимальной работы еще очень далеко. Пока главных тормоза три:
1. CopyTiks каждый OnBookEvent копирует все тики начиная с момента запуска:
На самом деле это можно оптимизировать, если сделать динамические отсечки.
2. Полный перебор всех полученных тиков в OnBookEvent
Это тоже можно пофиксить при желании.
3. Полный перебор всех баров в OnCalculation:
Хороший пример, хотя до оптимальной работы еще очень далеко. Пока главных тормоза два:
1. CopyTiks каждый OnBookEvent копирует все тики начиная с момента запуска:
На самом деле это можно оптимизировать, если сделать динамические отсечки.
2. Полный перебор всех полученных тиков в OnBookEvent
Это тоже можно пофиксить при желании.
3. Полный перебор всех баров в OnCalculation:
Спасибо, но не везде Вы правы.
1. Не все тики (посмотрите внимательно)
2. А как нужно?
3. Легко сделать
Щас подправим...
Спасибо, но не везде Вы правы.
1. Не все тики (посмотрите внимательно)
2. Легко сделать
3. Тожке дегко сделать
Щас подправим...
Да, действительно не все тики.
Насчет третьего пункта не уверен что легко будет сделать. Т.к. индикатор тиковый и поэтому он действительно требует серьезной перерисовки.
Но в целом все гуд. Спасибо за пример.
Вот, подправил
Да, действительно не все тики.
Насчет третьего пункта не уверен что легко будет сделать. Т.к. индикатор тиковый и поэтому он действительно требует серьезной перерисовки.
Но в целом все гуд. Спасибо за пример.
Действительно, индикатор тиковый, поэтому важны только текущие данные (последние).
Если пользователь хочет забирать из буферов более длительную историю,
ток это очень лего сделать.
Сек...
Вот, пользователь сам может выбрать размер интересующих его данных.
Если ActSize = 0 - то вся доступная история
Может кто знает в чём ошибка?
Индикатор работает правильно, но отображается больше баров,
чем сделано в настройке.