神楽坂雪紀的投研笔记

呐、现在可以和你见面吗?我、等着你哟......

0%

【想到哪写到哪】随机数生成K线

下午呆呆坐着突然想到一个问题:技术分析中有一个关于趋势的假设,即在上涨的行情中,每一次的回调,低点都比上一次回调时产生的低点更高。等待回调做多以及前一个回调低点止损都是基于这一假设,那么低点跌破前一个回调低点的概率有多大呢?

从逻辑上来讲,上涨趋势中回调跌破前一个同级别回调低点的概率是很低的,一旦跌破,就说明在这个级别上的趋势被打破了。从实际行情来说也是这样,在波动率不变的情况下,“反复跌破回调”和“上涨趋势保持”这两种情况不可能同时发生。

要想同时发生,只可能是波动率陡增,也就是走出一个阔喇叭口的走势,但这种走势是否还能够定义为上涨趋势?

但在我们实际交易过程中,往往却是会发生这样的事情:上涨趋势中发生了回调,且回调确确实实跌破了前一个同级别回调的低点,但跌破后又很快上涨并创新高。

如果可以搞清楚回调跌破的大致概率,可以坚定我们开仓和设止损的信心,这属于基本面之外用逻辑来为开仓壮胆的一部分。

现实中的回调跌破往往会伴随一些事件:例如近期橡胶反弹突破了前期第一个压力位,并在触及第二个压力位前结束反弹,随后下跌创新低。通常在下跌趋势中的反弹一般不会高于前期盘整或反弹高点所产生的压力位,除非有事件驱动,橡胶的驱动就来自进口数据公布后前期野库假设被修正。

橡胶近期的走势-小时线

关于为什么上涨趋势会有回调、以及为什么回调不会跌破,拿黄金举例:

上涨过程中,多头会有拿不住单子进而止盈的动作,空头因为扛了亏会有浮亏加仓摊薄成本的动作,这两个空头动作构成了向下回调的压力。这两个动作都是人类最原始的本能,之所以说是本能,或许大家都经历过类似的事情,赚小钱亏大钱,赚小钱是拿不住盈利单子,亏大钱是浮亏加仓扛单最后一把爆了个大的。这点在新玩家身上尤为明显。

而在回调过程中,多头会选择合适的位置加仓,只要基本面没有变化,技术派则更多是墙头草,前期的空头则可能略微浮盈或扛到保本后离场,由此构成了回调后的反弹。

总之在没有明确事件驱动的情况下,在一个供需矛盾尚未被化解的情况下,回调不破前低是一个大概率能够站稳的结论。

回归到正题,我们希望讨论在抛开事件驱动的情况下,上述结论到底概率几何?我想到利用随机数来生成行情。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
import random

x = 300
h = 0
l = 0
o = 0
c = 0

f1 = open("f1.csv", "w")
f2 = open("f2.csv", "w")

for i in range(100):
x += random.choice((-1, 1))
f2.write("%d\n" % x)
o = x
for j in range(498):
x += random.choice((-1, 1))
f2.write("%d\n" % x)
h = max(h, x)
l = max(l, x)
x += random.choice((-1, 1))
f2.write("%d\n" % x)
c = x
f1.write("%d, %d, %d, %d\n" % (o, h, l, c))

f1.close()
f2.close()

上述随机数生成5万个数字,起始值为300,每一次变化要么+1,要么-1。随机数结果:

随机数绘制成图

我们把这5万个数字按照每500个合成1个K线,一共100根K线,结果如下:

随机数绘制合成K线图

这个图表还是蛮震撼我的,利用的是python的random函数,有模有样跟真的似的。有时候会想,纯粹的技术分析在随机数上面的数学期望能做到正的吗?

做到这里我已经不想去探求具体的概率数值了,这个问题留到以后有想法了再来。

最后,尽管分析烂尾了,但我认为这还是一个有价值的讨论,我们的结论有:

  1. 一个上涨趋势中的回调通常不会跌破前一个同级别回调的最低点;同样地,一个下跌趋势中的反弹通常不会高于前一个同级别反弹的最高点。这是通常来说,但也有例外,例如来自情绪的、来自宏观的、来自市场外溢的、来自场外因素等。

  2. 在实际交易中,打破结论1的情况通常伴随事件驱动。