V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  bmpidev2019  ›  全部回复第 1 页 / 共 13 页
回复总数  248
1  2  3  4  5  6  7  8  9  10 ... 13  
@bmpidev2019 主要是感觉期权的价格浮动非常夸张,经常两天价格变动 50%以上,本来很便宜的期权可能立马变得很贵,这估计是期权本身内在价值受外部影响因素过多导致的
@Sawyerhou 昨晚又算了下,的确不便宜,要降低头寸亏损,比如 10%下跌时开始保护,期权成本都占总仓位的 4%了,相当于就算头寸不涨也得亏 4%,这还是两个月到期的,远期的更贵一些
@Sawyerhou 测算了下,纳指 100 的期权不贵,保五万的多头仓位,只需要 700 多,按三倍杠杆的组合波动,一晚上都 1000-2000 刀没了,所以感觉挺划算。
21 小时 17 分钟前
回复了 bmpidev2019 创建的主题 分享创造 做了一个支持多策略的全球市场投资交易提醒工具
想到一种用期权来降低风险的策略,这种在币圈应该是基操,不过我没操作过期权。目前美股 1 号是一个全仓三倍做多的杠杆 ETF 组合,这种组合虽然有策略来止损退出,但是因为波动性过大,止损有效时组合已经产生较大的回撤,那可以使用期权来保护,比如买入纳斯达克 100 的 Put 期权,大致测算的过程如下:

以下对话来自 ChatGPT:

美股 3 号是一个满仓 TQQQ 的组合,组合持仓金额达 10 万美元,目前的报价为 53.71 美元,我们买入 QQQ 240517 379.78 Put 的期权( 1 份目前价值 0.91 美元),这名字里有行权价和到期日,分别测算最近 1 个月纳斯达克涨 10%与跌 10%,及没有大的涨跌的情况下,这个组合的收益大概怎么变化(与无期权的策略对比)

---

让我们来详细分析和计算您提到的美股 3 号组合在不同市场情况下的潜在收益变化。这个组合完全投资于 TQQQ ,总值为$100,000 ,同时您考虑购买 QQQ 的看跌期权来对冲风险。

### 初始设定
- **TQQQ 持仓金额**:$100,000
- **TQQQ 单价**:$53.71
- **TQQQ 持股数**:$100,000 / $53.71 ≈ 1862 股
- **QQQ 看跌期权**:行权价$379.78 ,价格$0.91/股,到期日 2024 年 5 月 17 日
- **期权合约每份覆盖**:100 股 QQQ
- **期权合约购买数量**:需覆盖相当于 TQQQ 持仓的份额,由于 TQQQ 是 QQQ 的三倍杠杆,考虑覆盖相当于$100,000 三倍,即$300,000 的市值。假设 QQQ 价格与纳斯达克 100 指数相近,大约为$400 ,则需要的 QQQ 股数约为$300,000 / $400 = 750 股。因此需要购买大约 8 份期权合约( 750 / 100 )。

### 成本计算
- **期权总成本**:8 份 x $0.91 x 100 股 = $728

### 纳斯达克涨跌 10%情况分析
我们先假设 QQQ 价格大约为$400 ,以简化计算。以下为市场涨跌 10%的影响:

#### 1. 纳斯达克上涨 10%
- **QQQ 新价格**:$400 * 1.10 = $440
- **TQQQ 新价格**:因为是三倍杠杆,TQQQ 大约涨 30%。
- **新的 TQQQ 价值**:$100,000 * 1.30 = $130,000
- **期权到期无值**,损失$728 。

#### 2. 纳斯达克下跌 10%
- **QQQ 新价格**:$400 * 0.90 = $360
- **TQQQ 新价格**:因为是三倍杠杆,TQQQ 大约跌 30%。
- **新的 TQQQ 价值**:$100,000 * 0.70 = $70,000
- **期权内在价值**:行权价$379.78 ,QQQ 价格$360 ,每股内在价值$379.78 - $360 = $19.78 。
- **期权总价值**:$19.78 * 100 股 * 8 份 = $15,824
- **净收益**:$15,824 - $728 = $15,096

