请帮我用python写5日均线 、20日均线、60日均线、120日均线、250日均线高度密集的代码
时间: 2023-09-03 13:13:55 浏览: 180
4、Python量化交易-双均线策略笔记
要判断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]
periods = [5, 20, 60, 120, 250]
threshold = 15
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]` 进行测试。
请注意,这只是一个示例,实际应用中你可能需要根据你的数据源和策略进行更复杂的计算和判断。
阅读全文