区块链量化投资
Draft

区块链交易所开发-交易所开发-交易所软件

2)宏观策略:宏观策略的投资范围不局限于单一类型的市场,而是进行全类型市场的投资。这一类型的策略又可以分成以期货为投资工具的CTA策略,和宏观资产配置策略。CTA策略是动量策略的代表作。动量策略又称作趋势型策略。

它研究的是价格的变化趋势,基于行为金融学,找到价格变化背后的规律(动量和反转),通过趋势变化的规律赚取收益。

CTA通过期货标的物,可以把自己的投资范围扩大到各个类型的资产,这样的目的是为了分散动量策略本身的高风险。宏观资产配置策略多被一些全球资产管理公司以及投行(如德意志银行)采用。策略主要研究的是宏观经济的变化,然后做多或做空某一区域的所有类型的市场。

主要有三:

第一个原因就是主流机构:比方说灰度基金、Block.one、Coinshares、MicroStrategy、特斯拉等,持续看好加密数字资产行业并加大对主流数字资产的投资,使得加密数字资产行业从小众(特定的人群)走向更大众,进一步推进数字资产价格的上涨,从而使得 Uniswap 总锁仓量价值大大增加。

第二个原因就是:Uniswap 基础设施越来越完善,使得更多人进入 。比如公链 ETH、TRX、EOS 等性能的提升和 Dapps 数量及用户的数量增加,还有 Cosmos,主要侧重于 DEFI 和去中心化交易所.

第三个原因:WKC意志努力解决区块生态系统的可扩展性和可应用性问题。同时不妥协于去中心化和利用现有的开发社区和生态系统。

量化投资有三大护法:

**1.数学模型:**数理逻辑方法和数学语言建构的科学或工程模型。

**2.计算机技术:**用计算机来进行自动化交易。

**3.投资策略:**运用交易员的交易策略。

接下来,我简单给带大家说明下量化:

量化与量化投资

(1)量化

在了解**"量化投资"这个概念之前,我先解释一下一下“量化”**这个概念。

我们都知道,人在做投资的时候会经常脑袋一热,或是说杀红了眼。会导致我们的投资情绪化,变得不理智。

而由机器人操盘的量化投资,最大的优势在于:在能够杜绝人为的不理智,将策略高效执行。

量化投资的策略

量化投资的策略主要分为3类:量化对冲、多因子选股模型、量化择时。

(1) 量化对冲

简单来说就是通过统计分析然后得出正确的操作方式,实现利润收割。

举个例子

假如一位滴滴司机接到一个从市中心到地铁的单子,

滴滴公司规定呢,1小时内就要到达指定地点,迟到就要罚钱,早到就可以获得奖励。

此时一共有5条路线可供选择

经常跑这条路的司机总会比其他司机早到目的地。

这些老司机就叫做主动选股机构

后来,大家都用导航直接获得最短到达目的地的方式。

“地图”对拥堵程度、红绿灯数量、实际路程进行了量化统计回归,通过这些数据获得最快到达路线。

使用“地图”的这群人就叫做量化选股机构。

在这个例子中:

“量化”指的是使用数据方提供的数据得到最佳的方案。

“对冲”司机通过地图提供的策略,减少了到达时间而挣到的钱。

如果和规定的时间一样,司机就不赚钱;如果比规定的时间长,司机还得亏钱。

在数字货币市场中,平均时间就是市场风险。通过不同交易所价格差进行溢价收割。

“量化对冲”不受市场涨跌的影响,换句话说就是无论市场涨或是跌,它都能在市场中争取一定的金钱。

量化对冲是长期稳定的投资策略,讲究的是细水长流。

简单来说就是各个交易所之间存在一定价格的差价,通过价格低的交易所买入,在价格高的交易所卖出,争取差价。

所以,对于风险承受能力较弱的投资者而言是个不错的选择。

(2)多因子选股模型

具体的选股模型非常复杂,但原理很简单。

多因子选股,就是以多个因子作为参照标准进行选股,这跟我们日常找工作、找房子等等是一个道理,只不过给了一个学术的叫法。

比如找工作的时候,我们要考虑的因子(因素)有:薪资水平、公司发展前景、岗位匹配程度等。

找房子要考虑的因子有:交通配套、小区环境、安全程度等等。

同样,选股的因子也有很多,专家们把这些因子分成四大类

1.技术类:价格、交易量、波动率等;

2.基本面类:价值、成长、公司债务等;

3.研究类:研究报告、目标价格、盈利预测、评级等;

4.其它类:机构持仓、媒体关注等。

因子太多了对不对?不可能全面考虑

所以,专家们就做了一个模型—— 根据因子的权重,进行综合加权考虑,

引入多因子的目的,就是为了让收益更加稳健,波动更少。

找房子时,考虑的因素越多,或许最终选择的就越好;

找工作时,综合权衡后的岗位获取更令你满意。

所以,引入的因子越多,收益就更稳健,收益曲线就越平滑。

(3) 量化择时

有人说,相比选币,择时更重要。

只要是牛市,随便什么币都大涨,当风吹过来的时候,猪都会上天。

择时,不仅困扰着个人投资者,同样也让机构投资者很头疼。

如果说量化选币解决的是超额收益的问题,那么量化择时解决的则是相对收益的问题

而所谓量化择时,则是对各类预测指标的应用,通过分析并得到对市场未来方向的预判

常用的择时方法有:趋势量化、市场情绪化等。

趋势量化:趋势量化是趋势投资的延续,若趋势发生逆转则需要平仓处理。趋势量化需要市场出现了某种趋势之后才可顺势操作。

情绪化量化:利用投资者的热情程度来判断市场方向,当投资者情绪高涨,大家积极入市时,大盘可能会继续涨;当投资设情绪低迷,不断撤出市场时,大盘可能继续下跌。

量化投资的优势

纪律性:严格执行量化投资模型所给出的投资建议,而不是随着投资者情绪的变化而随意更改。纪律性的好处很多,可以克服人性的弱点,如贪婪、恐惧、侥幸心理,也可以克服认知偏差,行为金融理论在这方面有许多论述。

系统性:量化投资的系统性特征主要包括多层次的量化模型、多角度的观察及海量数据的观察等等。多层次模型主要包括大类资产配置模型、行业选择模 型、精选个股模型等等。多角度观察主要包括对宏观周期、市场结构、估值、成长、盈利质量、分析师盈利预测、市场情绪等多个角度的分析。

及时性:及时快速地跟踪市场变化,不断发现能够提供超额收益的新的统计模型,寻找新的交易机会。

准确性:准确客观评价交易机会,克服主观情绪偏差,妥善运用套利的思想。量化投资正是在找估值洼地,通过全面、系统性的扫描捕捉错误定价、错误估值带来的机会。与定性投资经理不同,量化投资经理大部分精力花在分析哪里是估值洼地,哪一个品种被低估了,买入低估的,卖出高估的。

区块链的核心价值在于,提升多方协作效率、去中介、 去中央信任,数据不可篡改、可追溯等。在传统商业模式和制度架构 下,价值创造和转移活动都需要一个集中的体系或机构(银行、结算) 提供信用背书,而在区块链运营机制中,由非对称加密算法的数字签 名保障了交易账户的有效性,交易参与者可以在区块链上凭借数字签 名使用唯一对应的账户进行交易,交易信息被第三方公正角色记录进 区块链永久存储起来,而所有交易记录在按顺次关联的链条式数据库, 保障了交易的可追溯性和防篡改。

