电价预测与交易策略优化的逻辑思辨

在“电价预测是否会自我实现”中,我们用了兰台只考虑日前价格的火电策略寻优算法,发现误差大的价格预测会被反身性推翻,而靠谱的价格预测似乎会自我实现。在这一篇文章中,我们用同时考虑日前和实时价格预测的火电策略寻优算法,来进一步看不同迭代的策略预期收益和实际收益。

(来源:微信公众号“兰木达电力现货”作者:王超一)

考虑到如果用一套边界条件,日前价格和实时价格理论上是相同的,所以这里的处理方法是,每个节点每个时点的净负荷乘以一个1附近的随机数,然后我们假设这个计算出来的日前和实时的净负荷是提前知道的。另外,假设日前和实时的厂用电率是相同的。

同样利用朱治中博士翻译的《电力系统的经济学原理》中的三节点网络,我们写一个现货出清算法(本文中的出清算法指SCUC、SCED和节点价格计算这三个步骤)得到节点价格作为初始节点价格,再通过兰台的火电日前策略寻优算法,得到按最新节点价格作为价格预测下的最优申报策略,然后用各个机组的最优申报策略,再带入到现货出清算法,得到新的节点价格,这个过程称为一次迭代。新的节点价格作为下一轮迭代的预测价格。下面给出了实验中前9次迭代结果。

1.png

在迭代中,由于基于价格预测的火电现货申报策略优化程序具有一定的随机性,给出的机组最后一段申报价格波动比较大,但最终收益基本会收敛。

上图中,A、B机组位于节点1,C机组位于节点2,D机组位于节点3。

我们首先看一下价格预测的准确程度,其中,横坐标为迭代次数,纵坐标为误差,9次迭代的误差趋势如下图所示,可以看到,误差大小和位于其节点的机组的收益并无明显的单调关系,第5轮迭代价格预测误差非常大,但是很多机组赚得了不错的收益。

从逻辑上,价格预测作为一种时序预测类任务,量化价格预测优劣一般是通过计算价格预测与真值的误差,这通常是双向的,预测过大或过小都是不利的。而策略的目标是收益,和价格预测是不同的,一般在局部是单向的,落地在实践中,我们更关心的是价格趋势、价差方向等。当然,一个绝对精准的价格预测可以以上帝视角做策略,然而,价格预测既然达不到绝对精准,那么在相对精准的程度下,价格预测的误差与收益的关系,相关性就急剧降低了,这时候,决定策略的并不是价格预测,而是相对优势,或者各种各样的因子。

所以,从绝对意义上讲,价格预测达到容易用于指导策略制定比做策略本身“更难”,如果把主要精力放在价格预测上,是否走了一条弯路呢?

下文具体解释部分实验参数、过程和结果。

机组的收益为机组的收入减去机组的成本,机组的成本利用分段线性函数计算,横轴代表出力,纵轴代表平均成本,如下所示:

4.png

机组的收入公式如下:

收入=日前价格*日前中标*(1-日前厂用电率)+(实时电量中标-日前电量中标)*实时价格*(1-实时厂用电率)

回到最开头的图,按预测价格预估收益的含义是,将上一轮迭代的出清日前实时价格当做预测价格,用火电日前申报寻优程序获得最优申报,按照出清到申报段右边界的中标逻辑,得到的预估收益;按出清价格预估收益的含义是,将本轮获得的最优申报作为输入,用出清程序分别获得日前和实时价格,根据出清的价格,中标到右边界,得到的预估收益;按照出清实际收益的含义是,不仅参考出清程序的出清节点价格,还直接应用出清程序给出的机组中标,计算机组收益。

下面我们通过一系列图给出实验的一些直观结果:

可以看到价格有收敛的趋势,那么自然的问题是,日前实时价差会怎样呢?很遗憾,我们把价差画出来,发现并没有这样的趋势。所以大概率通过仿真直接得到日前策略是有难度的,或者说,我们还得输入除火电机组和电网结构额外的信息来做现货策略,价差图如下文所示。

可以看到,不同迭代的价差波动范围基本一致,由于实时需求和日前需求的差异方向是确定的,所以,不同迭代的价差方向基本一致。我们进一步研究了这个问题,虽然净负荷差是固定的,但是价差方向确会与净负荷差不一致。在我们这10次迭代中,每个节点有960个价差,节点2有2个价差与净负荷差不一致,节点3有4个,而节点1竟然出现了22次不一致。这充分说明了日前现货套利的复杂性。