本帖最后由 技术009 于 2021-12-6 09:42 编辑
图表程序化
图表程序化运行机制
图表程序化是一个基于一个虚拟模型的程序化交易方式。模型的逻辑在代码中实现。这个模型有自己的一个虚拟资金,它根据K线数据,根据代码中设计好的交易逻辑,计算出开平信号,并在K线图上进行显示。也就是说图表程序化模拟或者说是回测了一段历史交易的完整过程 并将结果展示在K线图上。在实际交易中程序追踪这个模型在最新K上计算出的信号来进行下单。
这里可以举个通俗易懂的例子来进一步说明图表程序化的运行原理。 图表程序化交易就相当于你跟随 股神巴菲特进行交易,你跟随他选择相同的时机,相同的方向进行交易,完全执行巴菲特的操作方式。但是这个交易过程,你是处于一个跟随的位置,你无法反向影响巴菲特的交易逻辑(在这里就相当于指标里写好的交易逻辑,本地的实际资金账户的情况影响不了图表上信号逻辑),并且他的交易逻辑一定程度上也是和他之前的全部交易过程相关的(相当于图表模型的历史交易信号),你模仿他的时候其实是相当于半途参与其中的(实际资金账户执行的信号是从最新K上开始的,而历史信号不执行)。
所以图表程序化和用户的实际资金账户是完全单向的关系,你本地资金可能开不了那么多仓位,但是图表逻辑上只要虚拟资金足够,那么它就正常出信号,正常拥有持仓的,你实际账户情况是无法反向影响图表模型的逻辑。如果某个平仓条件是从历史K某个位置一直持续满足到当前最新K,图表模型在历史K出过平仓信号后,此时图表上的虚拟持仓已经是0了,如果这时候你才开启程序化交易且实际账户有持仓,程序化是不会给你平仓的,因为模型已经是没有仓位的状态了,是发不了平仓信号的。图表模型信号的发生完全取决于图表模型的内部逻辑当前的执行进度,而和你当前实际资金账户情况无关。 当然这只是图表程序化最基础的原理,并非就只能受限于这些基本原理,金字塔提供了辅助交易功能来处理这些图表模型和实际资金账户不一致的情况,比如将模型的下单量按比例缩放到实际账户可以下单的程度,或者是启用持仓同步功能将虚拟持仓和实际持仓进行同步等等。
图表程序化的特点
1.交易模型之间相互独立 每个加载在k线图上的图表指标模型都是相互独立的。相同的指标加载在相同品种的2个窗口上他们之间是相互独立的。一个K线图上叠加的2个指标也是相互独立的。 2.图表信号和实际账户之间是单向关系 实际账户只是单向的接受经过筛选机制筛选后的 图表模型信号并进行执行,但是执行结果不会反过来影响图表模型的逻辑(参考前面的“图表程序化运行机制”部分的详细说明)。 所以通常图表模型无法在代码里处理判断成交,处理追撤单等和实际成交回报有关的问题。不过用户可以使用系统提供的一些辅助交易功能进行额外的处理(如追撤单功能)。 3.图表模型内部不能锁仓。 图表模型任意时刻,只会拥有一个方向的虚拟持仓。反应在实际交易中就是同一个窗口上加载的某个模型不会出了开多信号后又出开空信号,它必然需要出一次平多(全平)信号才能出开空的信号,反之同理。这是不是意味着不能在实际账户上锁仓呢?并不是,按照图表模型的特点1和2,每个加载的模型之间是相互独立的,而实际账户持仓情况又是不影响图表模型的。所以不同窗口上下的单子多空之间互不干扰,实际账户上是完全可以锁仓的。 4.图表模型在历史K上的信号是回测信号 历史K位置的信号,是按照这个K最后时刻的数据计算出来的。历史K部分的信号相当于是一个历史回测的展示,并非记录了你实盘中交易信号,而是按照回测的方式复现了K线结束时候的信号。
|