量化平台技术指标用法

Q1_001 2017-02-22 19:52:08

浏览量: 4686

ma

#MA金叉:
#前天的5日均线小于前天的10日均线,
#昨天的5日均线小于昨天的10日均线,
#今天的5日均线大于今天的10日均线。
def ma_cross_stock(stock):
    price=get_history(20,'1d','close')[stock].values
    ma5=IMa(price,5,3,2)
    ma10=IMa(price,10,3,2)
    if ma5.avgs[0]ma10.avgs[2]:
        return True
    else:
        return False


#MA多头排列:
#前天5日均线小于昨天5日均线小于今天5日均线,
#前天10日均线小于昨天10日均线小于今天10日均线,
#前天20日均线小于昨天20日均线小于今天20日均线。
def ma_bull_stock(stock):
    price=get_history(30,'1d','close')[stock].values
    ma5=IMa(price,5,3,2)
    ma10=IMa(price,10,3,2)
    ma20=IMa(price,20,3,2)
    if ma5.avgs[0]


14条回复 添加回复
Q1_001

#MA缠绕:
#前天5日,10日,20日的均线中的最大值比上最小值<1.01,
#昨天5日,10日,20日的均线中的最大值比上最小值<1.01,
#今天5日,10日,20日的均线中的最大值比上最小值<1.01。
def ma_narrow_stock(stock):
    price=get_history(30,'1d','close')[stock].values
    ma5=IMa(price,5,3,2)
    ma10=IMa(price,10,3,2)
    ma20=IMa(price,20,3,2)
    if max(ma5.avgs[0],ma10.avgs[0],ma20.avgs[0])/min(ma5.avgs[0],ma10.avgs[0],ma20.avgs[0])<1.01 and\
       max(ma5.avgs[1],ma10.avgs[1],ma20.avgs[1])/min(ma5.avgs[1],ma10.avgs[1],ma20.avgs[1])<1.01 and\
       max(ma5.avgs[2],ma10.avgs[2],ma20.avgs[2])/min(ma5.avgs[2],ma10.avgs[2],ma20.avgs[2])<1.01:
        return True
    else:
        return False



#MACD金叉:快线、慢线都在0轴上,昨日快线小于慢线,今日快线大于慢线。
def MACD_cross_stock(stock):
    price=get_history(100,'1d','close')[stock].values
    macd = IMacd(price, 12, 26, 9, 2, 2)
    if macd.diffs[1]>0 and macd.deas[1]>0 and macd.diffs[0]macd.deas[1]:
        return True
    else:
        return False



2017-02-22 20:02:00
Q1_001

#MACD红绿柱:今日红柱,前三日都是绿柱。
def MACD_dea_stock(stock):
    price=get_history(100,'1d','close')[stock].values
    macd = IMacd(price, 12, 26, 9, 5, 2)
    if macd.bars[-1]>0 and macd.bars[-2]<0 and macd.bars[-3]<0 and macd.bars[-4]<0:
        return True
    else:
        return False
#MACD快线穿0:今日和昨日快线大于0,两日前和三日前快线小于0。
def MACD_cross1_stock(stock):
        price=get_history(100,'1d','close')[stock].values
        macd = IMacd(price, 12, 26, 9, 5, 2) 
        if macd.diffs[-1]>0 and macd.diffs[-2]>0 and macd.diffs[-3]<0 and macd.diffs[-4]<0:
            return True
        else:
            return False



2017-02-22 20:02:23
Q1_001

#MACD慢线穿0:今日和昨日慢线大于0,两日前和三日前慢线小于0。
def MACD_cross2_stock(stock):
    price=get_history(100,'1d','close')[stock].values
    macd = IMacd(price, 12, 26, 9, 5, 2)
    if macd.deas[-1]>0 and macd.deas[-2]>0 and macd.deas[-3]<0 and macd.deas[-4]<0:
        return True
    else:
        return False




#KDJ金叉:昨日K值小于D值,今日K值大于D值。
def kdj_cross_stock(stock):
    high=get_history(60, '1d', 'high')[stock].values
    low=get_history(60,'1d','low')[stock].values
    close=get_history(60,'1d','close')[stock].values
    kdj = IKdj(high, low, close,9,3,3,2,2)
    if kdj.ks[0] is None or kdj.ds[0] is None:
        return False
    elif kdj.ks[0]kdj.ds[1]:
        return True
    else:
        return False



