我参加的是交易赛道
前置问题一:本金是多少?
答:10000U
前置问题二:数据回测范围?
- 已有数据的时间范围:170817 —— 230216
- 比赛范围需回测 21.1.1 - 22.12.31
一、3.31讨论情况汇总
TODO 0
双均线,跟大家普及一下概念;
TODO 1
市面上的研报,会把他的交易策略介绍的很清楚,为什么会这么买。
我们可以通过收集研报,给ChatGPT4去筛选分析:
- 收集研报
- GPTPDF
- GPT分析
TODO 2
老猫:狼喵论坛(币圈大V):关注的十个交易因子
同理,搜索类似大V的交易观念
TODO 3
双均线模型用改成代码实现
需要注意的误差参数:滑点、手续费
二、关键指标计算
最终会综合评价
- 收益率
- 最大回撤
- 夏普比率
- 胜率
- 盈亏比
以及有效性等各方面赛出最有效的策略。
01 | 收益率
(卖出价格 - 买入价格)/ 买入价格
02 | 最大回撤
最大回撤是衡量一个投资组合或资产价格走势波动的风险指标。它表示资产价格在任何一个时间段内从高点到低点的最大跌幅。计算最大回撤的步骤如下:
- 首先找到该资产或组合的历史最高点,记为Peak。
- 然后在Peak之后找到最低点,记为Trough。
- 最大回撤就等于
(Peak - Trough)/ Peak
举个例子,假设某股票价格的历史最高点是100美元,之后价格下跌到了50美元,然后又反弹到了80美元。
那么最大回撤就等于(100美元 - 50美元)/ 100美元 = 0.5 = 50%。这意味着该股票价格在历史最高点之后曾经跌幅了50%。
03 | 夏普率
Sharpe Ratio = (Rp - Rf) / σp
其中,Rp是投资组合的预期收益率,Rf 是无风险收益率,σp 是投资组合收益率的标准差。
夏普率越高,表示在相同的风险水平下,投资组合的收益越好。通常来说,夏普率在1.0以上被认为是好的表现,而在2.0以上则被认为是非常好的表现。夏普率在0.5以下则被认为是风险过大的投资组合。
无风险收益率:无风险收益率是指在没有任何风险的情况下,投资者所能获得的收益率。在实际应用中,通常将国债利率或银行存款利率作为无风险收益率的参考值
投资组合收益率的标准差:投资组合收益率的标准差是衡量该投资组合风险的一种常用方法,其计算公式如下:
标准差 = SQRT(∑(Ri - Rp)^2 / (n-1))
其中,Ri表示第i个资产的收益率,Rp表示投资组合的平均收益率,n表示投资组合中资产的数量。
具体计算步骤如下:
- 计算投资组合的平均收益率Rp,即将所有资产的收益率加总,然后除以资产数量n,即:Rp = (R1 + R2 + ... + Rn) / n。
- 对于每个资产,计算其收益率与投资组合平均收益率之差(即(Ri - Rp)),然后将差的平方加总,得到∑(Ri - Rp)^2。
- 将∑(Ri - Rp)^2除以(n-1),然后再开平方,即可得到投资组合收益率的标准差。
04 | 胜率
胜率是指在一定的交易次数中,盈利交易所占的比例。胜率通常用百分比表示,计算公式如下:
胜率 = 盈利交易次数 / 总交易次数
需要注意的是,胜率不能单独作为交易策略的评价指标,因为它忽略了每次交易的盈亏比例。
如果每次盈利交易的盈利幅度小于亏损交易的亏损幅度,那么高的胜率并不意味着交易策略是优秀的。因此,在评价交易策略时,还需要考虑其他指标,例如平均盈亏比、期望收益等。
05 | 盈亏比
盈亏比是指在交易中获得的平均盈利与平均亏损之间的比率。它可以用以下公式来计算:
盈亏比 = 平均盈利 / 平均亏损
其中,平均盈利指的是所有盈利交易的平均收益,平均亏损指的是所有亏损交易的平均亏损。
盈亏比越高,表示获得盈利的可能性越大,风险也越小。
举个例子,假设你进行了20次交易,其中10次盈利,10次亏损。在盈利交易中,平均收益为100美元,在亏损交易中,平均亏损为50美元。那么你的盈亏比就是:
盈亏比 = 100美元 / 50美元 = 2
这意味着在这20次交易中,你获得盈利的可能性是亏损的 2 倍。
三、最终展示内容
📈 收益情况展示
💡 灵感来源
感觉 炒币的时候我们会有一种感觉,比特币涨,其他币种也会涨,比特币跌,其他币种也会跌,主流币和小币种间好像总是有同上同下的关系。
机会 但会有时差,就是比特币涨了,小币种还没有启动,我们就用比特币买入小币种,等小币种涨上来;等比特币跌了,小币种还没有跟上,我们就用小币种换回比特币,那么我们赚到的比特币就会越来越多。
🔥 验证猜想
优先级: 1 通过研报信息,发现LTC、LINK和DOT与BTC有强烈的相关性
优先级: 2 同时我们自己通过Johansen协整检验通过长时间序列协整检验,得到协整性验证
# 进行Johansen协整检验
result = coint_johansen(df, det_order=0, k_ar_diff=1)
# 输出结果
print('Eigenvalues:')
print(result.eig)
print('Trace statistic:')
print(result.lr1)
print('Max eigenvalue statistic:')
print(result.lr2)
# 获取置信水平为 95% 的 Trace 级别和 Max Eigenvalue 级别的临界值
trace_critical_values = result.trace_stat_crit_vals[:, 1]
max_eig_critical_values = result.max_eig_stat_crit_vals[:, 1]
print('trace critical values:')
print(trace_critical_values)
print('max eig critical values')
print(max_eig_critical_values)
3. 根据截止到 2021 年 6 月数据,通过拟合带常数项的多元一次函数得到一个函数式,如下图
💼 设计策略和执行
原计划策略,将 1000USDT 全部换成 BTC
- 当差值(Flag)大于 1 个标准差,用 BTC 买入 (LTC + LINK + DOT)
- 当差值小于 -1 个标准差时,用 (LTC + LINK + DOT) 买入 BTC
优化策略:通过合约形式进行U本位的优化:
1️⃣ 差值大于 1 个标准差,一半资产买入 BTCUSDT 看跌永续合约,一半资产平均买入 LTCUSDT、LINKUSD 和DOTUSDT 看涨永续合约
2️⃣ 差值达到 0,同时平仓两份永续合约,拿到 USDT 资产,等待下一次开仓机会
3️⃣ 差值小于 -1 个标准差,一半资产买入 BTCUSDT 看涨永续合约,一半资产平均买入 LTCUSDT、LINKUSDT 和 DOTUSDT 看跌永续合约
4️⃣ 差值达到 0,同时平仓两份永续合约,拿到 USDT 资产,等待下一次开仓机会
💼 普适性价值
在21年获得80%的收益,回撤仅6%,但在22年资产没有获得增长
⚠️原因:时间不足,没有及时调整系数,如果有更多时间进行系数调整,很有可能持续获得超额回报。
QA环节:小组成员亮相
四、比赛结果
小组第三,普适性验证小组第一
TODO: 将22年系数拟合出来,保证22年回归能维持良好收益水平,还有进步的空间。
同理23年系数拟合出来,可尝试实盘交易,验证策略合理性