期货量化从业者必读:因子挖掘与交易策略分享 - CTA交易方式解析

全国数字货币钱包安装地址:tp9.app,bit16.app,tp784.app,tp888.app,im784.app,im45.app,tokenn.app,imtooken.app,imgw.app,imtom.vip,imtokemn.app,im116.app,imtokne.app,immtoken.app,im钱包.com,imtkem.app,tokim.app,im87.app,tptoka.app,tp钱包.cn,im112.app,im1.app,bitpia.app,imzg.app,imkem.vip,im70.app,im003.app,im82.app,tokim.app,imqb.app,tookeni.app,a471.cc,tokne.app,tokonii.app,imtokes.app,im1122.app,imkct.app,imkd.app,imkct.app,imtek.app,im22.im,imken.app ,tp114.app,bit114.app,imkenn.app,tp115.app,bit115.app,im221.cn,im888.app

CTA 作为单标的时间序列的一种交易方式,正获得越来越多的关注。它有三种本质做法,分别是趋势突破、均值回归和做市,这三种做法都有很多门道。它们各有自身的特性,并且与因子的联系十分紧密,其中存在很多值得去探讨的地方。

CTA的基本做法

    for id in range(14):    
for lag in lags:
df[f'log_close/mean_{lag}_id{id}'] = np.log( np.array(df[f'Close_{id}']) / np.roll(np.append(np.convolve( np.array(df[f'Close_{id}']), np.ones(lag)/lag, mode="valid"), np.ones(lag-1)), lag-1) )
df[f'log_return_{lag}_id{id}'] = np.log( np.array(df[f'Close_{id}']) / np.roll(np.array(df[f'Close_{id}']), lag) )
for lag in lags:
df[f'mean_close/mean_{lag}'] = np.mean(df.iloc[:,df.columns.str.startswith(f'log_close/mean_{lag}_id')], axis=1)
df[f'mean_log_returns_{lag}'] = np.mean(df.iloc[:,df.columns.str.startswith(f'log_return_{lag}_id')] , axis=1)
for id in range(14):
df[f'log_close/mean_{lag}-mean_close/mean_{lag}_id{id}'] = np.array( df[f'log_close/mean_{lag}_id{id}']) - np.array( df[f'mean_close/mean_{lag}'] )
df[f'log_return_{lag}-mean_log_returns_{lag}_id{id}'] = np.array( df[f'log_return_{lag}_id{id}']) - np.array( df[f'mean_log_returns_{lag}'] )

CTA 所包含的三种做法在交易中均发挥着独特的作用。趋势突破与均值回归具有不同的逻辑,这两种做法不能将因子混淆,然而做市却可以无需依赖因子。在各大金融市场里,这几种做法都有其特定的应用场景。比如在传统期货市场,这里具备成熟的交易环境,交易员总会依据不同的目的来选择使用相应的做法。在股票市场中,这种情况也同样适用,不同的股票走势状况适合不同的 CTA 做法。

很多人不理解为何趋势突破和均值回归不能把因子混淆,而做市却可以。其实这和它们各自的交易逻辑有紧密联系。趋势突破重点在于把握趋势,均值回归主要是让价格向均值靠近。如果它们赖以生存的因子被混淆了,就很难准确地从市场波动中获取利润。做市因为其特殊的交易模式,不需要依靠特定的因子。

统计套利因子的价值

统计套利因子在众多金融市场都有着重要作用。在数字货币市场这一新兴领域,其价格波动剧烈且情况复杂,而统计套利因子能够在看似没有规律的情况下找到套利的契机。例如在某一特定时间段内,某些数字货币之间存在价格差异,统计套利因子便可捕捉到这一机会。

数字货币投资方式_数字货币与传统投资的不同策略_数字货币传统货币

然而,这个因子并非是毫无局限性的。就如同不能用一个学生在学习方面的优异表现来类比他在唱歌方面的天赋一样。从逻辑角度挑选出来的好因子,在其他方面或许根本就没有任何帮助,例如在其他地方的时间序列上可能就起不到作用。这提醒着人们应当以正确的态度看待统计套利因子的局部有效性。

时间序列规则的局限

时间序列上的规则大多以量价为基础,这存在很大局限性。量和价都是滞后的计量值,例如查看股票市场,今天的价格和成交量是今天已发生的事,用这些数据去预测明天的股价从本质上来说是不可靠的。

它们无法进行预测,这是因为其数据本质导致的。许多投资者不懂得这一点,只是盲目地依据量价的历史数据来做出交易决策,结果在市场的波动中遭受了很大的损失。我们必须清楚地认识到这种滞后性,不能过分依赖这些传统的量价分析方法。

横截面衍生的问题

如果像对统计套利因子那样进行横截面衍生的回归,就必须特别留意篮子的质量。以最近的 luna 事件为例,因为对篮子质量的把控存在问题,所以整个策略遭遇到了巨大的风险。在进行回归分析的时候,只要稍有疏忽,就可能导致全盘皆输的局面。

数字货币与传统投资的不同策略_数字货币投资方式_数字货币传统货币

如果用用量价衍生因子来做横截面回归,情况也是相同的。从本质上来说,它不能对未来进行预测。就如同不能用昨天的气象数据来预测明年的天气那般。然而,许多进行金融交易的人却忽视了这一点,仍然在这方面努力寻找能够预测未来价格的方法。

数字货币投资方式_数字货币传统货币_数字货币与传统投资的不同策略

机器学习因子的困境

