技术分析​

🏛️ best365官网登陆 ⏳ 2026-02-11 06:10:37 👤 admin 👁️ 5206 💎 970
技术分析​

技术分析 ​米筐平台引入的信号计算方式能够让您更方便地进行技术分析。在技术分析过程中,您既可以使用我们预先提供的常用技术指标,也可以使用自定义指标来产生信号供策略内使用。

def MA_SIGNAL():

# 5周期移动平均上穿10周期移动平均

return CROSS(MA(CLOSE, 5), MA(CLOSE, 10))

def BOLL_SIGNAL():

# 收盘价上传布林通道上轨

MID, TOP, BOTTOM = BOLL(20, 2)

return CROSS(CLOSE, TOP)

def init(context):

context.s1 = '000001.XSHE'

# 在初始化阶段注册指标函数

# 计算5分钟线金叉信号

reg_indicator('ma', MA_SIGNAL, '5m', win_size=20)

# 计算日线布林通道

reg_indicator('boll', BOLL_SIGNAL, '1d', win_size=20)

def handle_bar(context, bar_dict):

# 获取指标结果

ma_cross = get_indicator(context.s1, 'ma')

boll_cross = get_indicator(context.s1, 'boll')

# 设置入场条件

if ma_cross and boll_cross:

order_percent(context.s1, 0.1)自定义技术指标 ​为满足用户对指标要求的多样性,米筐支持用户使用类似通达信公式的方式计算自定义指标,具体方法可以参考如下步骤:

首先,定义指标函数体本身。例如,

def KDJ_SIGNAL()):

# 连续两个周期J值一直在超买区

K, D, J = KDJ()

return EVERY(J > 80, 2)其次,在 init 阶段调用reg_indicator对所需取用的指标进行注册。注册时,需要指定指标名称、参数、适用的周期(比如,5 分钟线还是日线)以及初始回溯获取数据的窗口长度。例如,

reg_indicator('kdj', KDJ_SIGNAL, '1d', win_size=20)最后,调用get_indicator获取指标计算结果。此时需要指定获取的指标名称以及所需计算的合约代码。例如,

get_indicator('000001.XSHE', 'kdj')需要注意的是,目前技术指标计算并未包括当前“不完整”分钟线。举例来说,在 09:48 计算以 5 分钟线为周期的移动平均时,并不包括 09:45~09:48 这一“不完整”的 5 分钟线。

系统预定义指标 ​MACD 指数平滑移动平均pythondef MACD(SHORT=12, LONG=26, M=9):

"""

MACD 指数平滑移动平均线

"""

DIFF = EMA(CLOSE, SHORT) - EMA(CLOSE, LONG)

DEA = EMA(DIFF, M)

MACD = (DIFF - DEA) * 2

return MACDKDJ 随机指标pythondef KDJ(N=9, M1=3, M2=3):

"""

KDJ 随机指标

"""

RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100

K = EMA(RSV, (M1 * 2 - 1))

D = EMA(K, (M2 * 2 - 1))

J = K * 3 - D * 2

return K, D, JRSI 相对指标pythondef RSI(N1=6, N2=12, N3=24):

"""

RSI 相对强弱指标

"""

LC = REF(CLOSE, 1)

RSI1 = SMA(MAX(CLOSE - LC, 0), N1, 1) / SMA(ABS(CLOSE - LC), N1, 1) * 100

RSI2 = SMA(MAX(CLOSE - LC, 0), N2, 1) / SMA(ABS(CLOSE - LC), N2, 1) * 100

RSI3 = SMA(MAX(CLOSE - LC, 0), N3, 1) / SMA(ABS(CLOSE - LC), N3, 1) * 100

return RSI1, RSI2, RSI3BOLL 布林带pythondef BOLL(N=20, P=2):

"""

BOLL 布林带

"""

MID = MA(CLOSE, N)

UPPER = MID + STD(CLOSE, N) * P

LOWER = MID - STD(CLOSE, N) * P

return UPPER, MID, LOWERWR 威廉指标pythondef WR(N=10, N1=6):

"""

W&R 威廉指标

"""

WR1 = (HHV(HIGH, N) - CLOSE) / (HHV(HIGH, N) - LLV(LOW, N)) * 100

WR2 = (HHV(HIGH, N1) - CLOSE) / (HHV(HIGH, N1) - LLV(LOW, N1)) * 100

return WR1, WR2DMI 趋向指标pythondef DMI(M1=14, M2=6):

"""

DMI 趋向指标

"""

TR = SUM(MAX(MAX(HIGH - LOW, ABS(HIGH - REF(CLOSE, 1))), ABS(LOW - REF(CLOSE, 1))), M1)

HD = HIGH - REF(HIGH, 1)

