WeQuant交易策略—5日均线

简单的价格突破策略。当前价格超过最近5个收盘价的均价,则全仓买入;低于均价,则全仓卖出

代码

# 简单的价格突破策略。当前价格超过最近5个收盘价的均价,则全仓买入;低于均价,则全仓卖出

# PARAMS用于设定程序参数,回测的起始时间、结束时间、滑点误差、初始资金和持仓。
PARAMS = {
    "start_time": "2017-02-01 00:00:00",  # 回测起始时间
    "end_time": "2017-08-01 00:00:00",  # 回测结束时间
    "slippage": 0.003,  # 此处"slippage"包含佣金(千二)+交易滑点(千一)
    "account_initial": {"huobi_cny_cash": 10000,
                      "huobi_cny_btc": 0},
}

# initialize函数是两大核心函数之一(另一个是handle_data),用于初始化策略变量。
def initialize(context):
    context.frequency = "60m" # 以60分频率进行回测
    context.benchmark = "huobi_cny_btc" # 设定以比特币为基准
    context.security = "huobi_cny_btc" # 设定操作的标的为比特币

# handle_data函数定义了策略的执行逻辑,按照frequency生成的bar依次读取并执行策略逻辑,直至程序结束。
def handle_data(context):
    hist = context.data.get_price(context.security, count=5, frequency=context.frequency) # 获取最近5个频率周期的历史数据
    ma = hist["close"].rolling(window=5).mean()[-1] # 计算最近5个收盘价的均价
    current_price = context.data.get_current_price(context.security) # 获取当前价格
    if current_price > ma and context.account.huobi_cny_cash >= HUOBI_CNY_BTC_MIN_ORDER_CASH_AMOUNT: # 当前价格大于均价时,全仓买入
        context.order.buy(context.security, cash_amount=str(context.account.huobi_cny_cash))
    elif current_price < ma and context.account.huobi_cny_btc >= HUOBI_CNY_BTC_MIN_ORDER_QUANTITY: # 当前价格小于均价时,全仓卖出
        context.order.sell(context.security, quantity=str(context.account.huobi_cny_btc))

30分钟回测

60分钟回测结果

4小时回测

1天回测

1周回测

时间: 2024-08-03 18:29:21

WeQuant交易策略—5日均线的相关文章

WeQuant交易策略—简单均线

简单双均线策略(Simple Moving Average) 策略介绍简单双均线策略,通过一短一长(一快一慢)两个回看时间窗口收盘价的简单移动平均绘制两条均线,利用均线的交叉来跟踪价格的趋势.这里说的简单是指在求平均值的时候采用的是算术平均数(就是求和再除以总数),有些更为复杂的求平均值得方法,如加权移动平均,指数加权移动平均等等.我们这个策略只使用最基本的算术平均.移动平均线是股票趋势策略中最常见技术手段. 计算方法(以日频率举例)N日移动平均(MA)的计算:MA(N) = 最近N天的收盘价之

WeQuant交易策略—KDJ

KDJ随机指标策略 策略介绍KDJ指标又叫随机指标,是一种相当新颖.实用的技术分析指标,它起先用于期货市场的分析,后被广泛用于股市的中短期趋势分析,是期货和股票市场上最常用的技术分析工具. 随机指标KDJ一般是用于股票分析的统计体系,根据统计学原理,通过一个特定的周期(常为9日.9周等)内出现过的最高价.最低价及最后一个计算周期的收盘价及这三者之间的比例关系,来计算最后一个计算周期的未成熟随机值RSV,然后根据平滑移动平均线的方法来计算K值.D值与J值,并绘成曲线图来研判股票走势.适合趋势分析.

WeQuant交易策略—ATR

ATR(真实波幅均值)策略 策略介绍 ATR(average true range,真实波幅均值),是用来衡量一段时间内价格的真实的平均波动范围,ATR不是一个领先指标,但是它测量最重要的市场参数之一--价格波动. ATR主要应用于了解股价的震荡幅度和节奏,在窄幅整理行情中用于寻找突破时机.通常情况下股价的波动幅度会保持在一定常态下,但是如果有主力资金进出时,股价波幅往往会加剧.另外,在股价横盘整理.波幅减少到极点时,也往往会产生变盘行情.真实波幅(ATR)正是基于这种原理而设计的指标. 计算方