区块链作为一种新兴技术,尽管还在不断快速演化发展中, 但本身也不是完美的,特别是应用于证券交易行业时面临以下的局限。 一是全账册存储模式对系统的容量造成挑战。在典型的区块链中, 若要保障记账的准确和完成对记账人的监督,网络中必须存在大量的 全数据节点。这些独立节点上,需要记录该区块链应用初始以来的所 有区块数据,即记录全部成交数据。目前,大型证券机构尤其是核心机构每日产生成百上千 GB 的海量数据,这对保存这些数据所需要的 存储容量造成压力,相应的存储成本和管理成本不容小觑。 二是处理效率难以支持高性能处理需求。

由于采用的分布式存储, 且网络中发生的任何一笔交易其它节点均需进行认证并记录,系统达 成共识的效率低,尤其对于大规模的节点、或者大数据量的情况下性 能会急剧下降,最多支持每秒几千到上万笔处理性能。

对于对处理速 度和实时性要求高的业务,譬如证券交易所股票集中交易撮合来说, 远远达不到目前证券核心交易的近似性能。需要在共识算法、硬件支 持等性能关键的技术手段上获得革命性突破才具有可替代的可能。

三是安全及高可用性。作为一种全电子化网络,区块链不可避免 面临传统的计算机及网络的仿冒、篡改等信息安全风险,同时,在完 全去中心化架构下,由于区块链的监管依靠网络中所有的节点共同完 成,因此理论如果掌握全网超过 51%的算力就有能力成功篡改和伪 造区块链数据。

对于交易中业务,区块链可以使传统交易所的服务时间延展至 7 ×24 小时×365 天全天候不间断,并使物理服务范围扩展至跨地域、 跨境、跨时区,也支持突破分业边界,形成跨行业、板块、机构的多 层次一体化交易基础设施,结算可方便地从每日盘后批处理方式转为 逐笔实时进行

区块链技术当下发展水平和主要特点和优势来看,区块链应用 于交易后处理的更加适宜。世界经济论坛

1)通过下游处理自动化和效率的提高,实现结算 时间的缩短,乃至实现实时结算;

2)交易撮合数据的标准化促进清算效率提高;

3)通过自动验证有利于托管方减少发生对手方风险避 免无法结算;

4)通过使用智能合约实现证券和现金划转,减少发生 手工或技术故障的操作类风险;

5)通过在分布式账册中记录交易确 认,投资者可不依赖于托管方即可收到结算通知;

6)与证券结算系 统解绑定,提高托管方资产保管的灵活性,降低了账户操作复杂度;

7)通过智能合约可发起业务处理,消除对第三方中介的需求。

X 发布名为“分布式账册的交易撮合处理应用研 究”报告,其中讨论了将分布式账册技术应用于机构间交易撮合的可 行性。其中,东交所机构间交易撮合传统处理方式如图(a)所示, 其中卖方机构向买方机构发送订单执行的情况(交易确认),包括相 应的佣金。作为响应,买方输入在账户(二级账户)中分配的结果,并将结果返回给卖方。卖方根据分配结果对佣金分仓,并将该结果返回给买方。如果双方的数据匹配无误,则撮合成功。之后,买卖双方 使用日托管结算(JASDEC PSMS)提供的交易撮合规程,提 交(达成交易的)合约数据。一旦受托银行确认交易结果,会自动产 生双向结算数据。双方的撮合匹配是按照常行结算 SSI (standing settlement instruction)级别。

作为结果,一个 DVP 结算自动生成并随 之进行系统化结算处理。图(b)是使用 DLT 重构此过程的处理方式。 买卖双方在事前均就佣金计算表和计算逻辑达成共识,形成 DLT 上 的一系列智能合约,佣金可以被自动计算。

买卖双方都无需自行计算 佣金,发生错配的几率大大降低。SSI 以最终分配账户为粒度执行, 使得受托银行可按照每 SSI 的方式访问 DLT 上的合约数据,买卖双 方的信息交换效率更高。此外,当单个基金与多卖方交易时,受托银 行可以按照单个基金为操作粒度整合所有交易的信息。

如果 DLT 的 合约数据被认为正确,与日本中央托管结算的集成链接,将使买方与 中央托管结算之间传输操作指令数据的必要性不复存在。

其发展分为 6 个阶段:

1)代币化新币。推出可用于跨 行支付的数字化货币:参与方银行将现钞存放在央行的托管账户,央 行在分布式账册上为参与方银行生成等值的数字货币,相应银行一旦 收到央行代币转账,即可对其自由支付或转账,该阶段已于 2016 年 底完成;

2)实现基于分布式账册技术的实时跨行转账,该阶段验证也已完成;

3)实现基于分布式账册的 DVP,进行跨不同区块链平台 的互联互通,该阶段自 2018 年起至今;

4)实现跨境 DVP;

5)对运 营模式定位,包括评估分布式账册对于现行监管框架和业务处理流程 的影响;

6)实现跨境支付和证券结算。 新加坡交易所在该项目中,主要负责利用分布式账册技术开发面 向代币化资产的 DVP 业务,以提升 DVP 的跨账册互操作性和处理效 率,使全结算周期可从 T+3 缩短至 T+2 甚至更短。

如图所示,为提 供跨现货账册和证券账册的交互,该系统与纳斯达克相关系统类似, 也采用了分层的体系结构,分别由安泉资本、德勤和纳斯达克等不同 的技术供应商实现不同层级的原型交互系统。

各层的原型交互系统由 供应商的商用系统构建,根据采用的具体技术实现向上层提供不同性 能和功能的互联互通。其中纳斯达克和德勤主要负责实现基于集中式 订单簿撮合的工作流,安泉资本主要负责实现基于 OTC 的工作流。 基于智能合约的 DVP 确保了流程中权力和责任的一致性和完整性, 减少了市场整体的信任成本。交易所作为一个 RMO(认证市场运营 人)和仲裁人,负责监察和维护市场正常功能。现货账册是由央行维 护的数字化新币资产账册,证券账册是由交易所维护的代币化证券资 产(如国债、CDR)账册。

将区块链应用于场外交易系统可以具有以下

优势:

一是可以保证场外交易的真实性、不被篡改,便于看穿和追踪, 并降低传统 CCP 登记、信用担保、强制执行的成本,有效控制风险;

二是通过智能合约实现实时的自动信任建立、交易、清算和结算,简 化场外发行和交易流程,提升交易效率;

三是利用区块链构建监管节 点,可以针对特定主体、产品、交易者和规模等,设定定制的监管方 式和手段,使得监管更加有效和智能。

基于区块链的以上优点和交易所在市场组织方面的天然优势,不 少境外交易所着手开发基于区块链的场外交易平台,一是提供场外清 算或场外交易的电子化平台;二是建立交易集中登记及托管平台。

交易中的区块链交易所开发机构生态图谱。

交易者可以分为四类
在深度剖析比特币生态系统前,让我们一起来看看市场上有哪几类直接参与交易的用户。

大多数人都是个人投资者,可分为两类:

  1. 小鱼(Small fishes)

指的是小型零售客户,通常用本国法币和比特币等加密货币进行兑换交易。他们主要承担“吃单”(Taker)角色,对买卖之间的点差(spread)和交易中的费用并不是特别关心。这就是“小鱼”。

  1. 大鱼(Bigger fishes)

同样是散户,有些人比较特殊,对价格非常敏感,而且刻意寻求点差和费率低的交易平台。他们通常在不同的交易所都开设了账户,日常交易非常活跃。这就是“大鱼”。交易所间围绕着这些“大鱼”,进行着十分激烈的竞争,市场营销费用高企。机构投资者,根据其属于加密金融还是传统金融界,也分为两类:

  1. 普通鲸鱼(Crypto whales)

