繁体   English   中英

将列表值添加到新列表

[英]Add list values to a new list

我正在编写一个代码,该代码开始定义包含股票分析指标参数的四个列表:

import itertools
import numpy as np

RSI_parameter=[range(13,16,1),range(70,80,5),range(25,35,5)]
RSI_parameter_list=list(itertools.product(*RSI_parameter))

Bollinger_parameter=[range(20,35,1),np.arange(2,3,0.25)]
Bollinger_parameter_list=list(itertools.product(*Bollinger_parameter))

MACD_parameter=[range(11,14,1),range(25,27,1),range(9,11,1)]
MACD_parameter_list=list(itertools.product(*MACD_parameter))

EMA_parameter=[range(20,21,1),range(50,51,1),np.arange(0,0.01,0.002)]
EMA_parameter_list=list(itertools.product(*EMA_parameter))

接下来,我尝试创建一个包含所有指标组合的新列表:

indiclist=[]
for i in range(1,5):
    for item in itertools.combinations(('RSI','Bollinger','MACD','EMA'),i):
        indiclist.append(list(item))
print(indiclist)

最后(这是我遇到问题的部分),我尝试创建一个名为 param 的新列表,其中我将拥有特定指标组合的所有参数...使用以下代码:

param=[]
par=[]
for ind in indiclist:
    for i in ind:
        param.append(i+'_parameter_list')
        print(param)

我得到这个输出:

['RSI_parameter_list']
['RSI_parameter_list', 'Bollinger_parameter_list']
['RSI_parameter_list', 'Bollinger_parameter_list', 'MACD_parameter_list']
['RSI_parameter_list', 'Bollinger_parameter_list', 'MACD_parameter_list', 'EMA_parameter_list']
['RSI_parameter_list', 'Bollinger_parameter_list', 'MACD_parameter_list', 'EMA_parameter_list', 'RSI_parameter_list']

但我想得到这个输出:

[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)]
[(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)] (...)]

首先,我使用字典my_dict来存储参数列表 然后对于indiclist[]所有组合,创建另一个包含预期输出的列表params[] 请看下面的代码:

import itertools
import numpy as np

RSI_parameter=[range(13,16,1),range(70,80,5),range(25,35,5)]
RSI_parameter_list=list(itertools.product(*RSI_parameter))

Bollinger_parameter=[range(20,35,1),np.arange(2,3,0.25)]
Bollinger_parameter_list=list(itertools.product(*Bollinger_parameter))

MACD_parameter=[range(11,14,1),range(25,27,1),range(9,11,1)]
MACD_parameter_list=list(itertools.product(*MACD_parameter))

EMA_parameter=[range(20,21,1),range(50,51,1),np.arange(0,0.01,0.002)]
EMA_parameter_list=list(itertools.product(*EMA_parameter))


# dictinary containing all parameter lists
my_dict = {
    'RSI': RSI_parameter_list,
    'Bollinger': Bollinger_parameter_list,
    'MACD': MACD_parameter_list,
    'EMA': EMA_parameter_list
}

# combinations of the indicators:
indiclist=[]
for i in range(1,5):
    for item in itertools.combinations(('RSI','Bollinger','MACD','EMA'),i):
        indiclist.append(list(item))

# have all the parameters for a certain combination of indicators
params = []
for combination in indiclist:
    inner_list = []
    for indicator in combination:
        inner_list.append(my_dict[indicator])
    params.append(inner_list)

要查看所有可能的组合及其参数,请执行以下代码:

for i in range(len(params)):
    print(indiclist[i]) # comment out this line to get the exact output you want
    print(params[i],end="\n\n")

输出:

['RSI']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)]]

['Bollinger']
[[(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)]]

['MACD']
[[(11, 25, 9), (11, 25, 10), (11, 26, 9), (11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)]]

['EMA']
[[(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]

['RSI', 'Bollinger']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)]]

['RSI', 'MACD']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(11, 25, 9), (11, 25, 10), (11, 26, 9), 
(11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)]]

['RSI', 'EMA']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]

['Bollinger', 'MACD']
[[(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)], [(11, 25, 9), (11, 25, 10), (11, 26, 9), (11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)]]

['Bollinger', 'EMA']
[[(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)], [(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]

['MACD', 'EMA']
[[(11, 25, 9), (11, 25, 10), (11, 26, 9), (11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)], [(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]

['RSI', 'Bollinger', 'MACD']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)], [(11, 25, 9), (11, 25, 10), (11, 26, 9), (11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 
9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)]]

['RSI', 'Bollinger', 'EMA']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)], [(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]       

['RSI', 'MACD', 'EMA']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(11, 25, 9), (11, 25, 10), (11, 26, 9), 
(11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)], [(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]     

['Bollinger', 'MACD', 'EMA']
[[(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)], [(11, 25, 9), (11, 25, 10), (11, 26, 9), (11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)], [(20, 50, 0.0), (20, 50, 0.002), (20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]

['RSI', 'Bollinger', 'MACD', 'EMA']
[[(13, 70, 25), (13, 70, 30), (13, 75, 25), (13, 75, 30), (14, 70, 25), (14, 70, 30), (14, 75, 25), (14, 75, 30), (15, 70, 25), (15, 70, 30), (15, 75, 25), (15, 75, 30)], [(20, 2.0), (20, 2.25), (20, 2.5), (20, 2.75), (21, 2.0), (21, 2.25), (21, 2.5), (21, 2.75), (22, 2.0), (22, 2.25), (22, 2.5), (22, 2.75), (23, 2.0), (23, 2.25), (23, 2.5), (23, 2.75), (24, 2.0), (24, 2.25), (24, 2.5), (24, 2.75), (25, 2.0), (25, 2.25), (25, 2.5), (25, 2.75), (26, 2.0), (26, 2.25), (26, 2.5), (26, 2.75), (27, 2.0), (27, 2.25), (27, 2.5), (27, 2.75), (28, 2.0), (28, 2.25), (28, 2.5), (28, 2.75), (29, 2.0), (29, 2.25), (29, 2.5), (29, 2.75), (30, 2.0), (30, 2.25), (30, 2.5), (30, 2.75), (31, 2.0), (31, 2.25), (31, 2.5), (31, 2.75), (32, 2.0), (32, 2.25), (32, 2.5), (32, 2.75), (33, 2.0), (33, 2.25), (33, 2.5), (33, 2.75), (34, 2.0), (34, 2.25), (34, 2.5), (34, 2.75)], [(11, 25, 9), (11, 25, 10), (11, 26, 9), (11, 26, 10), (12, 25, 9), (12, 25, 10), (12, 26, 
9), (12, 26, 10), (13, 25, 9), (13, 25, 10), (13, 26, 9), (13, 26, 10)], [(20, 50, 0.0), (20, 50, 0.002), 
(20, 50, 0.004), (20, 50, 0.006), (20, 50, 0.008)]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM