分享

【Python量化】easytrader库旭日初升策略,精准买卖,实现盈利!

 伊伊爸 2023-05-23 发布于湖北

以下将使用easytrader库并编写一个旭日初升交易策略。在本策略中,我们将利用股票的10日均线和30日均线的交叉来进行买卖操作。

首先,我们需要导入easytrader库。请确保您已经在您的电脑上安装了该库。

import easytrader

接下来,我们需要获取K线数据。为了方便起见,我们将使用tushare库来获取历史K线数据。

import tushare as ts# 获取历史K线数据code = '000001'  # 上证指数start_date = '2020-01-01'end_date = '2023-05-14'k_data = ts.get_k_data(code, start=start_date, end=end_date, index=True)

接下来,我们将利用Pandas库进行K线数据的处理。我们在Pandas中创建一个新的DataFrame,将K线数据存储在这个DataFrame中。我们还将添加两个新的列,一个是10日均线,另一个是30日均线。

import pandas as pd# 将K线数据存储在Pandas中df = pd.DataFrame(k_data)# 计算10日均线和30日均线df['ma10'] = df['close'].rolling(window=10).mean()df['ma30'] = df['close'].rolling(window=30).mean()

接下来,我们可以开始编写买卖策略。根据我们的策略,当10日均线上穿30日均线时,我们会买入股票;而当10日均线下穿30日均线时,我们会卖出股票。

# 初始化easytraderuser = easytrader.use('ht')# 登录账号user.prepare('./ht.json')# 设定交易策略for i in range(30, len(df)):    if df['ma10'][i] > df['ma30'][i] and df['ma10'][i-1] <= df['ma30'][i-1]:        user.buy(code, price=df['open'][i], volume=10000)    elif df['ma10'][i] < df['ma30'][i] and df['ma10'][i-1] >= df['ma30'][i-1]:        user.sell(code, price=df['open'][i], volume=10000)

如上所示,我们使用了HT券商的easytrader接口。需要注意的是,在使用该接口时,需要为其指定一个JSON文件,其中包含您的HT券商账号和密码等信息。具体请参考easytrader的相关文档。

最后,我们可以利用Matplotlib库来绘制均线和交易信号图。这将有助于我们更好地理解交易策略的执行过程。

import matplotlib.pyplot as plt# 绘制均线和交易信号图plt.plot(df['close'], label='Price')plt.plot(df['ma10'], label='MA10')plt.plot(df['ma30'], label='MA30')plt.plot(df[df['buy_signal'] == True].index, df[df['buy_signal'] == True]['close'], '^', markersize=10, color='green', label='Buy Signal')plt.plot(df[df['sell_signal'] == True].index, df[df['sell_signal'] == True]['close'], 'v', markersize=10, color='red', label='Sell Signal')plt.legend(loc='upper left')plt.show()

这样,一个基于均线交叉指标的旭日初升交易策略就完成了。当然,这只是一个基础的策略模板,您可以根据需要进行修改和优化。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约