通常我们听到的“鲸鱼”就是这类植根加密货币的机构投资者。他们寻求的是最好的流动性和最低的延迟,穿梭于不同平台间,非常乐意“引领”市场方向,以加密货币作为头号资产。他们既会自己交易,也会委托经纪商操作;既活跃在交易所,也现身在OTC平台;此外还会使用加密原生衍生品交易平台来执行更为复杂专业的操作。

  1. 穿正装的鲸鱼(Whale in suits)

另一类机构投资者来自传统金融行业,受到的限制更多。除了加密货币,他们还投资了众多不同类型资产,因此更倾向于选择自己熟悉的平台,这样才能满足严苛的监管要求。当然,他们也对低延迟和强技术有很高要求。他们会出现在完全合规的高流动性平台上,如LMAX Digital交易所、芝加哥商品交易所(CME),甚至是Coinbase。

这两类机构玩家在交易比特币时操作差不多,最大的区别体现在由于技术和合规要求,在进入交易所时选的策略。

2.机构扮演了什么角色

区块链交易所开发生态图,其中详细阐述了这个生态系统里,托管方、借贷方、银行、交易所、投资者各自的角色和作用。

生态系统里的各方参与者相互勾连,一家公司可能会承担好几个不同角色,例如Coinbase就既做交易所也做托管。面向散户的交易所也会向机构寻求流动性,有些传统支付工具也会从经纪商处获取流动性,从而支持加密货币交易功能。银行有时也会提供托管服务。下面依次介绍八类参与者的角色。

1. 做市商/流动性提供者

金融市场的灵魂就是流动性,这就赋予了做市商/流动性提供者(market maker/liquidity provider)特殊的使命。

没有做市商,加密货币市场就会像股市一样出现雪崩。2017年的暴跌使Coinbase出现闪崩,为此还向投资者赔偿了数百万美元。

由于成交价是各交易所单独形成的,因此加密货币的套利空间更大,也更容易出现混乱。做市商的目的,就是创秩序于无序间,通过人为买卖填充订单薄,从而稳住市场情绪。

在行业早期,订单薄挂单数量很少,这就导致了每笔成交会对价格变动带来很大波动。,这一问题有了明显改观,主要体现在买卖点差不断缩小的趋势中。

比特币自2019年7月以来的每月现货、衍生品交易量对比图。绿色为现货,黑色为衍生品。来源:CryptoCompare

衍生品交易所一共分为两类:

第一类是离岸的、未受规管的衍生品交易所。这类交易所的KYC(了解你的客户)通常不是很严,任何人无论贫富,无论是小白还是家财万贯的鲸鱼,都可以体验保证金交易。保证金比例最低仅需1%。

第二类是接受严格监管的合规衍生品交易所。客户都是认证过的投资者,每笔合约要投至少5枚比特币,保证金比例高达40%。

离岸交易所的优势是注册方便、入金限制少,即使是很小的资金也可以体验,因而吸引了全球众多散户参与,交易量十分庞大。主要代表有币安和Bybit。仅币安一家就承接了35%的衍生品交易量。

当然,离岸交易所的劣势也很明显:由于限制少,散户经不起诱惑,经常玩过高杠杆,把风险扩大了很多倍。爆仓清算变成了家常便饭,就像是打开了潘多拉的魔盒一样。

监管部门显然早就盯上了这些离岸交易所,不想让它们成为“法外之地”。

美国商品期货交易委员会(CFTC)和司法部(DOJ)在2020年10月就指控BitMEX非法运营衍生品平台,向美国公民提供交易服务;币安、FTX等交易所今年7月也纷纷表态,将最高杠杆比例从100倍降到20倍,并强调杠杆交易并不是加密货币生态的主流。

合规交易所解决了离岸交易所的问题,但也带来了覆盖面过窄的劣势。普通人很难接触到他们的比特币期货产品。

最大的合规衍生品交易所就是芝加哥商品交易所(CME),他们以现金结算期货,而且有交易时间限制,只在每周日下午5点到周五下午4点开放交易,每天下午4点后统一休市一小时。相比之下,比特币现货是7x24随时可交易的,流动性明显强于芝商所的比特币期货。2017年12月,芝加哥期权交易所(CBOE)也曾宣布推出比特币期货,但在2019年6月之后就彻底退出了。目前第二类交易所最大的就是芝商所。

芝商所的主要流动性提供者包括Akuna Capital、B2C2、BlockFi、Cumberland、Galaxy Digital、Genesis、NYDIG等。

6. 其它投资工具

灰度基金,以及它的竞品ETF也是生态系统重要成员。投资这类基金,可以享受税收优惠。

过去一年半,它们发展非常迅猛,累计吸收了80万枚比特币。

灰度和ETF走的是不同路线。同样是基金,灰度是封闭式的,在美国OTCQX交易所交易,只有符合条件的投资者可以参与。在一级市场上入金灰度,可以用比特币实物,也可以用法币现金。基金份额可以在二级市场上转让,但由于缺乏赎回机制,灰度基金的价格和比特币市价经常会出现折价或者溢价的现象。

ETF是居于开放式和封闭式之间的特殊基金,既可以在交易所上市,也可以自由申赎,流程灵活便利使得ETF追踪价格和比特币市价差距很小。

由于赎回的需求,比特币ETF必须留出合理的流动性渠道,定期保证比特币持仓平衡。因此比特币基金和经纪商、OTC柜台也保持着密切联系,以完成现金和比特币之间的顺畅兑换。

加拿大在比特币、以太坊ETF上相对开放,美国机构就没有这么幸运了。很多机构都向美SEC递交了申请,其中包括Fidelity、NYDIG、Galaxy Digital、天桥基金、VanEck、Valkyrie、Wisdom Trust等,但SEC至今未通过任何一只ETF,最近的回应多是“推迟答复”。

7. 托管

Trezor和Ledger最先提供硬件钱包服务,用户可以用小型USB设备存储自己的加密货币。后来出现了Casa,提供高端会员服务如多重签名恢复比特币访问、多个硬件异地备份,避免单一私钥丢失带来的灾难。

交易所也在为重要客户提供托管服务,例如Coinbase就设立了独立实体Coinbase Custody,资产与交易所相隔离,专门接受用户委托保管加密货币。Gemini随后跟进,并且斥资2亿美元为托管的加密货币上了保险,号称要做“世界上保险覆盖面最广的托管商”。

作为全球最负盛名的机构之一,Fidelity早在2014年就开始研究区块链技术,并且在2018年成立了数字资产子公司Fidelity Digital Assets,一年后推出托管方案。具体业绩从未公开,但CEO很自信的表示这项业务取得了“不可思议的成功”。

传统信托服务商也想分杯羹。托管资产超41万亿美元的纽约梅隆银行(BNY Mellon)今年2月放出消息,准备在下半年上线托管服务,计划针对不同客户提供不同服务,例如物理隔离冷储藏,把钱包存到瑞士深山的废弃军事地堡里;安全多方计算(MPC)数学模型;硬件安全组件(HSM),在计算机中增加扩展卡负责加密解密运算。

借贷市场的主要客户是做市商。主要提供者有Genesis和BlockFi,其中Genesis只服务机构客户,BlockFi同时也服务个人客户。此外,传统机构也在开展别样的借贷服务。Silvergate作为传统银行,同Fidelity开展合作,通过SEN支付网络向机构提供美元法币资金贷款。这一过程中客户质押的比特币由Fidelity单独保管。

  1. 机构最看重哪些因素

通过与生态系统中银行、基金、资管公司、高频交易系统、自营交易公司交流,Arcane总结了机构投资比特币的心态特征,主要体现在三个方面:

  1. 选交易平台:靠谱最重要

最看重的三个因素:第一,技术可靠,要100%正常运行,不允许出现宕机;第二,有流动性深度;第三,低延迟,交易情况清楚明白。

