用Python写一个程序 可以自动实时找出当天符合下列要求的个股 60分钟周期MA60>MA120>MA250的个股的程序 每隔60秒查询一次
时间: 2023-05-31 17:01:34 浏览: 119
以下是一个基于Python的程序,可以实现自动实时找出当天符合要求的个股:
```python
import tushare as ts
import time
while True:
# 获取当前交易日的股票数据
data = ts.get_today_all()
# 筛选符合要求的个股
selected = data[(data['ma60'] > data['ma120']) & (data['ma120'] > data['ma250'])]
# 输出符合要求的个股代码和名称
if len(selected) > 0:
print(selected[['code', 'name']])
# 等待60秒后再次查询
time.sleep(60)
```
该程序使用了tushare库来获取股票数据,然后筛选出当天60分钟周期的MA60、MA120和MA250均线都满足大于关系的个股。每隔60秒查询一次,如果有符合要求的个股,则输出其代码和名称。
相关问题
用Python写一个程序 自动实时选出符合下列要求的个股 60分钟周期MA60MA120MA250多头排列
抱歉,作为AI语言模型,我无法访问实时的股市数据和交易平台,也无法执行代码。但是,以下是一些逻辑和代码示例,可以帮助您开始编写这样的程序:
1. 获取股票数据
使用Python中的库(例如pandas-datareader)从数据源(例如Yahoo Finance)获取股票数据。您需要选择您要分析的具体股票代码,并选择适当的时间范围(例如最近几个月或几年)。
2. 计算移动平均线
使用pandas中的rolling函数计算60分钟、120分钟和250分钟的移动平均线(MA60、MA120和MA250)。您可以选择使用简单移动平均或指数移动平均。
3. 筛选符合条件的股票
编写逻辑来确定哪些股票符合条件,即MA60、MA120和MA250多头排列。一种可能的方法是检查MA60是否大于MA120,且MA120是否大于MA250。
4. 实时更新
使用Python中的定时器函数来定期(例如每60分钟)更新股票数据和移动平均线,并重新筛选符合条件的股票。
以下是一些示例代码:
```
import pandas_datareader as pdr
import pandas as pd
# 选择股票代码和时间范围
symbol = 'AAPL'
start_date = '2018-01-01'
end_date = '2021-01-01'
# 获取股票数据
df = pdr.get_data_yahoo(symbol, start=start_date, end=end_date)
# 计算移动平均线
df['MA60'] = df['Close'].rolling(window=60).mean()
df['MA120'] = df['Close'].rolling(window=120).mean()
df['MA250'] = df['Close'].rolling(window=250).mean()
# 筛选符合条件的股票
df = df[df['MA60'] > df['MA120']]
df = df[df['MA120'] > df['MA250']]
# 打印结果
print(df)
```
您还需要编写逻辑来定期更新股票数据和移动平均线,并重新筛选符合条件的股票。这可能涉及使用Python中的定时器或其他类似的功能。
python中日周期下MA60>MA120>MA250,60分钟周期下MA6O>MA120 >MA250,30分钟周期下MA60>MA120 >MA250,15分钟周期下MA6O>MA 120 >MA250 用python怎么写代码
假设你已经获取了当前周期内的K线数据,可以按照以下步骤计算MA指标:
1. 定义计算MA指标的函数
```python
def MA(close, n):
"""
计算移动平均线
:param close: 收盘价序列
:param n: 平均线周期
:return: 平均线序列
"""
res = []
for i in range(len(close)):
if i < n:
res.append(None)
else:
res.append(sum(close[i-n:i]) / n)
return res
```
2. 计算不同周期的MA指标
```python
# 日周期下的MA指标
ma60d = MA(close, 60)
ma120d = MA(close, 120)
ma250d = MA(close, 250)
# 60分钟周期下的MA指标
ma60m = MA(close, 60)
ma120m = MA(close, 120)
ma250m = MA(close, 250)
# 30分钟周期下的MA指标
ma30m = MA(close, 60)
ma120m = MA(close, 120)
ma250m = MA(close, 250)
# 15分钟周期下的MA指标
ma15m = MA(close, 60)
ma120m = MA(close, 120)
ma250m = MA(close, 250)
```
3. 判断MA指标是否符合条件
```python
if ma60d[-1] > ma120d[-1] > ma250d[-1]:
print("日周期下MA60>MA120>MA250")
if ma60m[-1] > ma120m[-1] > ma250m[-1]:
print("60分钟周期下MA60>MA120>MA250")
if ma30m[-1] > ma120m[-1] > ma250m[-1]:
print("30分钟周期下MA60>MA120>MA250")
if ma15m[-1] > ma120m[-1] > ma250m[-1]:
print("15分钟周期下MA60>MA120>MA250")
```
注意,这里假设`close`是收盘价序列,如果你使用其他价格序列计算MA指标,需要相应地修改代码。
阅读全文