双均线突破-附带止盈止损
利用短期均线 MAS 和长期均线 MAL 生成开平仓信号:
MAS 上穿 MAL,形成做多信号,买入开仓;
MAS 上穿 MAL,形成做空信号,卖出开仓;
止盈 [基于 Bar 线的止盈]:浮动盈利 / 保证金 > 5%, 计算 | 浮动盈利×保证金比例 / 保证金;
止损 [基于 Bar 线的止损]:浮动亏损 / 保证金 < 3%, 计算 | 浮动亏损×保证金比例 / 保证金。
************************************
双均线突破策略
************************************
import re
import talib
import pandas as pd
import numpy as np
import quartz_futures as qf
from quartz_futures.api import *
参数初始化
universe = [‘RB1610’] # 策略证券池
start = pd.datetime(2016, 6, 1) # 回测开始时间
end = pd.datetime(2016, 9, 1) # 回测结束时间
capital_base = 1e4 # 初试可用资金
refresh_rate = 1 # 调仓周期
freq = ‘d’ # 调仓频率:s -> 秒;m-> 分钟;d-> 日;
自动生成保证金比例: margin_rate
margin_ratio = DataAPI.FutuGet(ticker = universe, field = [‘ticker’,’tradeMarginRatio’], pandas = ‘1’)
margin_rate = dict(zip(margin_ratio.ticker.tolist(), [0.01*index for index in margin_ratio.tradeMarginRatio.tolist()]))
策略初始化函数,一般用于设置计数器,回测辅助变量等。
def initialize(futures_account):
pass
回测调仓逻辑,每个调仓周期运行一次,可在此函数内实现信号生产,生成调仓指令。
def handle_data(futures_account):
symbol, amount = universe[0], 1
history_data = get_symbol_history(symbol = symbol, time_range = 20)[symbol]
## 计算 MA_S 和 MS_L
MA_S = talib.MA(history_data['closePrice'].apply(float).values, timeperiod = 5)
MA_L = talib.MA(history_data['closePrice'].apply(float).values, timeperiod = 10)current_long = futures_account.position.get(symbol, dict()).get('long_position', 0)
current_short = futures_account.position.get(symbol, dict()).get('short_position', 0)
if MA_S[-1] > MA_L[-1] and MA_S[-2] < MA_L[-2]:if current_short > 0:print futures_account.current_date, futures_account.current_time, '买入平仓'order(symbol, current_short, 'close')if current_long < amount:print futures_account.current_date, futures_account.current_time, '买入开仓'order(symbol, amount, 'open')if MA_S[-1] < MA_L[-1] and MA_S[-2] > MA_L[-2]:if current_long > 0:print futures_account.current_date, futures_account.current_time,'卖出平仓'order(symbol, -current_long, 'close')if current_short < amount:print futures_account.current_date, futures_account.current_time, '卖出开仓'order(symbol, -amount, 'open')profit = futures_account.position.get(symbol, dict()).get('profit', 0)
margin = futures_account.position.get(symbol, dict()).get('long_margin', 0) - futures_account.position.get(symbol, dict()).get('short_margin', 0)if margin and profit/margin < -0.03:if current_long > 0:order(symbol, -current_long, 'close')if current_short > 0:order(symbol, current_short, 'close')print futures_account.current_date, futures_account.current_time, '止损'
if margin and profit/margin > 0.05:if current_long > 0:order(symbol, -current_long, 'close')if current_short > 0:order(symbol, current_short, 'close')print futures_account.current_date, futures_account.current_time, '止盈'
双均线突破-附带止盈止损相关推荐
- QTYX量化系统实战案例分享|短线止盈止损监测202301
前言 我觉得非常有必要和大家分享一些股票量化分析工具QTYX在实战中的应用案例(包括失败的案例),这样能够帮助大家更好地去理解QTYX中的功能设计,也能更好地帮助大家搭建出属于自己的量化交易系统. 关 ...
- 九龙证券|股票为什么要设置止盈止损?止盈止损怎么设置?
在股市上,大部分投资者在买入个股之后,都会设置止盈止损,那么,他们为什么要设置止盈止损呢?止盈止损怎样设置?下面九龙证券为我们准备了相关内容,以供参阅. 股票设置止损能够操控个股的风险性,最大程度地保 ...
- 【零基础】极星9.3止盈止损用法详解
交流Q群1064240775 一.前言 止盈止损是期货交易中比较基础的部分了,但从设置上来说还是有点复杂性的,所以这篇就好好写明白极星9.3的止盈止损. 二.为啥会有止盈止损 首先得搞明白,为啥会有止 ...
- 布林带止盈止损策略改进
布林带止盈止损策略改进 万维钢的<高手>里提到了<算法之美 指导工作与生活的算法>这本书,里面提到了诸如"什么时候开始谈女朋友"."看房看到什么时 ...
- Python量化交易学习笔记(19)——连续下跌买入止盈止损卖出策略
好友提出要验证连续下跌买入止盈止损卖出策略,本文对该策略回测和实现做分析记录. 买入条件中,连续下跌定义为收盘价连续4日低于前1日的收盘价.卖出条件中,止盈率设置为10%,止损率设置为5%.回测初始资 ...
- 【StudyQuant| Python量化投资- 量化研究 - 系列7】多种仓位管理的方法,固定止盈止损 与 移动止盈止损
前言 StudyQuant -[量化投资教学系列帖子],通过实际案例教初学者使用python进行量化投资,分享最前沿的研究成果.希望能对大家有帮助. 量化投资文章 请点击此处 相关文章 区间震荡策略曾 ...
- 别人赚钱时你却在解套,是少了止盈止损环节!股票量化分析工具QTYX-V2.4.1
前言 股票市场上流行着这么一句话:"会买的是徒弟,会卖的是师傅". 散户或多或少的总是会选到一些牛股,可能是靠运气,也可能靠自身的投资能力.但最终出现亏钱的局面,最大的原因是并不知 ...
- 量化投资_止盈止损在策略中的有效性(改编)
何时卖出恐怕是我们遇到最多的一个问题,而止盈与止损又是卖出最常见的两个策略. 我们假设最常见的理论有四种:随机游走(分为正态分布与对数正态分布).趋势理论与均值回归理论,来一一验证. 第一种:随机游走 ...
- 量化交易 聚宽 止盈止损策略
聚宽官网 官网 指数代码 程序架构 策略设置函数 获取数据 交易函数 策略说明 1.设置股票池为 沪深300的所有股票 2.如果当前股价小于10元/股 并且当前不持仓.则买入 3.如果当前股价比买入时 ...
最新文章
- 模型剪枝(Pruning)
- Appium自动化测试-iOS真机运行
- Python科学计算扩展库NumPy之np.array()与np.asarray()区别
- android:Activity启动模式
- requests模块的入门使用
- as上的git到码云操作_如何使用git从码云克隆项目到本地?
- k8s滚动升级_k8s deployment 滚动更新
- 论文浅尝 | Tree-to-sequence 学习知识问答
- opengl 安装_一步步学OpenGL(34) -《GLFX,一个OpenGL效果库》
- python参数传递_python参数的传递
- xml,String互转
- 导致页面顶部空白一行解决方法
- nx零件库插件_支持Fusion 360软件的3DSource零件库插件发布
- Java基础之序列化
- 使用微擎 微赞 微信登陆遇到redirect_uri 参数错误的设置办法
- shell脚本--三种引号的区别
- python开发跟淘宝有关联微_为什么微商和淘宝卖家不得不做公众号和小程序?
- Element DatePicker 日期选择器禁用单个指定日期
- 使用php读取文件中的内容,以表格的形式进行输出。
- Poly-encoders(2020 ICLR)