#### 3. 没有大的涨跌
- **TQQQ 价值**:基本保持$100,000
- **期权损失**:$728 (时间价值的逐渐流失)

### 总结
- **纳斯达克上涨 10%**:
- **无期权策略**:$130,000 (净增$30,000 )
- **有期权策略**:$130,000 - $728 = $129,272 (净增$29,272 )
- **纳斯达克下跌 10%**:
- **无期权策略**:$70,000 (净损$30,000 )
- **有期权策略**:$70,000 + $15,096 = $85,096 (净损$14,904 )
- **市场平稳**:
- **无期权策略**:$100,000 (无变化)
- **有期权策略**:$100,000 - $728 = $99,272 (净损$728 )

通过这种详细的分析,我们可以看到在不

同市场环境下,使用看跌期权来对冲风险确实可以减少损失,尤其在市场下行时。然而,在市场上行或稳定时,期权的成本会略微减少总体的投资收益。这种策略提供了一种权衡,旨在保护极端市场下跌带来的风险,但需付出一定的代价。

---

想请教下做过期权的大佬,这种测算在真实市场中有啥没有考虑到的?因为看起来加入期权后,这种组合既有保底又又很强的进攻性,看起来非常完美,但是总感觉没那么简单🤔
@lefer 填写首页的问卷调查就能获得试用资格,还有对于这个工具是不适合我的问题,我整理了大约 20 多个 FAQ 的问题到这两个页面,关注的朋友可以阅读下:

- https://www.myinvestpilot.com/strategy
- https://www.myinvestpilot.com/portfolios
@standchan 缅 A 还行啊,A 股 2 号年复合 16%的收益还行,毕竟无风险利率都干到 2 个点了
@winglight2016 策略优化很难避免拟合,只能降低,真正拟合的参数没有用,不然表现比现在的组合还要炸裂。
@reechangs 美股 4 号就是定投策略。自动化交易并不适合普通交易者,目前还没有这个规划。
@Inn0Vat10n 我还没试过你说的方式,不过目前这个产品并不是一个为专业投资者打造的工具,所以策略尽可能简单操作少。
@Livid 我用 coinapi 获取到的日内数据,你可以自己试试这个策略的回测看看最终效果
@Livid 搞到 15m 和 1h 的 BTC 日内数据了,2021 年到现在,大概几十 MB ,我测试了下你的策略效果都是负的。

https://imgur.com/a/dOfRibG

无论设置到 2021 年开始,还是 2022 年牛市开始,这种高频策略最终的收益都是亏损的。策略代码如下:

```python
class RsiStrategy(bt.Strategy):
params = (
('rsi_period', 14),
('rsi_overbought', 70),
('rsi_oversold', 30),
)

def __init__(self):
# 为两个不同的时间框架数据分别计算 RSI
self.rsi_15m = bt.indicators.RSI(self.datas[0].close, period=self.params.rsi_period)
self.rsi_1h = bt.indicators.RSI(self.datas[1].close, period=self.params.rsi_period)

def next(self):
# 获取当前时间戳
timestamp = self.datas[0].datetime.datetime(0)

# 买入条件:当 15 分钟和 1 小时的 RSI 都低于 30 时
if not self.position:
if self.rsi_15m[0] < self.params.rsi_oversold and self.rsi_1h[0] < self.params.rsi_oversold:
self.buy(data=self.datas[0]) # 使用 15 分钟数据源的价格买入
logging.info(f"{timestamp} BUY EXECUTED, Price: {self.datas[0].close[0]}, RSI 15m: {self.rsi_15m[0]}, RSI 1h: {self.rsi_1h[0]}")

# 卖出条件:当 15 分钟和 1 小时的 RSI 都高于 70 时
elif self.rsi_15m[0] > self.params.rsi_overbought and self.rsi_1h[0] > self.params.rsi_overbought:
self.close(data=self.datas[0]) # 使用 15 分钟数据源的价格卖出
logging.info(f"{timestamp} SELL EXECUTED, Price: {self.datas[0].close[0]}, RSI 15m: {self.rsi_15m[0]}, RSI 1h: {self.rsi_1h[0]}")
```
@Livid 是的,我在设计组合的时候,会建立分散的组合,也有单个标的如 A 股 2 号、美股 3 号、加密币 2 号这种全仓交易一个标的的组合,这样的组合进攻型足够高,但是回撤都不小,适合风险承受能力高的人,而回撤小的组合更适合风险承受小的人。

