Проект «умные вещи» (2)

6 марта, 2015
Добрый день, Всем!
провел некоторые эксперименты по оценке быстродействия.
—————————————
Исходные данные:
модуль этот http://nodemcu.com/index_cn.html
NodeMCU_DEVKIT_V0.9
———————————————————————————————
Исследуем работу с DS18B20
——————————
1) сначала сделал скрипт на LUA из примера в документации
так как в существующей библиотеке работы c 1-wire не используются прерывания, то процессор фактически занят 800 ms на одно измерение при 12 битовой точности.
Таким образом, если нам необходимо получать одно измерение в секунду то максимальное быстродействие составит 1 измерение в секунду при 80% загрузки процессора.
————————
2) подключил 2 датчика для проверки идентичности преобразования. в результате систематическая ошибка в пределах 1-2 бит т е 0.0625-0.125 гр С
——————————
3) после этого написал драйвер с использованием прерываний.
В результате время загрузки процессора составило 40 ms вместо 800 ms по примеру из пакета. Таким образом загрузка процессора уменьшилась в 20 раз.
При скорости преобразования 1 измерение в секунду (датчик быстрее с такой точностью не работает) загрузка процессора составляет 4%.
————————————————
Загрузку процессора можно еще уменьшить примерно в 2 раза для двух датчиков или в 4 — для одного. Это можно обеспечить , если читать из DS18B20 лишь два байта температуры и не проверять контрольную сумму.
В этом случае чтение показаний двух датчиков составляет 22 ms и 12 ms, если датчик один.
При этом запуск измерения в двух датчиках  выполняется одновременно.
———————————————-
Таким образом, получили возможность одновременно измерять температуру в нескольких точках объекта со скоростью 1 измерение в секунду.
Загрузка процессора составляет примерно 1%.
Драйвер на LUA.
—————————
Кроме того, получились следующие времена:
tmr.now();  —23 мкс
string.char(ow.read(pin));   —1836 мкс
ow.crc8(string.sub(data,1,8))  —115 мкс
ow.reset(pin);  ow.select(pin, adT[i]);  ow.write(pin,rom,1);   — 6800 мкс
————————————

Робот Вова. Февраль end

27 февраля, 2015

Закончился февраль.

Для любознательных выкладываю картинку и таблицу результатов.

vova_2015_2_003

 

 

 

 

 

 

—————————————————————————————————

All trades Long trades Short trades
Initial capital 100000.00 100000.00 100000.00
Ending capital 3502163.15 1882440.83 1719722.32
Net Profit 3402163.15 1782440.83 1619722.32
Net Profit % 3402.16 % 1782.44 % 1619.72 %
Exposure % 10.30 % 4.56 % 5.74 %
Net Risk Adjusted Return % 33029.57 % 39061.71 % 28231.86 %
Annual Return % 59.53 % 47.04 % 45.30 %
Risk Adjusted Return % 577.92 % 1030.79 % 789.59 %
Total transaction costs 180492.77 90680.89 89811.88

All trades 3611 1805 (49.99 %) 1806 (50.01 %)
 Avg. Profit/Loss 942.17 987.50 896.86
 Avg. Profit/Loss % 0.94 % 0.99 % 0.90 %
 Avg. Bars Held 53.14 50.72 55.57

Winners 2118 (58.65 %) 1035 (28.66 %) 1083 (29.99 %)
 Total Profit 4343886.14 2231007.82 2112878.32
 Avg. Profit 2050.94 2155.56 1950.95
 Avg. Profit % 2.05 % 2.16 % 1.95 %
 Avg. Bars Held 64.47 64.96 63.99
 Max. Consecutive 63 31 53
 Largest win 78280.22 78280.22 37486.42
 # bars in largest win 303 303 162

Losers 1493 (41.35 %) 770 (21.32 %) 723 (20.02 %)
 Total Loss -941722.99 -448566.99 -493156.00
 Avg. Loss -630.76 -582.55 -682.10
 Avg. Loss % -0.63 % -0.58 % -0.68 %
 Avg. Bars Held 37.08 31.57 42.96
 Max. Consecutive 17 8 10
 Largest loss -2883.02 -2740.32 -2883.02
 # bars in largest loss 9 34 9

Max. trade drawdown -20985.48 -20985.48 -11598.26
Max. trade % drawdown -13.51 % -13.51 % -10.32 %
Max. system drawdown -22543.73 -23476.77 -11598.26
Max. system % drawdown -10.11 % -6.50 % -5.08 %
Recovery Factor 150.91 75.92 139.65
CAR/MaxDD 5.89 7.24 8.91
RAR/MaxDD 57.15 158.70 155.30
Profit Factor 4.61 4.97 4.28
Payoff Ratio 3.25 3.70 2.86
Standard Error 355781.57 193644.58 163802.65
Risk-Reward Ratio 1.05 1.04 1.06
Ulcer Index 0.67 0.70 0.56
Ulcer Performance Index 81.39 59.74 71.04
Sharpe Ratio of trades 6.12 5.81 6.69
K-Ratio 0.0053 0.0053 0.0054