LD = REF(LOW, 1) - LOW

DMP = SUM(IF((HD > 0) & (HD > LD), HD, 0), M1)

DMM = SUM(IF((LD > 0) & (LD > HD), LD, 0), M1)

DI1 = DMP * 100 / TR

DI2 = DMM * 100 / TR

ADX = MA(ABS(DI2 - DI1) / (DI1 + DI2) * 100, M2)

ADXR = (ADX + REF(ADX, M2)) / 2

return DI1, DI2, ADX, ADXRBIAS 乖离率pythondef BIAS(L1=5, L4=3, L5=10):

"""

BIAS 乖离率

"""

BIAS = (CLOSE - MA(CLOSE, L1)) / MA(CLOSE, L1) * 100

BIAS2 = (CLOSE - MA(CLOSE, L4)) / MA(CLOSE, L4) * 100

BIAS3 = (CLOSE - MA(CLOSE, L5)) / MA(CLOSE, L5) * 100

return BIAS, BIAS2, BIAS3ASI 震动升降指标pythondef ASI(M1=26, M2=10):

"""

ASI 震动升降指标

"""

LC = REF(CLOSE, 1)

AA = ABS(HIGH - LC)

BB = ABS(LOW - LC)

CC = ABS(HIGH - REF(LOW, 1))

DD = ABS(LC - REF(OPEN, 1))

R = IF((AA > BB) & (AA > CC), AA + BB / 2 + DD / 4, IF((BB > CC) & (BB > AA), BB + AA / 2 + DD / 4, CC + DD / 4))

X = (CLOSE - LC + (CLOSE - OPEN) / 2 + LC - REF(OPEN, 1))

SI = X * 16 / R * MAX(AA, BB)

ASI = SUM(SI, M1)

ASIT = MA(ASI, M2)

return ASI, ASITVR 容量比率pythondef VR(M1=26):

"""

VR容量比率

"""

LC = REF(CLOSE, 1)

VR = SUM(IF(CLOSE > LC, VOL, 0), M1) / SUM(IF(CLOSE <= LC, VOL, 0), M1) * 100

return VRARBR 人气意愿指标pythondef ARBR(M1=26):

"""

ARBR人气意愿指标

"""

AR = SUM(HIGH - OPEN, M1) / SUM(OPEN - LOW, M1) * 100

BR = SUM(MAX(0, HIGH - REF(CLOSE, 1)), M1) / SUM(MAX(0, REF(CLOSE, 1) - LOW), M1) * 100

return AR, BRDPOpythondef DPO(M1=20, M2=10, M3=6):

DPO = CLOSE - REF(MA(CLOSE, M1), M2)

MADPO = MA(DPO, M3)

return DPO, MADPOTRIX 三重指数平滑均线pythondef TRIX(M1=12, M2=20):

TR = EMA(EMA(EMA(CLOSE, M1), M1), M1)

TRIX = (TR - REF(TR, 1)) / REF(TR, 1) * 100

TRMA = MA(TRIX, M2)

return TRIX, TRMA工具函数及行情变量 ​请注意, 由于 python 实现方式的问题, 逻辑与使用 '&' 进行判断, 逻辑或使用 '|' 进行判断。 并且逻辑判断的条件语句需要添加括号, 以明确逻辑判断的先后顺序。例如, (CLOSE > 10.2) & (VOLUME > 100).

名称收盘价C, CLOSE开盘价O, OPEN最高价H, HIGH最低价L, LOW成交量V, VOLUME10 周期前收盘价REF(CLOSE, 10)10 周期均线MA(CLOSE, 10)金叉CROSS(MA(CLOSE, 5),MA(CLOSE,10))最大值MAX(CLOSE, OPEN)最小值MIN(CLOSE, OPEN)10 周期满足条件EVERY(CLOSE > MA(CLOSE, 5), 10)10 周期收阳线数量COUNT(CLOSE > OPEN, 10)10 周期收盘价最大值HHV(CLOSE, 10)10 周期收盘价最小值LLV(CLOSE, 10)10 周期成交量加总SUM(VOLUME, 10)绝对值ABS标准差STDIF 逻辑判断IF(X, A, B) 表示 X 不为 0 则返回 A, 否则返回 B

相关掠夺

365游戏厅网页登录
金猪活动问题总汇(一)

金猪活动问题总汇(一)

🗓️ 10-29 👁️ 8158
beat365网页登录
【御正天品行走武夷】武夷山中国寒兰生长之乡

【御正天品行走武夷】武夷山中国寒兰生长之乡

🗓️ 11-21 👁️ 9366
365游戏厅网页登录
饥荒联机版一天几分钟

饥荒联机版一天几分钟

🗓️ 09-01 👁️ 6603