繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

【缠论初探】笔方向破坏的级别共振策略

作者/不做外汇索罗斯 2019-09-25 20:00 0 来源: FX168财经网人物频道
#导入各种函数库包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.finance as fin
#获取上证指数的行情数据
df = get_price('000001.XSHG',end_date='2017-5-25',frequency='1d',count=400)
#进行K线绘制先,整体看下走势情况
t=list(range(len(df)))
df['t']=pd.Series(t,index=df.index)
o=df['open'].values
c=df['close'].values
h=df['high'].values
l=df['low'].values
fig=plt.figure(figsize(20,10))
ax=fig.add_subplot(111)
ax.set_xlim(0,len(df))
ques=zip(t,o,c,h,l)
fin.candlestick_ochl(ax,ques,colorup='r',colordown='g',width=0.5)
plt.grid()
#进行K线的包含关系处理,再原数据表中增加label进行是否有效的标记,增加两列记录合并K线后的极值
label=[1]
h_jizhi,l_jizhi=h[0],l[0]
high_new=[h[0]]
low_new=[l[0]]
#标记K线的有效性,上升K线为1,下降为-1,无效为0
for i in t[1:]:
    #缠论上升K线的定义
    if h[i]>h_jizhi and l[i]>l_jizhi:
        label.append(1)
        h_jizhi=max(h[i],h[i-1])
        l_jizhi=max(l[i],l[i-1])
    #缠论下降K线的定义
    elif h[i]<h_jizhi and l[i]<l_jizhi:
        label.append(-1)
        h_jizhi=min(h[i],h[i-1])
        l_jizhi=min(l[i],l[i-1])
    #包涵K线的处理
    else:
        label.append(0)
        #下面的内容主要是进行极值的更新
        for j in label[::-1]:
            if j != 0:
                a=j
                break
        if a==1:
            h_jizhi=max(h[i],h_jizhi)
            l_jizhi=max(l[i],l_jizhi)
        else:
            h_jizhi=min(h[i],h_jizhi)
            l_jizhi=min(l[i],l_jizhi)
    high_new.append(h_jizhi)
    low_new.append(l_jizhi)
#把结果添加到df
df['label_k']=pd.Series(label,index=df.index)
df['high_k']=pd.Series(high_new,index=df.index)
df['low_k']=pd.Series(low_new,index=df.index)
#找出可以构成笔的K线位置
#step1 找出有效笔的起点位置
#得到有效笔的起点位置
##先将有效K线的label整理成列表l1
l1=[]
list1=df['label_k'].values
for i in range(len(list1)):
    if list1[i]!=0:
        l1.append(i)
##记录有效位置的起点
label_s_e=[]
for z in range(2,len(l1)):
    if (list1[l1[z]],list1[l1[z-1]],list1[[l1[z-2]]])==(1,1,1):
        label_s_e.append((l1[z-2],1))
    elif (list1[l1[z]],list1[l1[z-1]],list1[[l1[z-2]]])==(-1,-1,-1):
        label_s_e.append((l1[z-2],-1))
##取到第一个有效起点,并有a值进行方向的记录
label_se=[]
a=0
for i in range(1,len(label_s_e)):
    if a==0:
        label_se.append(label_s_e[i][0])
        if label_s_e[i][1]==1:
            a=1
        elif label_s_e[i][1]==-1:
            a=-1
    elif a==1:
        if label_s_e[i][1]==1:
            pass
        elif label_s_e[i][1]==-1:
            label_se.append(label_s_e[i][0])
            a=-1
    elif a==-1:
        if label_s_e[i][1]==1:
            label_se.append(label_s_e[i][0])
            a=1
        elif label_s_e[i][1]==-1:
            pass
##得到小趋势的起点位置后,找出每个区间的最高点最低点
#获得区间内最大最小值,次处找出的值是指在已经确定方向被终结后进行的搜索,主要用作画图了
b=1
new_label=[]
for i in range(1,len(label_se)):
    list_1=list(df['high'].values[label_se[i-1]:label_se[i]])
    if b==1:
        #返回列表中值最大的位置
        new_label.append(list_1.index(max(list_1))+label_se[i-1])
        b=-1
    elif b==-1:
        new_label.append(list_1.index(min(list_1))+label_se[i-1])
        b=1
#获取最值的价格,按收盘价算
new_label_p=[df['close'].values[i] for i in new_label]
#再次进行K线绘制先,整体看下走势情况,左为裸K,右为方向
t=list(range(len(df)))
df['t']=pd.Series(t,index=df.index)
o=df['open'].values
c=df['close'].values
h=df['high'].values
l=df['low'].values
fig=plt.figure(figsize=(20,10))
ax1=fig.add_subplot(221)
ax2=fig.add_subplot(222)
ax1.set_xlim(0,len(df))
ques=zip(t,o,c,h,l)
ax1.grid()
fin.candlestick_ochl(ax1,ques,colorup='r',colordown='g',width=0.5)
ax2.grid()
ax2.plot(new_label,new_label_p,color='r')
[<matplotlib.lines.Line2D at 0x7fa87d071550>]
 
 
 
 
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2144文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4728文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...