此外还会考虑以下因素:手续费要有优惠;交易合规、声誉良好,币要安全;可以通过API进行充提操作;允许使用稳定币;提供日内杠杆融资交易;提供法币通道等。

2. 选托管方:安全至上

研究发现,近半数的机构都直接选择了交易平台进行托管。此外最常见的三种托管方案是:离线、机构级、多重签名托管;传统托管专业机构;无主钱包。

至于选择时的考量因素,排第一的毫无疑问是安全性,此后依次为可触性、便利性,以及同交易所关联的能力。

3. 选基础设施:沟通现实金融

基础设施的完善是机构持有投资比特币的前提。受访机构大多认为,目前最需要加强的基础设施主要体现在同银行、信用体系的对接上。

具体而言,银行、基金和资管机构最渴望提升银行、信用基础设施,经纪商最渴望提升银行基础设施,普通公司希望加强银行和合规服务,而自营交易公司和高频交易公司最希望加强信用体系建设。

新时代”

最近总有人感到非常乐观,觉得区块链交易所开发金融市场行为已经进入了一个从机构驱动到散户、网红和流量驱动的新时代。

确实,散户和网络消息的影响在不断扩大。“游戏驿站”运动中,散户通过Reddit鼓动社交媒体情绪,让做空游戏驿站股票的华尔街机构屈服。

这也让币圈的散户兴奋不已,想要模仿游戏驿站的成功。狗狗币大军尤为突出,号称要在今年4月20日搞事情,让狗狗币冲上1美元。

但最后,他们的豪言依然以失败告终,狗狗币当天反而从0.4美元价位退回到0.3美元关口。

归根到底,巨量资金和专业投资技术就决定了机构仍将是任何金融市场的主宰,其作用绝对不能被忽视。

健康的交易生态,必然是能让个人投资者和机构投资者互利共赢的。缺少任何一方的参与,都不足成为“生态”。

区块链交易所开发的新时代,既在机构化,也在散户化。

比特币是基于区块链分布式记账技术的虚拟货 币中最早出现同时也是最有代表性的虚拟货币形 式,了解比特币的设计初衷以及特征有助于我们理解该过程的产生原因和表现特征,因此以下本文将 以比特币为例进行进一步说明. 比特币是由中本聪在2008年提出的一种虚拟 货币形式,其实质是一种完全通过点对点技术实现 的电子现金系统,中本聪设计比特币的初衷正是为 了解决本章第一节中所提出的、中心化虚拟货币所 面临的若干问题.比特币的出现使得去中心化的虚 拟货币形式成为了可能,而它的特征和优越性体现 在以下两个方面: 首先,从虚拟货币发行的角度看,比特币没有特 定的发行机构,由区块链程序自动发行且总量恒定, 因此可以很大程度上避免虚拟货币的超量发行所引 起的通货膨胀;而电子货币是由银行或第三方支付 机构发行的,然而由于它与法币在某种程度上可以 自由转换,因此其总量理论上取决于央行发行的法 币数量,而央行存在超发法币的可能性,因此它也存 在通货膨胀的风险. 其次,从虚拟货币转移的角度看,二者的交易网 络和交易过程[39]如图2所示,电子货币网络呈中心 化结构,而比特币网络则是分布式结构.电子货币 的交易过程需要银行介入,交易过程由银行记录;

比 特币可以实现点对点的交易,交易过程由区块链记 账节点记录,从而避免了中心机构的介入,从而实现 降低交易成本,提高交易效率等目的. 最后,虚拟货币的该演变过程的意义在于,区块 链的出现使得虚拟货币在一定程度上摆脱了冗余、 落后的由中心化机构操控的模式,从而进入了更简 洁、更先进的虚拟货币模式.随着虚拟货币的使用 范围越来越广,人们对于简化交易流程以及交易透 明性的需求会越来越高,基于区块链分布式记账技 术虚拟货币将会受到越来越多的关注.

只有通过有意义的内容,共建价值生态,才能让行业更有价值。本身建立了严苛的内容控制制度,目前 90% 内容都由平台自己生产,少部分从授权作者库中筛选优质内容展示,目的就是在为用户提供及时的内容阅读体验时,也不丢失内容的严谨和客观。杜绝吹嘘、浮夸等不良内容。

整个产业环境的发展。很多区块链的商业模式取决于链上数字化资产和链下传统资产的对应,这个很难做到,并且链上资产缺少信息透明度,用户了解的门槛也过高。

创建一个数字货币跨期套利策略

难易度:普通级

策略环境

  • 交易标的:以太经典(ETC)

  • 价差数据:ETC 当周 - ETC 季度(省略协整性检验)

  • 交易周期:5 分钟

  • 头寸匹配:1:1

  • 交易类型:同品种跨期

策略逻辑

  • 做多价差开仓条件:如果当前账户没有持仓,并且价差小于 boll 下轨,就做多价差。即:买开 ETC 当周,卖开 ETC 季度。

  • 做空价差开仓条件:如果当前账户没有持仓,并且价差大于 boll 上轨,就做空价差。即:卖开 ETC 当周,买开 ETC 季度。

  • 做多价差平仓条件:如果当前账户持有 ETC 当周多单,并且持有 ETC 季度空单,并且价差大于 boll 中轨,就平多价差。即:卖平 ETC 当周,买平 ETC 季度。

  • 做空价差平仓条件:如果当前账户持有 ETC 当周空单,并且持有 ETC 季度多单,并且价差小于 boll 中轨,就平空价差。即:买平 ETC 当周,卖平 ETC 季度。

上面是一个简单的数字货币跨期套利策略逻辑描述,那么如何在程序中实现自己的想法呢?我们试着在发明者量化交易平台先把框架搭建起来。

/*
全局变量
*/

// 基础数据
function Data(tradeTypeA, tradeTypeB) {}

// 获取持仓
Data.prototype.mp = function (tradeType, type) {}

// 合成新K线数据和boll指标数据
Data.prototype.boll = function (num, timeCycle) {}

// 下单
Data.prototype.trade = function (tradeType, type) {}

// 取消订单
Data.prototype.cancelOrders = function () {}

// 处理持有单个合约
Data.prototype.isEven = function () {}

// 画图
Data.prototype.drawingChart = function (boll) {}

// 交易条件
function onTick() {
var data; // 获取基础数据对象
data.accountData.Stocks; // 获取账户余额
data.boll; // 获取boll指标数据
data.mp; // 获取持仓状态
data.cancelOrders(); // 撤单
data.drawingChart(boll); // 画图
data.isEven(); // 处理持有单个合约
}

//入口函数
function main() {
/*
交易策略预处理
*/
while (true) { // 进入轮询模式
onTick(); // 执行onTick函数
Sleep(500); // 休眠0.5秒
}
}

对照着策略思路以及交易流程,可以很轻松把策略框架搭建起来。整个策略可以简化为三个步骤:

  1. 交易前预处理。

  2. 获取并计算数据。获取并计算数据。

  3. 下单并对后续处理。下单并对后续处理。

接下来,我们就需要根据实际交易流程和交易细节,在策略框架里面填充必要的细节代码。

第1步:在全局环境中,声明必要的全局变量。

  • 声明一个配置图表的 chart 对象 var chart = { }

  • 调用 Chart 函数,初始化图表 var ObjChart = Chart ( chart )

  • 声明一个空数组,用来存储价差序列 var bars = [ ]

  • 声明一个记录历史数据时间戳变量 var oldTime = 0

第2步:配置策略的外部参数。

第3步:定义数据处理函数

基础数据函数:Data ( )

创建一个构造函数 Data,并定义它的内部属性。包括:账户数据、持仓数据、K线数据时间戳、套利A/B合约的买/卖一价、正/反套价差。

