帮我写出5日均线、20日均线、60日均线、120日均线、250日均线的密集度python代码
时间: 2023-09-03 15:13:55 浏览: 192
下面是一个示例代码,用于计算5日均线、20日均线、60日均线、120日均线、250日均线的密集度:
```python
def calculate_sma(data, period):
sma = []
for i in range(period-1, len(data)):
sum = 0
for j in range(i-period+1, i+1):
sum += data[j]
sma.append(sum/period)
return sma
def find_dense_sma(data, periods, threshold):
dense_sma = []
for period in periods:
sma = calculate_sma(data, period)
dense_count = 0
for i in range(period-1, len(sma)):
if all(sma[j] >= threshold for j in range(i-period+1, i+1)):
dense_count += 1
dense_sma.append((period, dense_count))
return dense_sma
# 示例用法
data = [10, 15, 12, 17, 20, 25, 22, 18, 15, 12, 30, 35, 40, 45, 50]
periods = [5, 20, 60, 120, 250]
threshold = 25
dense_sma = find_dense_sma(data, periods, threshold)
print("均线密集度:")
for period, count in dense_sma:
print(f"{period}日均线密集的天数:{count}")
```
在示例代码中,我们首先定义了 `calculate_sma` 函数来计算简单移动平均线(SMA),然后定义了 `find_dense_sma` 函数来计算不同周期的均线密集度。该函数接受一个数据列表 `data`,一个均线周期列表 `periods` 和一个密集度阈值 `threshold`。
通过调用 `find_dense_sma` 函数,并将所需的周期和阈值传递给它,我们可以得到每个周期均线密集的天数。在示例中,我们使用了一个简单的数据列表 `[10, 15, 12, 17, 20, 25, 22, 18, 15, 12, 30, 35, 40, 45, 50]` 进行测试。
请记住,这只是一个示例,实际应用中你可能需要根据你的数据源和策略进行更复杂的计算和判断。
阅读全文