目前大部分券商的ptrade不支持ETF期权交易。 如果有支持的券商,你也可以评论区告诉我哦
国内的ETF期权上交所有5只,深交所有4只。
上交所 ETF 期权(5 只)
| ETF 代码 | ETF 名称 | 跟踪指数代码 | 指数名称 | 俗称 |
|---|---|---|---|---|
| 510050 | 华夏上证 50ETF | 000016 | 上证 50 指数 | 50ETF 期权 |
| 510300 | 华泰柏瑞沪深 300ETF | 000300 | 沪深 300 指数 | 沪市 300ETF 期权 |
| 510500 | 南方中证 500ETF | 000905 | 中证 500 指数 | 沪市 500ETF 期权 |
| 588000 | 华夏科创 50ETF | 000688 | 科创 50 指数 | 华夏科创 50ETF 期权 |
| 588080 | 易方达科创 50ETF | 000688 | 科创 50 指数 | 易方达科创 50ETF 期权 |
深交所 ETF 期权(4 只)
| ETF 代码 | ETF 名称 | 跟踪指数代码 | 指数名称 | 俗称 |
|---|---|---|---|---|
| 159919 | 嘉实沪深 300ETF | 000300 | 沪深 300 指数 | 深市 300ETF 期权 |
| 159922 | 嘉实中证 500ETF | 000905 | 中证 500 指数 | 深市 500ETF 期权 |
| 159915 | 易方达创业板 ETF | 399006 | 创业板指数 | 创业板 ETF 期权 |
| 159901 | 易方达深证 100ETF | 399330 | 深证 100 指数 | 深证 100ETF 期权 |

如果对应的ETF高开很多,那么我们可以在盘中尝试做空波动率,也就是我们的祖训,高开必跑。历史数据告诉我们,高开越多,回落的概率越高。
下面的ptrade代码要做的事情很简单,如果监控到这几个期权对应的ETF 在盘中涨得很多或者跌得很多,那就发个微信消息给我,然后我根据盘面再决定,是否要去手动区买沽或者买购。
监控的ETF标的比如沪深300有沪市和深市标的,就只取沪市ETF即可,因为跟踪的指数差别很小。
Ptrade源码:
# author: 公众号:量化交易教程
import datetime
import json
# 上交所ETF期权标的
sse_etf_codes = ["510050", "510300", "510500", "588000"]
# 深交所ETF期权标的
szse_etf_codes = [ "159915", "159901"]
# 全部汇总
all_etf_option_codes = sse_etf_codes + szse_etf_codes
TARGET_PERCENT = 4 # 满足的阈值
# 企业微信数据
corp_id = 'your_corp_id'
secret = 'your_secret'
agent_id = 'your_agent_id'
to_user = 'your_username'
def postfix_etf(code):
if code.startswith('5'):
return code + '.SS'
else:
return code + '.SZ'
def initialize(context):
# 初始化策略
run_interval(context, execution, seconds=3)
log.info("公众号:量化交易教程")
def before_trading_start(context, data):
g.etf_codes = [postfix_etf(code) for code in all_etf_option_codes]
g.has_sent_msg = set() # 用于记录已经发送过消息的ETF代码,避免重复发送
def handle_data(context, data):
pass
def execution(context):
snap_infos = get_snapshot(g.etf_codes)
for code , snap in snap_infos.items():
percent = snap.get('px_change_rate')
if abs(percent) >= TARGET_PERCENT:
msg = f"{code}涨跌幅达到{percent}%"
if code not in g.has_sent_msg:
print(msg)
send_qywx(corp_id, secret, agent_id, info=msg, path='', toparty='', touser= to_user, totag= '')
g.has_sent_msg.add(code)
比如今天科创50跌了-5.32%,满足阈值大于-4%,就会发出一条微信提醒。 因为我代码里面用的abs(percent),所以大于绝对值4%的都会发出提示

喜欢的朋友欢迎关注,趁最近有空更新一波,这个号太久更新都长草了 ~