// 基础数据
function Data(tradeTypeA, tradeTypeB) { // 传入套利A合约和套利B合约
this.accountData = _C(exchange.GetAccount); // 获取账户信息
this.positionData = _C(exchange.GetPosition); // 获取持仓信息
var recordsData = _C(exchange.GetRecords); //获取K线数据
exchange.SetContractType(tradeTypeA); // 订阅套利A合约
var depthDataA = _C(exchange.GetDepth); // 套利A合约深度数据
exchange.SetContractType(tradeTypeB); // 订阅套利B合约
var depthDataB = _C(exchange.GetDepth); // 套利B合约深度数据
this.time = recordsData[recordsData.length - 1].Time; // 获取最新数据时间
this.askA = depthDataA.Asks[0].Price; // 套利A合约卖一价
this.bidA = depthDataA.Bids[0].Price; // 套利A合约买一价
this.askB = depthDataB.Asks[0].Price; // 套利B合约卖一价
this.bidB = depthDataB.Bids[0].Price; // 套利B合约买一价
// 正套价差(合约A卖一价 - 合约B买一价)
this.basb = depthDataA.Asks[0].Price - depthDataB.Bids[0].Price;
// 反套价差(合约A买一价 - 合约B卖一价)
this.sabb = depthDataA.Bids[0].Price - depthDataB.Asks[0].Price;
}

获取持仓函数:mp ( )

遍历整个持仓数组,返回指定合约、指定方向的持仓数量,如果没有就返回 false

K线和指标函数:boll ( )

根据正/反套价差数据,合成新的K线序列。并返回由boll指标计算的上轨、中轨、下轨数据。

下单函数:trade ( )

传入下单合约名称和下单类型,然后以对价下单,并返回下单后的结果。由于需要同时下两个不同方向的单子,所以在函数内部根据下单合约名称对买/卖一价做了转换。

取消订单函数:cancelOrders ( )

获取所有未成交订单数组,并逐个取消。并且如果有未成交的订单就返回false,如果没有未成交的订单就返回true。

处理持有单个合约:isEven ( )

在处理套利交易中出现单腿情况,这里直接用简单的平掉所有仓位处理。当然,也可以改为追单方式

画图函数:drawingChart ( )

调用 ObjChart.add ( ) 方法,在图表中画出必要的行情数据和指标数据:上轨、中轨、下轨、正/反套价差。

第4步:在入口函数 main ( ) 里面,执行交易前预处理代码,这些代码在程序启动后,只运行一次。包括:

  • 过滤控制台中不是很重要的信息 SetErrorFilter ( )

  • 设置要交易的数字货币币种 exchange.IO ( )

  • 程序启动前清空之前绘制的图表 ObjChart.reset ( )

  • 程序启动前清空之前的状态栏信息 LogProfitReset ( )

定义完上述的交易前预处理,紧接着就要进入下一个步骤,进入轮询模式,重复执行 onTick ( ) 函数。

并设置 Sleep ( ) 轮询时的休眠时间,因为部分数字货币交易所的 API 对一定时间内内置了访问次数限制。

//入口函数
function main() {
// 过滤控制台中不是很重要的信息
SetErrorFilter("429|GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout|Futures_OP");
exchange.IO("currency", name + '_USDT'); //设置要交易的数字货币币种
ObjChart.reset(); //程序启动前清空之前绘制的图表
LogProfitReset(); //程序启动前清空之前的状态栏信息
while (true) { // 进入轮询模式
onTick(); // 执行onTick函数
Sleep(500); // 休眠0.5秒
}
}

第1步:获取基础数据对象、账户余额、boll 指标数据,以供交易逻辑使用。

3.下单

第1步:根据上述的策略逻辑,执行买卖操作。首先会判断价格和指标条件是否成立,然后再判断持仓条件是否成立,最后执行 trade ( ) 下单函数

第2步:下单完成后,需要对未成交的订单、持有单个合约等非正常情况做处理。以及绘制图表。

// 交易条件
function onTick() {
var data = new Data(tradeTypeA, tradeTypeB); // 创建一个基础数据对象
var accountStocks = data.accountData.Stocks; // 账户余额
var boll = data.boll(dataLength, timeCycle); // 获取boll指标数据
if (!boll) return; // 如果没有boll数据就返回
// 价差说明
// basb = (合约A卖一价 - 合约B买一价)
// sabb = (合约A买一价 - 合约B卖一价)
if (data.sabb > boll.middle && data.sabb < boll.up) { // 如果sabb高于中轨
if (data.mp(tradeTypeA, 0)) { // 下单前检测合约A是否有多单
data.trade(tradeTypeA, "closebuy"); // 合约A平多
}
if (data.mp(tradeTypeB, 1)) { // 下单前检测合约B是否有空单
data.trade(tradeTypeB, "closesell"); // 合约B平空
}
} else if (data.basb < boll.middle && data.basb > boll.down) { // 如果basb低于中轨
if (data.mp(tradeTypeA, 1)) { // 下单前检测合约A是否有空单
data.trade(tradeTypeA, "closesell"); // 合约A平空
}
if (data.mp(tradeTypeB, 0)) { // 下单前检测合约B是否有多单
data.trade(tradeTypeB, "closebuy"); // 合约B平多
}
}
if (accountStocks * Math.max(data.askA, data.askB) > 1) { // 如果账户有余额
if (data.basb < boll.down) { // 如果basb价差低于下轨
if (!data.mp(tradeTypeA, 0)) { // 下单前检测合约A是否有多单
data.trade(tradeTypeA, "buy"); // 合约A开多
}
if (!data.mp(tradeTypeB, 1)) { // 下单前检测合约B是否有空单
data.trade(tradeTypeB, "sell"); // 合约B开空
}
} else if (data.sabb > boll.up) { // 如果sabb价差高于上轨
if (!data.mp(tradeTypeA, 1)) { // 下单前检测合约A是否有空单
data.trade(tradeTypeA, "sell"); // 合约A开空
}
if (!data.mp(tradeTypeB, 0)) { // 下单前检测合约B是否有多单
data.trade(tradeTypeB, "buy"); // 合约B开多
}
}
}
data.cancelOrders(); // 撤单
data.drawingChart(boll); // 画图
data.isEven(); // 处理持有单个合约
}

以上,我们通过 200 多行,就把一个简单的数字货币跨期套利策略完完整整的创建出来。完整的代码如下:

// 全局变量
// 声明一个配置图表的 chart 对象
var chart = {
__isStock: true,
tooltip: {
xDateFormat: '%Y-%m-%d %H:%M:%S, %A'
},
title: {
text: '交易盈亏曲线图(详细)'
},
rangeSelector: {
buttons: [{
type: 'hour',
count: 1,
text: '1h'
}, {
type: 'hour',
count: 2,
text: '3h'
}, {
type: 'hour',
count: 8,
text: '8h'
}, {
type: 'all',
text: 'All'
}],
selected: 0,
inputEnabled: false
},
xAxis: {
type: 'datetime'
},
yAxis: {
title: {
text: '价差'
},
opposite: false,
},
series: [{
name: "上轨",
id: "线1,up",
data: []
}, {
name: "中轨",
id: "线2,middle",
data: []
}, {
name: "下轨",
id: "线3,down",
data: []
}, {
name: "basb",
id: "线4,basb",
data: []
}, {
name: "sabb",
id: "线5,sabb",
data: []
}]
};
var ObjChart = Chart(chart); // 画图对象
var bars = []; // 存储价差序列
var oldTime = 0; // 记录历史数据时间戳

// 参数
var tradeTypeA = "this_week"; // 套利A合约
var tradeTypeB = "quarter"; // 套利B合约
var dataLength = 10; //指标周期长度
var timeCycle = 1; // K线周期
var name = "ETC"; // 币种
var unit = 1; // 下单量