WeQuant交易策略—EMA指标

策略名称:EMA指标策略关键词:指数移动平均.双均线.动态止损.方法:1)用快慢两条指数移动平均线的交叉作为买入卖出信号:2)快线自下而上穿过慢线,买入:自上而下穿过慢线,卖出:3)持仓期间计算净值的回撤,当回撤大于预设值时,全仓卖出止损,等待下一次入场信号 # !/usr/bin/env python # -*- coding: utf-8 -*- # 策略代码总共分为三大部分,1)PARAMS变量 2)initialize函数 3)handle_data函数 # 请根据指示阅读.或者直接点击

WeQuant交易策略—NATR

策略名称:NATR策略关键词:规范真实波幅.价格突破. NATR,是对ATR指标进行了标准化.主要应用于了解价格的震荡幅度和节奏,在窄幅整理行情中用于寻找突破时机.本策略在当前价格高于之前价格一定倍数NATR时全仓买入,低于一定倍数NATR时全仓卖出.方法:1)利用规范化的真实波幅来构造上下轨:2)价格突破上轨买入:3)价格突破下轨卖出. 代码 # !/usr/bin/env python # -*- coding: utf-8 -*- # 策略代码总共分为三大部分,1)PARAMS变量 2)i

用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)

在用python的matplotlib和numpy库绘制股票K线均线的整合效果(含从网络接口爬取数据和验证交易策略代码)一文里,我讲述了通过爬虫接口得到股票数据并绘制出K线均线图形的方式,在本文里,将在此基础上再引入成交量效果图,并结合量价理论,给出并验证一些交易策略. 1 成交量对量化分析的意义 美国的股市分析家葛兰碧(Joe Granville)在他所著的<股票市场指标>一书里提出著名的“量价理论”.“量价理论”的核心思想是,任何对股价的分析,如果离开了对成交量的分析,都将是无本之木,无水

均线交易策略

目的:从所有股票中选出符合买入策略的股票. 符合买入条件: 1.当天5日均线数据大于等于10日均线数据: 2.昨天5日均线数据小于10日均线数据: 3.10日均线数据处于上升趋势. 代码实现如下: 1 import tushare as ts 2 import pandas as df 3 import datetime 4 def getStockHistoryData(): 5 data = ts.get_hist_data(code = "002456",start = &quo

AJPFX平台:02.27日内交易策略

AJPFX恒指: 恒指昨日一根大阴线,日线上昨日的中阴线在大趋势来看只是短线的回调,短线可能有再度回调的需求,昨日低点支撑28700破位后看28500一线支撑,恒指处于布林带上轨区间运行,大趋势目前依旧看多.4小时上,5日均线有向下拐头的趋势,MACD快慢线开始粘合在一起,上涨速度放缓,有回落的风险,交易思路上,低多为主,高空为辅! 恒指1小时K线图 AJPFX外汇(黄金,原油): 美指在昨日(周二)晚间出现了较大级别的下跌,价格摆脱了此前的横盘整理趋势,下破96.00整数关口,最低至95.90

AJPFX平台:03.06日内交易策略

AJPFX恒指: 恒指上个交易日走势上冲到上方最高点是28989,下方跌到最低点位是28617.受A股市场提振,昨日恒指日内全线走多,美股晚间收跌,尾盘价格有所回撤,但整体多头未被打破!盘面上分析,K线昨日收阳,跌到下方10日均线下面.最后收于均线上方.补助指标KDJ有点往上勾,MACD能量柱减弱向下不明显了.所以今日恒指整体走势偏多考虑,小级别分析,恒指会有一定力度的空头回撤调整.交易上,先看回撤力度,上方注意的点位是29160,29260.下方注意的点位是28800,28600. 恒指1小时