Quant
2023-01-04
统计学
梯度(斜率)
import numpy as np
np_test1 = np.array([0,0,0,0,0,0])
print("梯度1",np_test1,np.gradient(np_test1))
np_test2 = np.array([0,1,2,3,4,5])
print("梯度2",np_test2,np.gradient(np_test2))
np_test3 = np.array([0,1,2,1,0,-1])
print("梯度3",np_test3,np.gradient(np_test3))
np_test4 = np.array([-1,-1,-1,-1,-1,-1])
print("梯度4",np_test4,np.gradient(np_test4))
np_test5 = np.array([0,-1,-3,-6,-10,-15,-18,-20,-21,-21,-20,-18])
print("梯度5",np_test5,np.gradient(np_test5))
np_test6 = np.array([0,-1,-3,-6,-10,-15,-18,-20,-21,-21,-20,-18,-20])
print("梯度6",np_test6,np.gradient(np_test6))
np_test7 = np.array([0,-1,-3,-6,-10,-15,-18,-20,-21,-21,-20,-18,-18])
print("梯度7",np_test7,np.gradient(np_test7))
np_test8 = np.array([0,-1,-3,-6,-10,-15,-18,-20,-21,-21,-20,-18,-16])
print("梯度8",np_test8,np.gradient(np_test8))
OUT:
梯度1 [0 0 0 0 0 0] [0. 0. 0. 0. 0. 0.]
梯度2 [0 1 2 3 4 5] [1. 1. 1. 1. 1. 1.]
梯度3 [ 0 1 2 1 0 -1] [ 1. 1. 0. -1. -1. -1.]
梯度4 [-1 -1 -1 -1 -1 -1] [0. 0. 0. 0. 0. 0.]
梯度5 [ 0 -1 -3 -6 -10 -15 -18 -20 -21 -21 -20 -18] [-1. -1.5 -2.5 -3.5 -4.5 -4. -2.5 -1.5 -0.5 0.5 1.5 2. ]
梯度6 [ 0 -1 -3 -6 -10 -15 -18 -20 -21 -21 -20 -18 -20] [-1. -1.5 -2.5 -3.5 -4.5 -4. -2.5 -1.5 -0.5 0.5 1.5 0. -2. ]
梯度7 [ 0 -1 -3 -6 -10 -15 -18 -20 -21 -21 -20 -18 -18] [-1. -1.5 -2.5 -3.5 -4.5 -4. -2.5 -1.5 -0.5 0.5 1.5 1. 0. ]
梯度8 [ 0 -1 -3 -6 -10 -15 -18 -20 -21 -21 -20 -18 -16] [-1. -1.5 -2.5 -3.5 -4.5 -4. -2.5 -1.5 -0.5 0.5 1.5 2. 2. ]
标准差
import numpy as np
np_test1 = np.array([0,0,0,0,0])
print("标准差1",np_test1,np_test1.std())
np_test2 = np.array([0,1,0,0,0])
print("标准差2",np_test2,np_test2.std())
np_test3 = np.array([0,0,0,1,0])
print("标准差3",np_test3,np_test3.std())
np_test4 = np.array([0,0,1,0,0])
print("标准差4",np_test4,np_test4.std())
np_test5 = np.array([1,1,1,1,1])
print("标准差5",np_test5,np_test5.std())
np_test6 = np.array([1,1,0,0,0])
print("标准差6",np_test6,np_test6.std())
np_test7 = np.array([1,1,0,0,0,0])
print("标准差7",np_test7,np_test7.std())
np_test8 = np.array([1,1,1,0,0,0])
print("标准差8",np_test8,np_test8.std())
np_test9 = np.array([0.5,0.5,0.5,0,0,0])
print("标准差9",np_test9,np_test9.std())
np_test10 = np.array([0.25,0.25,0.25,0,0,0])
print("标准差10",np_test10,np_test10.std())
np_test11 = np.array([0.75,0.75,0.75,0,0,0])
print("标准差11",np_test11,np_test11.std())
np_test12 = np.array([0.75,0.75,0.75,1,1,1])
print("标准差12",np_test12,np_test12.std())
OUT:
标准差1 [0 0 0 0 0] 0.0
标准差2 [0 1 0 0 0] 0.4000000000000001
标准差3 [0 0 0 1 0] 0.4
标准差4 [0 0 1 0 0] 0.4000000000000001
标准差5 [1 1 1 1 1] 0.0
标准差6 [1 1 0 0 0] 0.48989794855663565
标准差7 [1 1 0 0 0 0] 0.47140452079103173
标准差8 [1 1 1 0 0 0] 0.5
标准差9 [0.5 0.5 0.5 0. 0. 0. ] 0.25
标准差10 [0.25 0.25 0.25 0. 0. 0. ] 0.125
标准差11 [0.75 0.75 0.75 0. 0. 0. ] 0.375
标准差12 [0.75 0.75 0.75 1. 1. 1. ] 0.125
Baseline backtest performance
test
Environment configuration [M4]
model name : AMD Ryzen 7 6800H with Radeon Graphics [16 core]
MemTotal: 28610872 kB
MemFree: 26584252 kB
SwapTotal: 7340032 kB
SwapFree: 7340032 kB
system: Ubuntu 20.04.5 LTS
kernel: Linux 5.15.79.1-microsoft-standard-WSL2 x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.6.47
pandas 1.5.2
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] 抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
real 1m20.179s
user 1m18.912s
sys 0m1.421s
Environment configuration [M4]
model name : AMD Ryzen 7 6800H with Radeon Graphics [16 core]
MemTotal: 58455856 kB
MemFree: 50016704 kB
SwapTotal: 8388608 kB
SwapFree: 8388608 kB
system: NT
kernel: MINGW64_NT-10.0-22621 3.3.6-341.x86_64 unknown
Python 3.9.13
backtrader 1.9.76.123
ccxt 2.6.39
pandas 1.4.4
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] 抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
real 1m43.855s
user 0m0.015s
sys 0m0.000s
Environment configuration [m3]
model name : Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz [40 core]
MemTotal: 131970928 kB
MemFree: 124979156 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
system: Ubuntu 20.04.3 LTS
kernel: Linux 5.15.0-46-generic x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.5.46
pandas 1.4.1
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] [主数据库:mongodb://192.168.1.20]
抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
real 5m10.304s
user 5m1.097s
sys 0m5.967s
Environment configuration [E14]
model name : AMD Ryzen 5 4500U with Radeon Graphics [6 core]
MemTotal: 12451164 kB
MemFree: 11482124 kB
SwapTotal: 4194304 kB
SwapFree: 4194304 kB
system: Ubuntu 20.04.1 LTS
kernel: Linux 5.4.72-microsoft-standard-WSL2 x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.4.27
pandas 1.5.2
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] 抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
real 1m59.407s
user 1m57.261s
sys 0m1.480s
Environment configuration [M1]
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz [4 core]
MemTotal: 33452176 kB
MemFree: 18736776 kB
SwapTotal: 12582912 kB
SwapFree: 12463216 kB
system: NT
kernel: MINGW64_NT-10.0-19044 3.1.4-340.x86_64 unknown
Python 3.7.6
backtrader 1.9.76.123
ccxt 2.2.17
pandas 1.3.5
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] 抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
real 4m22.050s
user 0m0.015s
sys 0m0.016s
Environment configuration [M1]
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz [4 core]
MemTotal: 26198024 kB
MemFree: 23249568 kB
SwapTotal: 7340032 kB
SwapFree: 7340032 kB
system: Ubuntu 20.04.1 LTS
kernel: Linux 4.19.128-microsoft-standard x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.5.30
pandas 1.4.4
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] 抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
real 2m27.018s
user 2m23.037s
sys 0m1.120s
Environment configuration [BRIC]
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz [4 core]
MemTotal: 13008184 kB
MemFree: 12005880 kB
SwapTotal: 4194304 kB
SwapFree: 4194304 kB
system: Ubuntu 20.04.4 LTS
kernel: Linux 5.10.16.3-microsoft-standard-WSL2 x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.5.30
pandas 1.4.4
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] [主数据库:mongodb://192.168.3.32]
抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
胜率结果: {'all_num': 0, 'win_num': 0, 'los_num': 0, 'win_p': 0, 'los_p': 0}
real 3m40.160s
user 3m37.635s
sys 0m3.841s
Environment configuration [M2]
model name : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz [16 core]
MemTotal: 13022068 kB
MemFree: 10488912 kB
SwapTotal: 4194304 kB
SwapFree: 4194304 kB
system: Ubuntu 20.04.3 LTS
kernel: Linux 5.10.16.3-microsoft-standard-WSL2 x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.6.47
pandas 1.5.3
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 测试信号_test 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] [主数据库:mongodb://192.168.1.20]
抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 14_200 [测试信号_test] 最终 1000000.00
real 4m17.342s
user 4m9.496s
sys 0m2.987s
m16_1
Environment configuration [M1]
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz [4 core]
MemTotal: 26198024 kB
MemFree: 21258576 kB
SwapTotal: 7340032 kB
SwapFree: 7340032 kB
kernel: Linux 4.19.128-microsoft-standard x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 1.93.108
pandas 1.4.4
pandas-ta 0.3.14b0
pymongo 4.2.0
[Init] 策略: 微震荡_m16_1 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] 抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 10_600_9_65_9_29_5_3_66_6_20_25_16_4_30_1_1_27_27 [微震荡_m16_1] 最终 983616.87
胜率结果: {'all_num': 1338, 'win_num': 677, 'los_num': 661, 'win_p': 0.51, 'los_p': 0.49}
real 123m18.071s
user 122m40.520s
sys 0m39.400s
Environment configuration [BRIC]
model name : Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz [4 core]
MemTotal: 13008184 kB
MemFree: 12119408 kB
SwapTotal: 4194304 kB
SwapFree: 4194304 kB
kernel: Linux 5.10.16.3-microsoft-standard-WSL2 x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.2.17
pandas 1.4.4
pandas-ta 0.3.14b0
pymongo 4.2.0
[Init] 策略: 微震荡_m16_1 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
[Init] [主数据库:mongodb://192.168.3.32]
抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 10_600_9_65_9_29_5_3_66_6_20_25_16_4_30_1_1_27_27 [微震荡_m16_1] 最终 983616.87
胜率结果: {'all_num': 1338, 'win_num': 677, 'los_num': 661, 'win_p': 0.51, 'los_p': 0.49}
real 109m52.703s
user 109m23.917s
sys 0m28.641s
Environment configuration [M2]
model name : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz [16 core]
MemTotal: 13022068 kB
MemFree: 12341284 kB
SwapTotal: 4194304 kB
SwapFree: 4194304 kB
kernel: Linux 5.10.16.3-microsoft-standard-WSL2 x86_64
Python 3.8.10
backtrader 1.9.76.123
ccxt 2.2.5
pandas 1.4.2
pandas-ta 0.3.14b0
pymongo 4.3.3
[Init] 策略: 微震荡_m16_1 币种: BTC/USDT:USDT
[Init] 初始投资: --money 1000000.00
[Init] 自动切换到1%下注模式!
[Init] 下注方式: --sizer=1 --maxsizer=1 %
[Init] 设置佣金: --commission 0.001
抓取范围: --fromdate --todate
2020-01-01 00:00 open:7199.9 high:7199.9 low:7189.4 close:7198.2 volume:48238.0
2023-01-01 00:00 open:16591.6 high:16593.8 low:16591.6 close:16593.8 volume:2349.0
总数据量: 1578241 时间跨度: 1096.00天
-pd 10_600_9_65_9_29_5_3_66_6_20_25_16_4_30_1_1_27_27 [微震荡_m16_1] 最终 983616.87
胜率结果: {'all_num': 1338, 'win_num': 677, 'los_num': 661, 'win_p': 0.51, 'los_p': 0.49}
real 233m6.286s
user 224m16.812s
sys 0m27.302s