// 基础数据
function Data(tradeTypeA, tradeTypeB) { // 传入套利A合约和套利B合约
this.accountData = _C(exchange.GetAccount); // 获取账户信息
this.positionData = _C(exchange.GetPosition); // 获取持仓信息
var recordsData = _C(exchange.GetRecords); //获取K线数据
exchange.SetContractType(tradeTypeA); // 订阅套利A合约
var depthDataA = _C(exchange.GetDepth); // 套利A合约深度数据
exchange.SetContractType(tradeTypeB); // 订阅套利B合约
var depthDataB = _C(exchange.GetDepth); // 套利B合约深度数据
this.time = recordsData[recordsData.length - 1].Time; // 获取最新数据时间
this.askA = depthDataA.Asks[0].Price; // 套利A合约卖一价
this.bidA = depthDataA.Bids[0].Price; // 套利A合约买一价
this.askB = depthDataB.Asks[0].Price; // 套利B合约卖一价
this.bidB = depthDataB.Bids[0].Price; // 套利B合约买一价
// 正套价差(合约A卖一价 - 合约B买一价)
this.basb = depthDataA.Asks[0].Price - depthDataB.Bids[0].Price;
// 反套价差(合约A买一价 - 合约B卖一价)
this.sabb = depthDataA.Bids[0].Price - depthDataB.Asks[0].Price;
}

// 获取持仓
Data.prototype.mp = function (tradeType, type) {
var positionData = this.positionData; // 获取持仓信息
for (var i = 0; i < positionData.length; i++) {
if (positionData[i].ContractType == tradeType) {
if (positionData[i].Type == type) {
if (positionData[i].Amount > 0) {
return positionData[i].Amount;
}
}
}
}
return false;
}

// 合成新K线数据和boll指标数据
Data.prototype.boll = function (num, timeCycle) {
var self = {}; // 临时对象
// 正套价差和反套价差中间值
self.Close = (this.basb + this.sabb) / 2;
if (this.timeA == this.timeB) {
self.Time = this.time;
} // 对比两个深度数据时间戳
if (this.time - oldTime > timeCycle * 60000) {
bars.push(self);
oldTime = this.time;
} // 根据指定时间周期,在K线数组里面传入价差数据对象
if (bars.length > num * 2) {
bars.shift(); // 控制K线数组长度
} else {
return;
}
var boll = TA.BOLL(bars, num, 2); // 调用talib库中的boll指标
return {
up: boll[0][boll[0].length - 1], // boll指标上轨
middle: boll[1][boll[1].length - 1], // boll指标中轨
down: boll[2][boll[2].length - 1] // boll指标下轨
} // 返回一个处理好的boll指标数据
}

// 下单
Data.prototype.trade = function (tradeType, type) {
exchange.SetContractType(tradeType); // 下单前先重新订阅合约
var askPrice, bidPrice;
if (tradeType == tradeTypeA) { // 如果是A合约下单
askPrice = this.askA; // 设置askPrice
bidPrice = this.bidA; // 设置bidPrice
} else if (tradeType == tradeTypeB) { // 如果是B合约下单
askPrice = this.askB; // 设置askPrice
bidPrice = this.bidB; // 设置bidPrice
}
switch (type) { // 匹配下单模式
case "buy":
exchange.SetDirection(type); // 设置下单模式
return exchange.Buy(askPrice, unit);
case "sell":
exchange.SetDirection(type); // 设置下单模式
return exchange.Sell(bidPrice, unit);
case "closebuy":
exchange.SetDirection(type); // 设置下单模式
return exchange.Sell(bidPrice, unit);
case "closesell":
exchange.SetDirection(type); // 设置下单模式
return exchange.Buy(askPrice, unit);
default:
return false;
}
}

// 取消订单
Data.prototype.cancelOrders = function () {
Sleep(500); // 撤单前先延时,因为有些交易所你懂的
var orders = _C(exchange.GetOrders); // 获取未成交订单数组
if (orders.length > 0) { // 如果有未成交的订单
for (var i = 0; i < orders.length; i++) { //遍历未成交订单数组
exchange.CancelOrder(orders[i].Id); //逐个取消未成交的订单
Sleep(500); //延时0.5秒
}
return false; // 如果取消了未成交的单子就返回false
}
return true; //如果没有未成交的订单就返回true
}

// 处理持有单个合约
Data.prototype.isEven = function () {
var positionData = this.positionData; // 获取持仓信息
var type = null; // 转换持仓方向
// 如果持仓数组长度余2不等于0或者持仓数组长度不等于2
if (positionData.length % 2 != 0 || positionData.length != 2) {
for (var i = 0; i < positionData.length; i++) { // 遍历持仓数组
if (positionData[i].Type == 0) { // 如果是多单
type = 10; // 设置下单参数
} else if (positionData[i].Type == 1) { // 如果是空单
type = -10; // 设置下单参数
}
// 平掉所有仓位
this.trade(positionData[i].ContractType, type, positionData[i].Amount);
}
}
}

// 画图
Data.prototype.drawingChart = function (boll) {
var nowTime = new Date().getTime();
ObjChart.add([0, [nowTime, boll.up]]);
ObjChart.add([1, [nowTime, boll.middle]]);
ObjChart.add([2, [nowTime, boll.down]]);
ObjChart.add([3, [nowTime, this.basb]]);
ObjChart.add([4, [nowTime, this.sabb]]);
ObjChart.update(chart);
}

// 交易条件
function onTick() {
var data = new Data(tradeTypeA, tradeTypeB); // 创建一个基础数据对象
var accountStocks = data.accountData.Stocks; // 账户余额
var boll = data.boll(dataLength, timeCycle); // 获取boll指标数据
if (!boll) return; // 如果没有boll数据就返回
// 价差说明
// basb = (合约A卖一价 - 合约B买一价)
// sabb = (合约A买一价 - 合约B卖一价)
if (data.sabb > boll.middle && data.sabb < boll.up) { // 如果sabb高于中轨
if (data.mp(tradeTypeA, 0)) { // 下单前检测合约A是否有多单
data.trade(tradeTypeA, "closebuy"); // 合约A平多
}
if (data.mp(tradeTypeB, 1)) { // 下单前检测合约B是否有空单
data.trade(tradeTypeB, "closesell"); // 合约B平空
}
} else if (data.basb < boll.middle && data.basb > boll.down) { // 如果basb低于中轨
if (data.mp(tradeTypeA, 1)) { // 下单前检测合约A是否有空单
data.trade(tradeTypeA, "closesell"); // 合约A平空
}
if (data.mp(tradeTypeB, 0)) { // 下单前检测合约B是否有多单
data.trade(tradeTypeB, "closebuy"); // 合约B平多
}
}
if (accountStocks * Math.max(data.askA, data.askB) > 1) { // 如果账户有余额
if (data.basb < boll.down) { // 如果basb价差低于下轨
if (!data.mp(tradeTypeA, 0)) { // 下单前检测合约A是否有多单
data.trade(tradeTypeA, "buy"); // 合约A开多
}
if (!data.mp(tradeTypeB, 1)) { // 下单前检测合约B是否有空单
data.trade(tradeTypeB, "sell"); // 合约B开空
}
} else if (data.sabb > boll.up) { // 如果sabb价差高于上轨
if (!data.mp(tradeTypeA, 1)) { // 下单前检测合约A是否有空单
data.trade(tradeTypeA, "sell"); // 合约A开空
}
if (!data.mp(tradeTypeB, 0)) { // 下单前检测合约B是否有多单
data.trade(tradeTypeB, "buy"); // 合约B开多
}
}
}
data.cancelOrders(); // 撤单
data.drawingChart(boll); // 画图
data.isEven(); // 处理持有单个合约
}