# Calculate the realized absolute variation
def realized_absvar(series):
return np.sqrt(np.pi/(2*series.count()))*np.sum(np.abs(series))

机器学习因子,像遗传算法或者神经网络,是有自身局限的。它们会受到不连续误差曲线的限制,所以无法通过梯度下降来找到全局最优。比如在对一些复杂金融数据进行拟合的时候,这种算法就如同在一团乱麻里寻找线头一样,很难得到最佳的结果。

# realized bipower variation 
def realized_bipowvar(series):
cnt = series.count()
if cnt<3:
return np.nan
else:
cons = (np.pi/2)*(cnt/(cnt-2))
return cons*np.nansum(np.abs(series)*np.abs(series.shift()))

train['book_BPV_jump1'] = train['book_log_return1_realized_volatility'] - train['book_log_return1_realized_bipowvar'].values
train['book_BPV_jump1'] = np.where(train['book_BPV_jump1']<0, 0, train['book_BPV_jump1'])

这让机器学习因子在实际应用时的效果大幅降低。许多研究者耗费大量精力在该领域,期望找到突破,然而,由于这些本质性的限制,很难实现真正意义上的准确预测,无法像一些人所期望的那样,能够解决交易中的很多问题。

# Calculate the realized skew
def realized_skew(series):
return np.sqrt(series.count())*np.sum(series**3)/(realized_volatility(series)**3)

深度学习的优缺点

# Calculate the realized kurtosis
def realized_kurtosis(series):
return series.count()*np.sum(series**4)/(realized_volatility(series)**4)

深度学习中的某些方法具有独特性。例如,将 orderbook 切片直接用作输入,接着通过最大化 log likelihood 来输出 best bid 和 best ask 的未来离散概率分布。这种做法不使用未来数据来寻找因子,尽管运算量非常大,但却有着特殊的意义。

# Calculate integrated quarticity
def realized_quarticity(series):
return (series.count()/3)*np.sum(series**4)

它存在诸多问题。例如,鲁棒性难以精确确定,计算量十分巨大。并且在这个世界上,很难找到完全对参数不敏感的因子。有时,理论与实际之间的差距犹如巨大的鸿沟,在深度学习应用于金融交易因子判断时表现得极为明显。因此,在实际 CTA 交易中应用它时需要保持谨慎。

# Calculate order book depth
def calc_depth(df):
depth = df['bid_price1'] * df['bid_size1'] + df['ask_price1'] * df['ask_size1'] + df['bid_price2'] * df[
'bid_size2'] + df['ask_price2'] * df['ask_size2']
return depth

CTA 相关的这些因子以及模型都极为复杂,大家认为在未来是否会有新的技术或者新的理论能够克服这些局限?期望大家能够分享自身的看法,或者为文章进行点赞以及转发。

# Calculate order book slope
def calc_slope(df):
v0 = (df['bid_size1']+df['ask_size1'])/2
p0 = (df['bid_price1']+df['ask_price1'])/2
slope_bid = ((df['bid_size1']/v0)-1)/abs((df['bid_price1']/p0)-1)+(
(df['bid_size2']/df['bid_size1'])-1)/abs((df['bid_price2']/df['bid_price1'])-1)
slope_ask = ((df['ask_size1']/v0)-1)/abs((df['ask_price1']/p0)-1)+(
(df['ask_size2']/df['ask_size1'])-1)/abs((df['ask_price2']/df['ask_price1'])-1)
return (slope_bid+slope_ask)/2, abs(slope_bid-slope_ask)

全国数字货币钱包安装地址:tp9.app,bit16.app,tp784.app,tp888.app,im784.app,im45.app,tokenn.app,imtooken.app,imgw.app,imtom.vip,imtokemn.app,im116.app,imtokne.app,immtoken.app,im钱包.com,imtkem.app,tokim.app,im87.app,tptoka.app,tp钱包.cn,im112.app,im1.app,bitpia.app,imzg.app,imkem.vip,im70.app,im003.app,im82.app,tokim.app,imqb.app,tookeni.app,a471.cc,tokne.app,tokonii.app,imtokes.app,im1122.app,imkct.app,imkd.app,imkct.app,imtek.app,im22.im,imken.app ,tp114.app,bit114.app,imkenn.app,tp115.app,bit115.app,im221.cn,im888.app

imtoken钱包官网
imToken是一款流行的数字资产钱包,它主要用于管理各种加密货币和代币。作为一款多链支持的钱包,imToken为用户提供了一个安全、便捷的平台,以存储、转账和交易数字资产。以下是对imToken钱包的详细描述,包括其功能、优点、安全性以及用户体验等各个方面。
作者头像
imtoken钱包官网创始人

imtoken钱包官网

  • imToken钱包官网app下载并不仅仅是一个钱包,随着其生态系统的不断发展,已逐渐演变为一个集成多种区块链服务的平台。imToken通过与各种区块链项目合作,imtoken钱包下载拓展其功能,目前已涵盖了资产管理、交易、DeFi、NFT等多个方面,使其成为用户进行数字资产管理的全方位工具。
  • 版权声明:本站文章如无特别标注,均为本站原创文章,于2024-12-19,由imtoken钱包官网发表,共 5484个字。
  • 转载请注明出处:imtoken钱包官网,如有疑问,请联系我们
  • 本文地址:https://tokenim.com.cn/imto/578.html
上一篇:数字货币监管挑战与政策建议:中心化缺失与匿名性问题探讨
下一篇:高邮警方10分钟成功劝阻网络投资诈骗,避免群众财产损失

相关推荐