之所以要关注风险指标是因为,如果一个策略与交易者的承受能力不匹配,实际的交易则很难进行下去,最终会让交易结果变差,因为交易者可能中途会放弃这个策略。
@Livid 看了下,2022 年的行情里,策引加密币 2 号( https://www.myinvestpilot.com/portfolios/myinvestpilot_cc_2 )产生了 30%多的回撤,虽然空仓时段比较多,但是大的回撤还是很难避免。但是加密币 1 号: https://www.myinvestpilot.com/portfolios/myinvestpilot_cc_1 在 2022 年反而都是空仓状态,两个组合的差异在于资金策略,2 号时满仓交易 BTC ,1 号是限制单个标的不能超过 20%,关注的币也包括:"BTC", "ETH", "XRP", "LTC", "BCH", "ADA", "BNB", "LINK", "XLM", "DOT" 都是一些主流币,这样反而能控制回撤,不过表现没有 2 号那么好,1 号的年复合收益是 20%多,2 号是 30%多,但是这只是在 BTC 处于牛市状态下,如果再回到熊市,1 号的表现可能会更好一些。
@Livid SOL 看起来是个短线高频策略了,我刚看了下,这种策略难道要接入自动化交易来执行?
@laaaaaa 网格吃震荡我不觉得是什么好策略,因为震荡行情赚钱效果不如趋势行情,当一个策略在震荡里赚钱时就可能错过了大趋势,所以震荡只能作为一种辅助工具来使用。
@bmpidev2019 上面图一和图二反了,实际图一是 https://img.bmpi.dev/4e22192b-fbed-7e6a-ac3d-2540f725d2e8.png 图二是 https://img.bmpi.dev/03166bc5-9207-3b68-9ef8-a6d8a18730cd.png
图三是最终用优化后双均线的表现。

在这里想说的是周期对策略会有大的影响,盈亏同源,所以难点在于平衡取舍,尽可能选择分散的标的来规避过拟合以及让策略的容错能更高一些,这样就能横跨多种周期了。
@Livid TQQQ 的策略就是我一直提到的吊灯止损均线策略,这个策略在美股和加密币表现都不错,但是 A 股不行,A 股反而双均线策略非常好😂

我还对 A 股二号,其实类似与美股 2 号( TQQQ ),都是单个标的全仓交易,都能规避大跌。但是针对 A 股的创业板组合,我还做过进一步的研究分析,这里可以分享下,以及设计策略的取舍经验:

---

尝试优化下 A 股 2 号,一开始我尝试用三重均线的策略来测试,如图 1 所示,看起来三重均线要比双均线好很多,完全规避了近几年的大跌,但当把组合模拟时间从 2018 年回退到 2013 年开始,这十年创业版刚好经历两个大的周期。三重均线的适应性出现了很大的问题,如图二所示,甚至都不如直接持有创业板指数,而且资金利用率很低,大部分都是空仓状态。而双均线的适应性如图三所示,比单独持有创业板要好很多,我尝试优化双均线的参数,得到了一个比 11/22 日更好的效果,目前这个参数是 12/24 ,所以我会把组合二的策略参数调整成这一组。但需要注意的是,就算双均线策略,在 2013 年到 2018 年表现的甚至不如直接持有创业板的收益好(进一步分析是因为在 2013 年组合是有一段时间空仓导致没能赶上创业板大爆发的阶段,这是因为数据不够导致的,如果数据能到 2010 年,那说不定能看到更好的表现,所以目前看到策略在 2013 年到 2018 年表现差可能是回测数据不够导致的),这说明很难找到一个在横跨十年时间都能完美处理止损的策略参数,我们能做的还是选择一些基础不错的主流指数,适当分散投资,这样能让组合的整体持仓表现更稳定一些,也能让长期投资跟更容易坚持下来。

![图 1]( https://img.bmpi.dev/03166bc5-9207-3b68-9ef8-a6d8a18730cd.png)

![图 2]( https://img.bmpi.dev/4e22192b-fbed-7e6a-ac3d-2540f725d2e8.png)

![图 3]( https://img.bmpi.dev/0e86a626-d583-908d-28c1-d8821ee07959.png)
@Livid 现在策引的多策略回测框架支持日线级别的股票、ETF ( A 股和美股都可以)与加密币的历史回测表现分析。刚才我做那个分析就是几分钟写策略(代码让 chatgpt 来写),然后配置一个组合,执行后就能产生那个走势图以及一个包含全部交易信号的 sqlite 数据库及组合表现(净值、benchmark 指数对比、交易记录、资金记录、持仓记录)的 sqlite 数据库,然后还能产生全部的回测日志供分析。

目前策引的组合都是我写策略然后发布的,还没有对会员开放自定义策略的功能,但是今年年底左右估计能开放给所有用户。如果会员有好的策略,我也可以帮忙创建相关的组合出来,包括策略的编写之类。

日内的数据理论上应该也行,因为底层回测引擎是 backtrader ,但是估计要做一些改动,目前还没有直接对日内数据做支持。
@Livid 我也很好奇,但我手头的 API 的日内数据,如果是 15 分钟级别只能提供最近两天的,日线可以提供到 2021 年前的,所以现在需要找到一个能有 BTC 日内历史数据的 API 接口才能回测。
@Livid 用上帝视角交易不要更简单😂但是真正的交易总是雾里看花,历史回测好歹能拨开点迷雾。有时间我用经验假设的策略最终回测效果都一般,真正效果好的反而是很简单的策略,太复杂的没有容错性,太简单的又很容易失效。
上面这个策略的代码如下:

```python
import pandas as pd
from trade_strategies import BaseTradeStrategy, TradeSignalState

class RsiStrategy(BaseTradeStrategy):
"""Relative Strength Index (RSI) Trading Strategy"""

# 默认参数
params = {
'rsi_period': 14,
'rsi_overbought': 70,
'rsi_oversold': 30,
}

def __init__(self, params=None):
super().__init__()
if params:
self.params.update(params)

def set_data(self, symbol, data):
self.symbol = symbol
self.data = data
self.calculate_indicators()

def calculate_indicators(self):
delta = self.data['Close'].diff()
gain = (delta.where(delta > 0, 0)).rolling(window=self.params['rsi_period'], min_periods=1).mean()
loss = (-delta.where(delta < 0, 0)).rolling(window=self.params['rsi_period'], min_periods=1).mean()

rs = gain / loss
self.data['rsi'] = 100 - (100 / (1 + rs))

def is_buy_signal(self, rsi):
return rsi < self.params['rsi_oversold']

def is_sell_signal(self, rsi):
return rsi > self.params['rsi_overbought']

def generate_signals(self):
signals = [TradeSignalState.EMPTY.value for _ in range(len(self.data))]

for i in range(1, len(self.data)):
if self.is_buy_signal(self.data['rsi'].iloc[i]):
signals[i] = TradeSignalState.BUY.value
elif self.is_sell_signal(self.data['rsi'].iloc[i]):
signals[i] = TradeSignalState.SELL.value
else:
signals[i] = TradeSignalState.EMPTY.value

signal_df = pd.DataFrame({
'symbol': self.symbol,
'open': self.data['Open'],
'high': self.data['High'],
'low': self.data['Low'],
'close': self.data['Close'],
'volume': self.data['Volume'],
'rsi': self.data['rsi'],
'signal': signals
})

return signal_df

```
1  2  3  4  5  6  7  8  9  10 ... 13  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3698 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 00:51 · PVG 08:51 · LAX 17:51 · JFK 20:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.