//入口函数
function main() {
// 过滤控制台中不是很重要的信息
SetErrorFilter("429|GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout|Futures_OP");
exchange.IO("currency", name + '_USDT'); //设置要交易的数字货币币种
ObjChart.reset(); //程序启动前清空之前绘制的图表
LogProfitReset(); //程序启动前清空之前的状态栏信息
while (true) { // 进入轮询模式
onTick(); // 执行onTick函数
Sleep(500); // 休眠0.5秒
}
}

策略只是一个抛砖引玉,真实的模拟实盘可不是这么简单,不过你可以照着例子发挥自己天马行空的想象。

需要提醒大家的是,以我有限的经验来看,目前的数字货币市场状况,纯粹的期期套利策略基本上全部不值得跑,不论是无风险的三角套利还是跨市场套利。

交易机器人只需配置交易参数即可自动执行买卖,相比于人工交易,区块链交易所开发使用提供的交易机器人还具有如下优势:

  • 使用门槛低。HXR Trade 提供的交易机器人基于云服务,不需要编程知识,也无须部署服务器和安装软件,随时配置随时运行

  • 策略自动执行,克服人性贪婪。机器人会一直按照计划进行交易,无惧贪婪恐惧,不会错过交易机会

  • 机器人不会休息。加密市场永不休市,机器人可以做到一次配置 24/7 交易来赚取收益

  • 精准控制交易。市场变化时随时编辑机器人,在交易不佳时帮助机器人,编辑活跃交易和以市场价格平仓等

机器人进行交易的时候,我们不会无限加仓,每次加仓倍数也不一定是 2 倍,这都是非常灵活的。如下图所示,这个机器人设置的最大加仓次数(最大补单次数)是 5 次,每次投资金额是上次的 1.33 倍。

机器人能够在现货市场和期货市场做多做空,不管在熊市,牛市还是震荡市场都拥有不俗的盈利能力。

会挑选出表现优秀的机器人,实时展示机器人完整信息。你可以选择直接复制机器人,或者参考来创建不一样的机器人。

通过 API 与交易所连接,进行加密资产的追踪与交易。

绑定 FTX 交易所 API ,一共需要两步。

第一步:在 FTX 交易所生成 API ;

第二步:在 HXR Trade 进行 API 绑定;

展示了你当前所有资产的总价值及总利润情况,可以直接反应你当前的投资组合是盈利还是亏损的,字段说明:

  • 总权益:统计所有已绑定交易所资产的美元价值

  • 今日利润:今日利润 = 当前权益 - 今日初始权益 + 今日转出 - 今日转入

  • 今日收益率:今日收益率 = 今日利润 /(今日初始权益 + 今日转入)* 100%

  • 总利润:选定日期范围总利润,总利润 = 当前权益 - 初始权益 + 累计转出 - 累计转入,默认统计最近 30 日的,你可以在图表上方切换

  • 累计收益率:选定日期范围累计收益率,累计收益率 = 总利润 /(初始权益 + 累计转入)* 100%

  • 预估年化:预估年化 = [ ( 1 + 累计收益率) ^ (365 / 统计天数) -1 ] * 100%

根据每日资产总权益变化和资产的转入转出进行盈亏分析。每日盈亏、每月盈亏了然于胸,字段说明:

  • 昨日:顾名思义,这是昨日的利润

  • 统计天数:自连接第一家交易所账号到 HXR 以来的天数。在【模拟】交易模式下,这是自你注册以来的天数

  • 总利润:自连接第一家交易所账号到 HXR 以来的总利润。在【模拟】交易模式下,这是自你注册以来的模拟账户的总利润

  • 累计收益率:自连接第一家交易所账号到 HXR 以来的累计收益率。在【模拟】交易模式下,这是自你注册以来的模拟账户的累计收益率

在这里你可以清楚的知道各家交易所资产余额及份额。当然,你也可以在右上角进行切换,查看交易账户资产的分布情况。

你的资产分布在不同的交易所和交易账户,这里可以看到每个资产的总数量和份额,帮助你对持有资产进行追踪,追踪每日价格变化、数量变化,展示资产份额来帮助你进行加密资产的管理。需要注意的是:

  1. 【今日数量变化】和【今日价格变化】从UTC 0 点算起,非 24 小时

  2. 在右上角进行交易所和交易账户切换时列表不会发生变化,这是正常的。这里的切换不会影响资产总量发生变化,这是为了方便你可以对某一家交易所或者某一个交易账户的资产进行筛选和查看

  3. 这里统计的资产数量可能会少于你在交易所实际拥有的资产,因为考虑到实际情况有些交易所账户是没有被统计的,你可以通过对交易账户的筛选进行确认

  1. 先买入 20%

  2. 如果买错了,下跌 10% 立即止损,止损金额为总仓位的 2%

  3. 如果买对了,上涨 10% 立即加仓 20%,再上涨 10% 再加仓 20%......最后一次直接加 40%。将胜利成果扩大。然后只要没有跌破 10% 就持有,一旦跌 10% 立即将仓位全部卖出

在 1907 年,利弗莫尔正确判断出股市大崩盘,一天之内赚进 300 万美金,金融家摩根为了救市,派特使拜托他不要再做空,他答应了。1929年,他又准确的在大崩盘之前做空,赚进 1 亿美金,达到巅峰。

将 DCA 与利弗莫尔加仓法结合,这是一种顺势加仓策略,先通过小仓位试水,在趋势到来后不断加仓,越涨越买,能够更好的把握一波趋势。如下图所示,随着价格上涨不断加仓,同时不断上移止损价格做好保护。

止盈方式有两大类:「交易额止盈」和 「ROI 跟踪止盈」。

 交易额止盈有两种方式:

  1. %总交易额:目标盈利百分比将根据每轮交易的总金额计算,包括首单和所有的补单。例如:首单金额 $10,补单 3 次金额分别为 $10、$20 和 $30,总交易额为 $70,止盈比例 10% ,则目标盈利为 $7

  2. %首单交易额:目标盈利仅根据首单交易额计算,与补单交易额无关。例如:首单金额 $100,无论后续 N 次补单总交易额多少,止盈比例 10% ,则目标盈利为 $10

目标盈利(%)用于设置我们在每轮交易中期望获得的利润百分比。

 

不难看出,「%首单交易额」的方式由于止盈目标更小,一轮交易能够更快的以止盈方式结束,这有助于提高我们的交易胜率和降低持仓周期。如果我们希望补单次数越多,利润也越多,那么应该选择「%总交易额」的方式。

 

ROI 跟踪止盈跟踪的是仓位的盈亏率,这种方式能够保证我们在仓位盈利时保留绝大部分收益,避免在仓位未止盈前价格反转坐过山车🎢。ROI 跟踪止盈会有两个参数:

  • 跟踪 ROI 激活(%):激活开始跟踪的 ROI%。例如参数设置为 10%,代表仓位收益率达到 10% 时开始跟踪。如果收益率继续增加到 15%,跟踪 ROI% 会更新为 15%

  • 跟踪 ROI 回撤(%):ROI% 回撤的百分比。例如参数设置为 30% ,当 ROI% 从 15% 回撤到 10.5% 时触发止盈

背离补单 DCA机器人的止损方式都是基于价格的,有三种类型:

  1. %最后一笔订单开仓均价:最后一笔补单成交后,价格继续朝着亏损方向变化超过该百分比时将下止损单。需要注意的是,因为一些原因导致所有的补单未成功执行,最后一笔订单则为首单

  2. %首单开仓均价:首单成交后,价格朝着亏损方向变化超过该百分比时将下止损单

  3. %全部订单开仓均价:根据已成交的首单和补单计算得出开仓均价,价格朝着亏损方向变化超过该百分比时将下止损单

