![]() 指標(biāo)策略--通達(dá)信指標(biāo)分享 ![]() 01 ![]() ![]() 02 ![]() ![]() VAR2賦值:最低價(jià)-1日前的最低價(jià) VAR3賦值:如果VAR2的絕對值的3日[1日權(quán)重]移動(dòng)平均>0,返回VAR2的絕對值的3日[1日權(quán)重]移動(dòng)平均,否則返回0/如果VAR2和0的較大值的3日[1日權(quán)重]移動(dòng)平均>0,返回VAR2和0的較大值的3日[1日權(quán)重]移動(dòng)平均,否則返回0*100 VAR4賦值:如果收盤價(jià)*1.2,返回VAR3*10,否則返回VAR3/10的3日指數(shù)移動(dòng)平均 VAR5賦值:38日內(nèi)最低價(jià)的最低值 VAR6賦值:38日內(nèi)VAR4的最高值 VAR7賦值:如果90日內(nèi)最低價(jià)的最低值,返回1,否則返回0 VAR8賦值:如果最低價(jià)<=VAR5,返回(VAR4+VAR6*2)/2,否則返回0的3日指數(shù)移動(dòng)平均/618*VAR7 當(dāng)滿足條件VAR8>10時(shí),在VAR8位置畫9號圖標(biāo) 當(dāng)滿足條件1時(shí),在橫軸0縱軸0.07位置書寫文字,畫洋紅色,線寬為4 當(dāng)滿足條件1時(shí),在VAR8和0位置之間畫柱狀線,寬度為4,1不為0則畫空心柱.,COLORF000FF 當(dāng)滿足條件收陽線時(shí),在橫軸0縱軸0.2位置書寫文字,畫黃色 03 ![]() ![]() import pandas as pdimport numpy import pandas as pdimport numpy as npimport talib# 假設(shè)df是包含金融市場數(shù)據(jù)的DataFrame,其中包括'最低價(jià)'、'收盤價(jià)'等列# VAR2賦值:最低價(jià)-1日前的最低價(jià)df['VAR2'] = df['最低價(jià)'] - df['最低價(jià)'].shift(1)# VAR3賦值def compute_var3(row): var2_abs_wma = talib.WMA(np.abs(df['VAR2']), timeperiod=3)[row] var2_or_zero_wma = talib.WMA(np.maximum(df['VAR2'], 0), timeperiod=3)[row] if var2_abs_wma > 0: return var2_abs_wma else: return 0 if var2_or_zero_wma <= 0 else var2_or_zero_wma * 100df['VAR3'] = df.apply(compute_var3, axis=1)# VAR4賦值def compute_var4(row): if df['收盤價(jià)'][row] * 1.2: return df['VAR3'][row] * 10 else: return talib.EMA(df['VAR3'] / 10, timeperiod=3)[row] df['VAR4'] = df.apply(compute_var4, axis=1)# VAR5賦值:38日內(nèi)最低價(jià)的最低值df['VAR5'] = df['最低價(jià)'].rolling(window=38).min()# VAR6賦值:38日內(nèi)VAR4的最高值df['VAR6'] = df['VAR4'].rolling(window=38).max()# VAR7賦值df['VAR7'] = (df['最低價(jià)'].rolling(window=90).min() == df['最低價(jià)']).astype(int)# VAR8賦值def compute_var8(row): if df['最低價(jià)'][row] <= df['VAR5'][row]: var8_value = (df['VAR4'][row] + df['VAR6'][row] * 2) / 2 else: var8_value = 0 return talib.EMA([var8_value], timeperiod=3) / 618 * df['VAR7'][row] df['VAR8'] = df.apply(compute_var8, axis=1)# 畫圖和標(biāo)記import matplotlib.pyplot as plt# 當(dāng)滿足條件VAR8>10時(shí),在VAR8位置畫9號圖標(biāo)plt.plot(df.index, df['VAR8'], label='VAR8') plt.scatter(df.index[df['VAR8'] > 10], df['VAR8'][df['VAR8'] > 10], marker='9', color='blue')# 當(dāng)滿足條件1時(shí),在橫軸0縱軸0.07位置書寫文字,畫洋紅色,線寬為4plt.text(0, 0.07, 'Condition Met', color='magenta', fontsize=12, fontweight='bold')# 當(dāng)滿足條件1時(shí),在VAR8和0位置之間畫柱狀線,寬度為4,1不為0則畫空心柱.,COLORF000FFplt.bar(df.index, df['VAR8'].clip(lower=0), width=4, color='#F000FF', edgecolor='black', linewidth=1)# 當(dāng)滿足條件收陽線時(shí),在橫軸0縱軸0.2位置書寫文字,畫黃色plt.text(0, 0.2, 'Positive Close', color='yellow', fontsize=12, fontweight='bold') plt.legend() plt.show()as npimport talib# 假設(shè)df是包含金融市場數(shù)據(jù)的DataFrame,其中包括'最低價(jià)'、'收盤價(jià)'等列# VAR2賦值:最低價(jià)-1日前的最低價(jià)df['VAR2'] = df['最低價(jià)'] - df['最低價(jià)'].shift(1)# VAR3賦值def compute_var3(row): var2_abs_wma = talib.WMA(np.abs(df['VAR2']), timeperiod=3)[row] var2_or_zero_wma = talib.WMA(np.maximum(df['VAR2'], 0), timeperiod=3)[row] if var2_abs_wma > 0: return var2_abs_wma else: return 0 if var2_or_zero_wma <= 0 else var2_or_zero_wma * 100df['VAR3'] = df.apply(compute_var3, axis=1)# VAR4賦值def compute_var4(row): if df['收盤價(jià)'][row] * 1.2: return df['VAR3'][row] * 10 else: return talib.EMA(df['VAR3'] / 10, timeperiod=3)[row] df['VAR4'] = df.apply(compute_var4, axis=1)# VAR5賦值:38日內(nèi)最低價(jià)的最低值df['VAR5'] = df['最低價(jià)'].rolling(window=38).min()# VAR6賦值:38日內(nèi)VAR4的最高值df['VAR6'] = df['VAR4'].rolling(window=38).max()# VAR7賦值df['VAR7'] = (df['最低價(jià)'].rolling(window=90).min() == df['最低價(jià)']).astype(int)# VAR8賦值def compute_var8(row): if df['最低價(jià)'][row] <= df['VAR5'][row]: var8_value = (df['VAR4'][row] + df['VAR6'][row] * 2) / 2 else: var8_value = 0 return talib.EMA([var8_value], timeperiod=3) / 618 * df['VAR7'][row] df['VAR8'] = df.apply(compute_var8, axis=1)# 畫圖和標(biāo)記import matplotlib.pyplot as plt# 當(dāng)滿足條件VAR8>10時(shí),在VAR8位置畫9號圖標(biāo)plt.plot(df.index, df['VAR8'], label='VAR8') plt.scatter(df.index[df['VAR8'] > 10], df['VAR8'][df['VAR8'] > 10], marker='9', color='blue')# 當(dāng)滿足條件1時(shí),在橫軸0縱軸0.07位置書寫文字,畫洋紅色,線寬為4plt.text(0, 0.07, 'Condition Met', color='magenta', fontsize=12, fontweight='bold')# 當(dāng)滿足條件1時(shí),在VAR8和0位置之間畫柱狀線,寬度為4,1不為0則畫空心柱.,COLORF000FFplt.bar(df.index, df['VAR8'].clip(lower=0), width=4, color='#F000FF', edgecolor='black', linewidth=1)# 當(dāng)滿足條件收陽線時(shí),在橫軸0縱軸0.2位置書寫文字,畫黃色plt.text(0, 0.2, 'Positive Close', color='yellow', fontsize=12, fontweight='bold') plt.legend() plt.show() 04 ![]() ![]() 各個(gè)變量(VAR2到VAR8),然后使用了matplotlib庫來繪制圖表和標(biāo)記特定的條件。請注意,這里的一些函數(shù)(如 此外,由于您的描述中有些條件比較模糊(如“當(dāng)滿足條件1時(shí)”),我在代碼中假設(shè)這些條件始終為真來進(jìn)行演示。在實(shí)際應(yīng)用中,您需要根據(jù)具體的條件來替換這些部分 05 ![]() ![]() 電腦版導(dǎo)入指標(biāo)步驟:
手機(jī)版通達(dá)信添加自定義指標(biāo)步驟:
{主力吸籌} 注意事項(xiàng):
|
|