Python量化交易实战-42双均线策略股票量化交易模拟实战

auto-trade 虚幻 1505℃ 0评论

这里我们利用整节课所有的知识,来进行实盘模拟交易,你可以选择真实交易,可以使用你注册的券商进行实际交易,但是对于刚开始上手量化的同学,提醒大家还是用模拟账户,这样你可以等整个程序都跑顺了之后,再去用真金白银去交易。

一、实战

创建一个python文件,用于跑策略:

20210704184207 - Python量化交易实战-42双均线策略股票量化交易模拟实战

import sys,os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)

import Data.Stock as st
import Strategy.ma_strategy as ma
import easytrader
import pandas as pd
import time

#交易初始化
user = easytrader.use('universal_client') 
user.connect(r'C:\同花顺软件\同花顺\xiadan.exe')
user.enable_type_keys_for_editor()

#参数设置
start_date = '2016-01-01'
end_date = '2021-01-01'

#确定股票池:沪深300
stocks = st.get_index_list()
print("===========股票列表", stocks)

#找到有交易信号的股票,为之后交易进行准备
for stock in stocks:
    data = st.get_single_price(stock, 'daily', start_date, end_date)
    print("==============股票数据", stock, "==============")

    # 跑策略:双均线
    data  = ma.ma_strategy(data=data)
    print(data.tail())

    #判断交易信号:买入、卖出
    signal = data['signal'].iloc[-1]
    print("===========交易信号", signal, "==============")

    # 去除股票代码后缀(.XSHE)
    code = stock.split('.')[0]
    #获取当期收盘价
    price = data['close'].iloc[-1]
    # 交易数量
    amount = 100

    #判断持仓信息(转化为DataFrame   )
    position = pd.DataFrame(user.position)
    stock_pos = None
    if position.empty == False:
        stock_pos = position[position['证券代码'] == code]['可用余额'].iloc[0]
    print("===============当前持仓:", stock_pos, "============")

    if signal == 1:
        entrust = user.buy(code, price, amount)
        print("===============买入id:", entrust, "============")
    elif signal == -1 and stock_pos is not None:
        entrust = user.sell(code, price, stock_pos)
        print("===============卖出id:", entrust, "============")
    else:
        print("未产生信号")

    time.sleep(3)

运行即可完成自动化

看起来跑的挺顺利的。可以看到大部分是无交易信号的。在实盘之前,最好模拟交易几个月,你在跑策略的过程中会发现很多问题,你也会充分的意思到它和你回测的结果的不同。

到这里我们基本上把策略的部分和模拟交易的部分给结合起来了。

转载请注明:虚坏叔叔 » Python量化交易实战-42双均线策略股票量化交易模拟实战

喜欢 (90)

您必须 登录 才能发表评论!