如何用python生成市场的分形图
我希望在python中生成以下内容: 但我对这个概念非常陌生。有人知道这方面的图书馆或要点吗 编辑:如何用python生成市场的分形图,python,python-2.7,fractals,Python,Python 2.7,Fractals,我希望在python中生成以下内容: 但我对这个概念非常陌生。有人知道这方面的图书馆或要点吗 编辑: 据我所知,你每次都需要把分形分成2。因此,必须从两个中点之间的直线计算y轴点。然后,这两个部分需要根据分形形成?不是100%确定你在问什么,但正如我从你的评论中理解的那样,你想要使用链接中描述的递归生成一个真实的股市曲线 据我所知,链接页面和中的描述如下: 给你一个起点和终点,以及一系列的转折点(t1,v1),(t2,v2),等等,例如起点=(0,0),终点=(1,1),转折=[(1/4,1
据我所知,你每次都需要把分形分成2。因此,必须从两个中点之间的直线计算y轴点。然后,这两个部分需要根据分形形成?不是100%确定你在问什么,但正如我从你的评论中理解的那样,你想要使用链接中描述的递归生成一个真实的股市曲线 据我所知,链接页面和中的描述如下:
起点=(0,0),终点=(1,1),转折=[(1/4,1/2),(3/4,1/4)]
,其中ti和vi是介于0和1之间的分数from __future__ import division
from random import shuffle
def make_graph(depth, graph, start, end, turns):
# add points to graph
graph.add(start)
graph.add(end)
if depth > 0:
# unpack input values
fromtime, fromvalue = start
totime, tovalue = end
# calcualte differences between points
diffs = []
last_time, last_val = fromtime, fromvalue
for t, v in turns:
new_time = fromtime + (totime - fromtime) * t
new_val = fromvalue + (tovalue - fromvalue) * v
diffs.append((new_time - last_time, new_val - last_val))
last_time, last_val = new_time, new_val
# add 'brownian motion' by reordering the segments
shuffle(diffs)
# calculate actual intermediate points and recurse
last = start
for segment in diffs:
p = last[0] + segment[0], last[1] + segment[1]
make_graph(depth - 1, graph, last, p, turns)
last = p
make_graph(depth - 1, graph, last, end, turns)
from matplotlib import pyplot
depth = 8
graph = set()
make_graph(depth, graph, (0, 0), (1, 1), [(1/9, 2/3), (5/9, 1/3)])
pyplot.plot(*zip(*sorted(graph)))
pyplot.show()
下面是一些示例输出:
我也有类似的兴趣,开发了一个python3库来满足您的需求
pip install fractalmarkets
请参见“我希望用python生成此文件”。你想创建一个关于分形的网站吗?有许多有趣的web框架可用。你试过Django吗?@Kevin lol,没有,显然没有。我在找递归函数。你能提供一个更具体的链接吗?您现在所拥有的内容将进入头版。@Kevin谢谢您提供的信息。愚蠢的伊夫拉姆,叹气。我已经更新了链接。不太清楚你在问什么。你想生成一个看起来有点真实的股市图吗?或者你想实现“价格与交易时间”的标准化?还有,是否有任何输入数据,或者你只是想要随机图?这很好,是的,正是我想要的。不过还有一件事,
depth=1
应该将len(graph)
作为4,等等。是否可以从一开始就使用集
,或者我应该在之后使graph
唯一?@Tjorriemorrie这是一个好的捕获,这不是有意的。这些点似乎被添加了多次,例如,从(0,0)开始,每个越来越小的线段都添加了(0,0)。或者,您可以只添加中间点(在我的第一个版本中是这样的),但是您必须单独处理第一个起点和终点。根据建议,我将图形
更改为集合
,以避免出现这种情况;其他一切都是一样的。谢谢,这是一些非常好的python编码:)和+1,让我可以轻松地切换shuffle
@tobias_k:这段代码可以扩展为使用x轴的实时值并生成逼真的分形OHLC数据点吗?我想尝试创建一个综合流媒体Bokeh finance情节,可以使用分形生成器作为OHLC引擎。@GoFaster我不是市场专家,但我不明白为什么这不起作用。只需将x轴上的0.0
替换为打开时间,1.0
替换为关闭时间,并相应地在两者之间插入值。