每种类型的止损会有两个参数:

  • %止损价格背离:设置我们在每轮交易中能够承受的最大损失比例,背离基数为我们设置的价格类型

  • 止损后:「关闭交易对」表示关闭该轮交易,机器人将在满足首单条件为该交易对开启新一轮交易。「关闭交易&停止机器人」表示交易被关闭的同时停止机器人,这样就不会再开启新的交易,如果想要继续交易需要手动开启。

使用「%最后一笔订单开仓均价」方式可以保证止损订单执行顺序在所有补单之后,这能有助于降低我们的持仓成本,但是也有可能导致我们在一轮交易中产生巨大亏损。「%开仓均价」和「%首单开仓均价」方式不能保证预期的补单被执行,但是能够更有效的控制最大损失边界,防止在一轮交易中损失之前的所有盈利。

 

另外需要说明的是,止损条件的设置默认是关闭的,如果需要设置止损,需要主动打开止损设置。

价格止损」有两种类型:

  1. %全部订单开仓均价:根据已成交的首单和补单计算得出开仓均价,价格朝亏损方向变化超过该百分比时将下止损单

  2. %上一笔订单开仓均价:上一笔订单成交后,价格朝亏损方向变化超过该百分比时将下止损单

每种类型的止损会有两个参数:

  • %止损价格背离:设置我们在每轮交易中能够承受的最大损失比例,背离基数为我们设置的价格类型

  • 止损后:「关闭交易对」表示关闭该轮交易,机器人将在满足首单条件为该交易对开启新一轮交易。「关闭交易&停止机器人」表示交易被关闭的同时停止机器人,这样就不会再开启新的交易,如果想要继续交易需要手动开启。

使用「%上一笔订单开仓均价」方式能够不断提高我们的止损价格。即便仓位被止损,只要止损价格优于我们的开仓均价,最终这轮交易还是会盈利。但这种方式止损比较容易触发,我们有很大可能会提前出局而错过接下来的大行情。「%全部订单开仓均价」虽然不能保证我们仓位止损时盈利,但是有助于我们不会被提前出局。

PnL 跟踪止损跟踪的是仓位的盈亏,这种方式能够保证我们在仓位盈利时保留绝大部分收益。PnL 跟踪止损会有三个参数:

  • 跟踪 PnL 激活:激活开始跟踪的 PnL。例如参数设置为 100,代表仓位收益达到 100 时开始跟踪。如果收益继续增加到 150,跟踪 PnL 会更新为 150

  • 跟踪 PnL 回撤(%):PnL% 回撤的百分比。例如参数设置为 30% ,当 PnL 从 150 回撤到 105 时触发止盈

  • 止损后:「关闭交易对」表示关闭该轮交易,机器人将在满足首单条件为该交易对开启新一轮交易。「关闭交易&停止机器人」表示交易被关闭的同时停止机器人,这样就不会再开启新的交易,如果想要继续交易需要手动开启

趋势补单止盈需要所有顺势加仓的补单都成交后,价格继续朝盈利百分比时将下止盈单。牛市不言顶,熊市不言底,在实际的交易过程中,我们可以设置一个不容易达到的止盈目标百分比,这笔订单的结束可以通过止损的方式结束,触发器结束,或者我们主动平仓结束

信息中复制自定义信号的文本后,在对应位置直接粘贴即可,不要做任何修改,以免出错。以上完成后点击【创建】按钮,警报将显示在列表中。

平台收到信号后会立即开始 BTC/USDT 的交易。如果出现以下情况,新交易将不会开启:

  1. 机器人未运行

  2. 达到最大活跃交易限制

  3. 机器人在当前交易对已有活跃交易

  4. 交易对在冷却时间内

基础币种、计价币种与结算币种

基础币种(Base coin):通常以数字货币为单位,BTC 和 ETH 是我们常见的基础币种。交易基础币种的价格变化会产生盈亏
计价币种(Quote coin):主要以美元(USD)和美元稳定币(USDT)为单位。用来给基础币种进行定价
结算币种(Settle coin):即保证金币种,用于交易的盈亏结算。仅用于合约交易市场

交易对命名

交易对命名是将基础币种、计价币种和结算币种和连接符进行组合,交易对命名主要分为三类:

  • 现货市场和杠杆市场:基础币种 +「/」+ 计价币种,如 BTC/USD

  • 永续合约市场:基础币种 +「-」+「 PERP」+ 「/」+结算币种,如 BTC-PERP/USD

  • 交割合约市场:基础币种 +「-」+「交割日期」+ 「/」+结算币种,如 BTC-0625/BTC

形成规范后我们可以直观的根据交易对名称判断该交易对属于哪个交易市场。

做多与做空

  • 做多时,买入基础币种,价格上涨将获利,价格下跌将亏损

  • 做空时,卖出基础币种,价格下跌将获利,价格上涨将亏损

杠杆市场和合约市场可以直接做空。但是在现货市场上做空你需要先拥有你想要交易的资产(例如你要在现货市场 BTC/USDT 交易对做空,你需要先拥有 BTC)。通过先高价卖出再在低价买回实现获利。

 

交易额与交易量

做多时,买入基础币种,价格上涨将获利,价格下跌将亏损
做空时,卖出基础币种,价格下跌将获利,价格上涨将亏损

杠杆市场和合约市场可以直接做空。但是在现货市场上做空你需要先拥有你想要交易的资产(例如你要在现货市场 BTC/USDT 交易对做空,你需要先拥有 BTC)。通过先高价卖出再在低价买回实现获利。

交易额与交易量

交易额(Volume):通常以计价币种为单位,如以 10,000 美金价格买入 5 个 BTC 的交易额为 50,000 美金
交易量(Size):通常以基础币种为单位,如以 10,000 美金价格买入 5 个 BTC 的交易量为 5 BTC

赚计价币种与赚基础币种
俗称「赚 U还是赚币」:

赚计价币种(赚 U):做多做空的交易量相等
赚 基础币种(赚币):做多做空的交易额相等

举例,以现货市场 BTC/USDT 交易对为例,当我们进行交易的时候:

赚 USDT:以 10,000 美金价格买入 1 BTC。在 12,000 美金价格卖出 1 BTC。此时我们盈利 2,000 美金
赚 BTC:以 10,000 美金价格买入 10,000 美金的 BTC,买入 10,000/10,000= 1 BTC。在 12,000 美金价格卖出 10,000 美金 BTC,卖出 10,000/12,000=0.83 BTC。此时我们盈利 1-0.83 = 0.17 BTC

牛市赚 U,熊市赚币

模拟交易功能是非常完整的,几乎拥有与实盘交易一样的交易体验。我们为所有已支持的交易所都单独创建了模拟交易账户,你可以使用你熟悉交易所的模拟账户来探索我们的产品,无论是跟踪模拟账户的资产盈亏、使用智能交易进行手动交易还是使用交易机器人进行自动化交易都是完全不受限制的

清除当前交易账户的资金重新开始吗?在【设置】-【模拟交易】中点击【重置】按钮即可将该账户的资金恢复为初始状态,重置后相应的交易记录会丢失,你将拥有一个全新的模拟交易账户。此外,各模拟账户相互独立,重置一家交易所模拟账户不会影响到其它交易所的模拟账户.

Subscribe to leaf
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
Author Address
0x29F60561ca39980…c9cccb7f29da24D
Content Digest
5UjyNP2gNXPLiR5…V_RbYvo2QXQu1Cg
More from leaf

Skeleton

Skeleton

Skeleton