写一个适合joinquant的双均线量化交易策略代码
时间: 2023-10-10 21:07:44 浏览: 101
以下是一个简单的适用于joinquant的双均线策略代码,仅供参考:
```python
# 导入相应的库
import jqdata
import talib
import numpy as np
# 初始化函数,设定要操作的证券、基准等等
def initialize(context):
# 设定基准
set_benchmark('000300.XSHG')
# 设定滑点、手续费
set_slippage(FixedSlippage(0.02))
set_commission(PerTrade(buy_cost=0.0003, sell_cost=0.0003, min_cost=5))
# 设定股票池
g.stocks = ['000001.XSHE', '600036.XSHG', '601398.XSHG']
# 设定短期和长期均线的时间窗口
g.short_ma = 10
g.long_ma = 60
# 设定交易频率
run_daily(trade, 'open')
# 交易函数
def trade(context):
# 获取股票池中的所有股票
stocks = g.stocks
# 循环遍历股票池中的所有股票
for stock in stocks:
# 获取当前股票的收盘价
prices = attribute_history(stock, g.long_ma, '1d', ['close'])
# 计算短期和长期均线
short_ma = talib.MA(prices['close'], timeperiod=g.short_ma)
long_ma = talib.MA(prices['close'], timeperiod=g.long_ma)
# 获取当前股票的最新收盘价
current_price = prices['close'][-1]
# 如果短期均线上穿长期均线,则买入该股票
if short_ma[-1] > long_ma[-1] and short_ma[-2] <= long_ma[-2]:
order_value(stock, context.portfolio.cash)
# 如果短期均线下穿长期均线,则卖出该股票
elif short_ma[-1] < long_ma[-1] and short_ma[-2] >= long_ma[-2]:
order_target(stock, 0)
```
上述代码实现了一个简单的双均线策略,当短期均线上穿长期均线时,买入该股票,当短期均线下穿长期均线时,卖出该股票。具体策略的优化和调整需要根据实际情况进行。
阅读全文