2017-02-22 20:02:54
Q1_001

#KDJ_K20:今日K值小于20,昨日K值小于20,前日K值大于20,三天前K值大于20。
def kdj_k_stock(stock):
    high=get_history(60, '1d', 'high')[stock].values
    low=get_history(60,'1d','low')[stock].values
    close=get_history(60,'1d','close')[stock].values
    kdj = IKdj(high, low, close,9,3,3,5,2)
    if kdj.ks[0] is None:
        return False
    elif kdj.ks[-1]<20 and kdj.ks[-2]<20 and kdj.ks[-3]>20 and kdj.ks[-4]>20:
        return True
    else:
        return False



#KDJ_J50:今日J值大于50,昨日J值小于50,前日J值小于50。
def kdj_j_stock(stock):
    high=get_history(60, '1d', 'high')[stock].values
    low=get_history(60,'1d','low')[stock].values
    close=get_history(60,'1d','close')[stock].values
    kdj = IKdj(high, low, close,9,3,3,5,2)
    if kdj.js[0] is None:
        return False
    elif kdj.js[-1]>50 and kdj.js[-2]<50 and kdj.js[-3]<50:
        return True
    else:
        return False



2017-02-22 20:03:16
Q1_001

#RSI低位拐头:昨日RSI小于20,今日RSI大于昨日RSI,前日RSI大于昨日RSI。
def rsi_reverse_stock(stock):
    price=get_history(14,'1d','close')[stock].values
    rsi=IRsi(price,2,2,9,3,2).long_rsis
    if rsi[1]<20 and rsi[2]>rsi[1] and rsi[0]>rsi[1]:
        return True
    else:
        return False


# RSI多头排列:昨日短期RSI<今日短期RSI<50,昨日中期RSI<今日中期RSI<50,昨日长期RSI<今日长期RSI<50。
def rsi_bull_stock(stock):
    price=get_history(14,'1d','close')[stock].values
    rsi=IRsi(price,9,12,14,2,2)
    if rsi.short_rsis[0]



2017-02-22 20:03:37
Q1_001

#RSI金叉:昨日中期RSI小于昨日长期RSI,今日中期RSI大于今日长期RSI。
def rsi_cross_stock(stock):
    price=get_history(14,'1d','close')[stock].values
    rsi=IRsi(price,2,9,12,2,2)
    if rsi.mid_rsis[0]rsi.long_rsis[1]:
        return True
    else:
        return False



# BOLL上穿上轨:昨日收盘价小于BOLL上轨,今日收盘价大于BOLL上轨;昨日BOLL上轨-昨日BOLL中轨<今日BOLL上轨-今日BOLL中轨。
def boll_crossup_stock(stock):
    price=get_history(21,'1d','close')[stock].values
    boll = IBoll(price, 20, 2, 2, 3)
    if price[-2]boll.u_tracks[-1] and boll.u_tracks[-2]-boll.m_tracks[-2]



2017-02-22 20:04:00
Q1_001

# BOLL下穿下轨:昨日收盘价大于BOLL下轨,今日收盘价小于BOLL下轨。
def boll_crossbot_stock(stock):
    price=get_history(21,'1d','close')[stock].values
    boll = IBoll(price, 20, 2, 2, 3)
    if price[-2]>boll.d_tracks[-2] and price[-1]



2017-02-22 20:04:14
小鹏北京

这个不错

能有个例子学起来就能快些了。


2017-03-06 14:47:56
一指一游神

技术指标自己写挺难的,这个例子很给力


2017-03-06 15:27:27
一指一游神

技术指标自己写挺难的,这个例子很给力


2017-03-06 15:27:32
一指一游神

技术指标自己写挺难的,这个例子很给力


2017-03-06 15:27:35
缘初森翔

这是基本,怎么能把高手的思路编程为策略,这是主要,按实际和时间段应用在实盘更需要用更多的心,先在这谢谢了。


2017-03-08 17:40:36
wqqweqeqwe

eqwqeqwe


2018-04-01 18:30:57
wqqweqeqwe

eqwqeqwe

eqwqeqwe


2018-04-01 18:31:53
1
提交
Copyright © 2004-2017 京东JD.com 版权所有 | 投资有风险,购买需谨慎