打字猴:1.70051077e+09
1700510770
1700510771 这个部分需要多花一些时间。在这个文件中有超过544万条数据,建议将MySQL调整到AUTOCOMMIT=0的状态,然后每2000条提交一次。
1700510772
1700510773 wc-l /root/Desktop/EURUSD.txt5447761 /root/Desktop/EURUSD.txt
1700510774
1700510775 2.观察数据
1700510776
1700510777 数据完全导入后,可以用聚合函数来观察,看看这些数据在一天内的波动是如何分布的。
1700510778
1700510779 使用vim命令编辑query.py文件。
1700510780
1700510781 vim query.py
1700510782
1700510783 编写Python代码,对每天的振幅进行统计。
1700510784
1700510785 #!/usr/bin/pythonimport os,sys,MySQLdb    try db=MySQLdb.connect(host=‘localhost’, user=‘root’, passwd=‘111111’, db=‘FOREX’)      cursor=db.cursor()  #result_set=cursor.fetchall()  #print result_set  counter=0  input_file=open(‘/ml/EURUSD.txt’,‘r’)        cursor.execute(‘USE FOREX;’)  sql=‘SELECT PIPS, COUNT(*)DAYS FROM  (SELECT       DATE_FORMAT(DT,”%Y-%m-%d”)AS THE_DATE,(MAX(HIGH)-MIN(LOW))*10000 AS PIPS FROM EURUSD_1M GROUP BY DATE_FORMAT(DT,”%Y-%m-%d”))AS TEMP GROUP BY PIPS;’;  cursor.execute(sql);  result=cursor.fetchall()  for row in result:    print str(row[0])+ ‘,’ + str(row[1])except MySQLdb.Error,e print “Error %s” %(e.args[0])  exit(1)cursor.close()db.close()
1700510786
1700510787 调用query.py文件。
1700510788
1700510789 python query.py>amp_group.csv
1700510790
1700510791 下载该文件并使用Excel打开。如图18-11所示,在这个Excel文件中,A列是每天的波动幅度(单位是“点”,即“pip”),B列是在这4848个交易日中有多少天有对应的波动幅度。
1700510792
1700510793
1700510794
1700510795
1700510796 图18-11 波幅统计表
1700510797
1700510798 如果感觉这样不够直观,那就画幅柱状图来看看。如图18-12所示,横坐标是波动的点数,纵坐标是波动点数对应的天数。这个图形中间凸起的部分看上去有点像正态分布,中点在80左右(平均值不是80,实际的平均值比80要大),极高波幅日的出现是小概率事件,绝大部分交易日的波幅都在225个点以内。大部分日子的波幅比较小,就是左侧的这个高点,中点在9附近。
1700510799
1700510800
1700510801
1700510802
1700510803 图18-12 波幅统计图
1700510804
1700510805 下面我们分析这些波幅值时,就可以考虑围绕这些已经考察明确的数据来设置范围参数了。在一个点差为2的平台上,如果我们只能捕捉到极低波幅的涨势/跌势,例如只有4个点,那么下单和平仓的正确率要接近100%才行。但是,如果我们能捕捉到波幅在10个点以上的情况,就允许存在一定概率的错误。在这里,由于没有具体的策略,所以无法得出这个概率是多少。盈利大小是指每次下单时的点和平仓时的点的差值与方向的乘积的总和。
1700510806
1700510807 3.统计分析
1700510808
1700510809 如果我们手里只有这些K线图的m1数据,并坚信一个涨势/跌势在此前市场酝酿情绪的阶段能够看出端倪,就可以尝试把这个过程描述为一个由前面的数据影响后面数据的非线性的预测过程。
1700510810
1700510811 这里对数据进行统计分析和建模的过程,实际上和其他数据分析过程没有本质区别,都是遵循这样的步骤:观察数据→建立假说→训练模型→验证模型→调整模型。
1700510812
1700510813 如果建立的假说是刚刚这种前面的数据影响后面的数据的时序相关模型,可以写作:
1700510814
1700510815
1700510816
1700510817
1700510818 其中,j表示当前的时间节点,n表示一个超参数——表示应该向前看多远的一个滑动窗口的大小。n的值可以人为调整。
1700510819
[ 上一页 ]  [ :1.70051077e+09 ]  [ 下一页 ]