Lua подсчет числа элементов таблицы с ключами

3 ноября, 2014

При программировании роботов на QLUA для терминала QUIK

может возникнуть необходимость подсчета числа элементов таблицы с ключами.

Это операцию можно выполнить с помощью следующей функции

local function ckey(table1) local n=0;
              for k, v in pairs(table1) do n=n+1; end
           return n;
end — программа подсчета числа элементов таблицы

Меня заинтересовал вопрос о возможности ускорить данную процедуру.

В результате я написал функцию на API C.

Для таблицы в 56 элементов получилось ускорение в 20 раз.

функцию и тест можно взять здесь: nklib_t(v2)

 

Робот Федя -октябрь 3 недели

17 октября, 2014

nk_2014_10_001

 

 

 

 

 

 

 

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

All trades Long trades Short trades
Initial capital 100000.00 100000.00 100000.00
Ending capital 3387446.67 1798731.06 1688715.61
Net Profit 3287446.67 1698731.06 1588715.61
Net Profit % 3287.45 % 1698.73 % 1588.72 %
Exposure % 8.42 % 4.05 % 4.37 %
Net Risk Adjusted Return % 39042.42 % 41893.39 % 36394.18 %
Annual Return % 68.19 % 53.19 % 51.77 %
Risk Adjusted Return % 809.84 % 1311.71 % 1185.90 %
Total transaction costs 457098.71 229182.01 227916.70

All trades 6533 3266 (49.99 %) 3267 (50.01 %)
 Avg. Profit/Loss 503.21 520.13 486.29
 Avg. Profit/Loss % 0.50 % 0.52 % 0.49 %
 Avg. Bars Held 26.84 26.37 27.31

Winners 3689 (56.47 %) 1829 (28.00 %) 1860 (28.47 %)
 Total Profit 4767700.57 2476198.91 2291501.66
 Avg. Profit 1292.41 1353.85 1231.99
 Avg. Profit % 1.29 % 1.35 % 1.23 %
 Avg. Bars Held 31.30 30.53 32.05
 Max. Consecutive 33 48 30
 Largest win 59895.82 59895.82 26835.79
 # bars in largest win 9 9 20

Losers 2844 (43.53 %) 1437 (22.00 %) 1407 (21.54 %)
 Total Loss -1480253.90 -777467.85 -702786.05
 Avg. Loss -520.48 -541.04 -499.49
 Avg. Loss % -0.52 % -0.54 % -0.50 %
 Avg. Bars Held 21.06 21.07 21.05
 Max. Consecutive 13 10 10
 Largest loss -3966.93 -3685.38 -3966.93
 # bars in largest loss 27 25 27

Max. trade drawdown -11720.42 -10682.69 -11720.42
Max. trade % drawdown -10.51 % -9.72 % -10.51 %
Max. system drawdown -11720.42 -10682.69 -11720.42
Max. system % drawdown -5.98 % -5.39 % -6.87 %
Recovery Factor 280.49 159.02 135.55
CAR/MaxDD 11.40 9.87 7.53
RAR/MaxDD 135.36 243.48 172.51
Profit Factor 3.22 3.18 3.26
Payoff Ratio 2.48 2.50 2.47
Standard Error 375231.19 201046.08 175791.82
Risk-Reward Ratio 0.94 0.95 0.93
Ulcer Index 0.43 0.48 0.53
Ulcer Performance Index 145.17 100.35 87.86
Sharpe Ratio of trades 7.26 6.98 7.68
K-Ratio 0.0045 0.0045 0.0044