siat 3.2.55__py3-none-any.whl → 3.2.56__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- siat/common.py +4 -0
- siat/stock_technical.py +44 -26
- {siat-3.2.55.dist-info → siat-3.2.56.dist-info}/METADATA +1 -1
- {siat-3.2.55.dist-info → siat-3.2.56.dist-info}/RECORD +6 -6
- {siat-3.2.55.dist-info → siat-3.2.56.dist-info}/WHEEL +0 -0
- {siat-3.2.55.dist-info → siat-3.2.56.dist-info}/top_level.txt +0 -0
siat/common.py
CHANGED
@@ -3898,6 +3898,10 @@ def upgrade_siat(module_list=['siat','akshare','pandas','pandas_datareader', \
|
|
3898
3898
|
print("All specified modules are successfully upgraded except",end='')
|
3899
3899
|
print_list(fail_list,leading_blanks=1)
|
3900
3900
|
|
3901
|
+
if 'pip' in fail_list:
|
3902
|
+
print("Upgrading for pip, in Anaconda Prompt (Windows) or Terminal (Mac):")
|
3903
|
+
print(" python -m pip install --upgrade pip")
|
3904
|
+
|
3901
3905
|
return
|
3902
3906
|
|
3903
3907
|
def df_index_timezone_remove(df):
|
siat/stock_technical.py
CHANGED
@@ -2799,14 +2799,31 @@ def security_technical2(ticker,start='default',end='default',technical='MACD', \
|
|
2799
2799
|
fromdate,todate=start_end_preprocess(start=start,end=end)
|
2800
2800
|
|
2801
2801
|
#检查指标类别
|
2802
|
-
tech_list={'Bollinger':'布林带','
|
2803
|
-
|
2804
|
-
|
2805
|
-
|
2806
|
-
|
2807
|
-
|
2808
|
-
|
2809
|
-
|
2802
|
+
tech_list={'Bollinger':text_lang('布林带','Bollinger Band'), \
|
2803
|
+
'MACD':text_lang('移动异同平均线','Moving Average Convergence Divergence'), \
|
2804
|
+
'RSI':text_lang('相对强弱','Relative Strength Index'), \
|
2805
|
+
'KDJ':text_lang('随机指标','Stochastics'), \
|
2806
|
+
'OBV':text_lang('能量潮','On-Balance-Volume'), \
|
2807
|
+
'SAR':text_lang('抛物线/停损转向指标','Stop and Reverse Indicator'), \
|
2808
|
+
'VOL':text_lang('成交量指标','Volume Indicator'), \
|
2809
|
+
'ARBR':text_lang('人气(AR)意愿(BR)指标','Emotion AR & Willingness BR'), \
|
2810
|
+
'CR':text_lang('中间意愿指标','Commodity Channel Index Reversal'), \
|
2811
|
+
'EMV':text_lang('简易波动','Ease of Movement Value'), \
|
2812
|
+
'TRIX':text_lang('三重指数平滑均线','Triple Exponentially Smoothed Moving Average'), \
|
2813
|
+
'DMA':text_lang('均线差','Difference in Moving Averages'), \
|
2814
|
+
'BIAS':text_lang("乖离率",'Bias Indicator'), \
|
2815
|
+
'CCI':text_lang('顺势指标','Commodity Channel Index'), \
|
2816
|
+
'W%R':text_lang('威廉超买/超卖指标','William Overbought/Oversold Index'), \
|
2817
|
+
'ROC':text_lang('变动率','Rate of Change'), \
|
2818
|
+
'DMI':text_lang('动向指标','Directional Movement Index'), \
|
2819
|
+
'PSY':text_lang('心理线','Phycholoigical Line'), \
|
2820
|
+
'MFI':text_lang('资金流向指标','Money Flow Index'), \
|
2821
|
+
'MOM':text_lang('动量指标','Momentum'), \
|
2822
|
+
'BETA':text_lang("移动贝塔系数",'Moving Beta Coefficient'), \
|
2823
|
+
'TSF':text_lang("时间序列分析",'Time Series Forecasting'), \
|
2824
|
+
'AD':text_lang('集散指标','Accumulation/Distribution'), \
|
2825
|
+
'MA':text_lang('移动平均','Moving Average'), \
|
2826
|
+
'EMA':text_lang('指数移动平均','Exponential Moving Average')}
|
2810
2827
|
|
2811
2828
|
technical1=technical
|
2812
2829
|
if isinstance(technical,list):
|
@@ -2930,30 +2947,31 @@ def security_technical2(ticker,start='default',end='default',technical='MACD', \
|
|
2930
2947
|
|
2931
2948
|
#绘图数值缩放比例,以便使指标数量级与股价更加协调
|
2932
2949
|
magnitude_list={'RSI':[1,''],
|
2933
|
-
'OBV':[1/1000000,'百万'],
|
2950
|
+
'OBV':[1/1000000,text_lang('百万','in millions')],
|
2934
2951
|
'MACD':[1,''],
|
2935
2952
|
'KDJ':[1,''],
|
2936
2953
|
'SAR':[1,''],
|
2937
|
-
'VOL':[1/1000000,'百万'],
|
2954
|
+
'VOL':[1/1000000,text_lang('百万','in millions')],
|
2938
2955
|
'PSY':[1,''],
|
2939
2956
|
'ARBR':[1,''],
|
2940
2957
|
'CR':[1,''],
|
2941
|
-
'EMV':[
|
2958
|
+
'EMV':[1000000000,text_lang('十亿分之一','in 1 billionth')],
|
2942
2959
|
'Bollinger':[1,''],
|
2943
|
-
'TRIX':[100,'百分之一'],
|
2960
|
+
'TRIX':[100,text_lang('百分之一','%')],
|
2944
2961
|
'BIAS':[1,''],
|
2945
2962
|
'CCI':[1,''],
|
2946
2963
|
'W%R':[1,''],
|
2947
2964
|
'ROC':[1,''],
|
2948
2965
|
'DMI':[1,''],
|
2949
2966
|
'DMA':[1,''],
|
2950
|
-
'MA':[1,''],
|
2967
|
+
'MA':[1,''],
|
2968
|
+
'EMA':[1,''],
|
2951
2969
|
'MFI':[1,''],
|
2952
2970
|
'MOM':[1,''],
|
2953
2971
|
'BETA':[1,''],
|
2954
2972
|
'TSF':[1,''],
|
2955
|
-
'AD':[1/1000000,'百万'],
|
2956
|
-
'Volume':[1/1000000,'百万']}
|
2973
|
+
'AD':[1/1000000,text_lang('百万','in millions')],
|
2974
|
+
'Volume':[1/1000000,text_lang('百万','in millions')]}
|
2957
2975
|
|
2958
2976
|
mag_times=magnitude_list[technical1][0]
|
2959
2977
|
mag_label=magnitude_list[technical1][1]
|
@@ -3039,9 +3057,9 @@ def security_technical2(ticker,start='default',end='default',technical='MACD', \
|
|
3039
3057
|
|
3040
3058
|
labeltxt=l.upper()
|
3041
3059
|
if labeltxt =='DEA':
|
3042
|
-
labeltxt='慢线(DEA)'
|
3060
|
+
labeltxt=text_lang('慢线(DEA)','DEA (Slow line)')
|
3043
3061
|
if labeltxt =='DIF':
|
3044
|
-
labeltxt='快线(DIF)'
|
3062
|
+
labeltxt=text_lang('快线(DIF)','DIF (Fast line)')
|
3045
3063
|
|
3046
3064
|
axline, = ax.plot(df1.index,df1[l],label=labeltxt)
|
3047
3065
|
last_line_color = axline.get_color()
|
@@ -3082,7 +3100,7 @@ def security_technical2(ticker,start='default',end='default',technical='MACD', \
|
|
3082
3100
|
|
3083
3101
|
attention_draws[pos]=True
|
3084
3102
|
|
3085
|
-
ylabeltxt1=technical1+'指标'
|
3103
|
+
ylabeltxt1=technical1+text_lang('指标',' indicators ')
|
3086
3104
|
if mag_label != '':
|
3087
3105
|
ylabeltxt1=ylabeltxt1+'('+mag_label+')'
|
3088
3106
|
ax.set_ylabel(ylabeltxt1,fontsize=ylabel_txt_size)
|
@@ -3145,12 +3163,12 @@ def security_technical2(ticker,start='default',end='default',technical='MACD', \
|
|
3145
3163
|
seg_color=price_line_color1
|
3146
3164
|
#labeltxt=ylabeltxt2+'(当日↑)'
|
3147
3165
|
#labeltxt=ylabeltxt2+'(当日阳线)'
|
3148
|
-
labeltxt='当日↑'
|
3166
|
+
labeltxt=text_lang('当日↑','Bullish day')
|
3149
3167
|
else:
|
3150
3168
|
seg_color=price_line_color2
|
3151
3169
|
#labeltxt=ylabeltxt2+'(当日↓)'
|
3152
3170
|
#labeltxt=ylabeltxt2+'(当日阴线)'
|
3153
|
-
labeltxt='当日↓'
|
3171
|
+
labeltxt=text_lang('当日↓','Bearish day')
|
3154
3172
|
|
3155
3173
|
if first_time:
|
3156
3174
|
first_time=False; second_time=True
|
@@ -3170,14 +3188,14 @@ def security_technical2(ticker,start='default',end='default',technical='MACD', \
|
|
3170
3188
|
ax3.bar(df1up.index,df1up['Volume'],color=price_line_color1)
|
3171
3189
|
ax3.bar(df1down.index,df1down['Volume'],color=price_line_color2)
|
3172
3190
|
|
3173
|
-
ax3.set_ylabel("交易量(百万股)",fontsize=ylabel_txt_size -4)
|
3191
|
+
ax3.set_ylabel(text_lang("交易量(百万股)","Volume (in millions)"),fontsize=ylabel_txt_size -4)
|
3174
3192
|
|
3175
|
-
footnote1="\n注:"
|
3176
|
-
footnote2="价格曲线端点大中小对应当日涨跌幅度的高中低情形。"
|
3177
|
-
footnote3="横轴日期上的空白处为非交易日。\n"
|
3193
|
+
footnote1=text_lang("\n注:","\nNote: ")
|
3194
|
+
footnote2=text_lang("价格曲线端点大中小对应当日涨跌幅度的高中低情形。","The node sizes in curve refelct the amplitudes of close-open price changes in a day\n")
|
3195
|
+
footnote3=text_lang("横轴日期上的空白处为非交易日。\n","The blank areas of bars are non-trading days. ")
|
3178
3196
|
|
3179
3197
|
import datetime; todaydt = str(datetime.date.today())
|
3180
|
-
footnote4="
|
3198
|
+
footnote4=text_lang("数据来源:新浪/Stooq/Yahoo等,","Data source: Sina/Stooq/Yahoo, ")+todaydt+text_lang("统计",'')
|
3181
3199
|
|
3182
3200
|
footnote=footnote1+footnote2+footnote3+footnote4
|
3183
3201
|
ax3.set_xlabel(footnote,fontsize=ylabel_txt_size -2)
|
@@ -3185,7 +3203,7 @@ def security_technical2(ticker,start='default',end='default',technical='MACD', \
|
|
3185
3203
|
#fig.text(0.5, 0.04, 'x', ha='center')
|
3186
3204
|
plt.subplots_adjust(hspace=0.2)
|
3187
3205
|
|
3188
|
-
titletxt=ticker_name(ticker)+': '+tech_list[technical1]+technical1
|
3206
|
+
titletxt=ticker_name(ticker)+': '+text_lang(tech_list[technical1]+technical1,technical1+' ('+tech_list[technical1]+')')
|
3189
3207
|
plt.title(titletxt,fontweight='bold',fontsize=title_txt_size)
|
3190
3208
|
|
3191
3209
|
plt.gcf().autofmt_xdate()
|
@@ -18,7 +18,7 @@ siat/capm_beta.py,sha256=cxXdRVBQBllhbfz1LeTJAIWvyRYhW54nhtNUXv4HwS0,29063
|
|
18
18
|
siat/capm_beta2.py,sha256=d7lZ-VXVVmBkMVGDPlozL-9gAU3cYpHG23X1WSRCOgY,26907
|
19
19
|
siat/capm_beta_test.py,sha256=ImR0c5mc4hIl714XmHztdl7qg8v1E2lycKyiqnFj6qs,1745
|
20
20
|
siat/cmat_commons.py,sha256=Nj9Kf0alywaztVoMVeVVL_EZk5jRERJy8R8kBw88_Tg,38116
|
21
|
-
siat/common.py,sha256=
|
21
|
+
siat/common.py,sha256=voALy4D-hTj7VOmibBH-1P0QUJf6PU-aS7hjjbFP7Zo,151717
|
22
22
|
siat/compare_cross.py,sha256=3iP9TH2h3w27F2ARZc7FjKcErYCzWRc-TPiymOyoVtw,24171
|
23
23
|
siat/compare_cross_test.py,sha256=xra5XYmQGEtfIZL2h-GssdH2hLdFIhG3eoCrkDrL3gY,3473
|
24
24
|
siat/concepts_iwencai.py,sha256=m1YEDtECRT6FqtzlKm91pt2I9d3Z_XoP59BtWdRdu8I,3061
|
@@ -117,7 +117,7 @@ siat/stock_prices_kneighbors.py,sha256=WfZvo5EyeBsm-T37zDj7Sl9dPSRq5Bx4JxIJ9IUum
|
|
117
117
|
siat/stock_prices_linear.py,sha256=-OUKRr27L2aStQgJSlJOrJ4gay_G7P-m-7t7cU2Yoqk,13991
|
118
118
|
siat/stock_profile.py,sha256=B3eIwzEmiCqiCaxIlhfdEPsQBoW1PFOe1hkiY3mVF6Y,26038
|
119
119
|
siat/stock_technical-20240620.py,sha256=A4x18mZgYSA8SSiDz4u_O3gd5oVRgbI6JIiBfFY0tVw,116013
|
120
|
-
siat/stock_technical.py,sha256=
|
120
|
+
siat/stock_technical.py,sha256=bB53TCI3DE5pEwleEQjjrsuzMwhaEcmDmSuXt2xKceo,136112
|
121
121
|
siat/stock_test.py,sha256=E9YJAvOw1VEGJSDI4IZuEjl0tGoisOIlN-g9UqA_IZE,19475
|
122
122
|
siat/stooq.py,sha256=dOc_S5HLrYg48YAKTCs1eX8UTJOOkPM8qLL2KupqlLY,2470
|
123
123
|
siat/temp.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
|
@@ -138,7 +138,7 @@ siat/valuation.py,sha256=NKfeZMdDJOW42oLVHob6eSVBXUqlN1OCnnzwyGAst8c,48855
|
|
138
138
|
siat/valuation_china.py,sha256=EkZQaVkoBjM0c4MCNbaX-bMnlG0e3FXeaWczZDnkptU,67784
|
139
139
|
siat/valuation_market_china_test.py,sha256=gbJ0ioauuo4koTPH6WKUkqcXiQPafnbhU5eKJ6lpdLA,1571
|
140
140
|
siat/var_model_validation.py,sha256=R0caWnuZarrRg9939hxh3vJIIpIyPfvelYmzFNZtPbo,14910
|
141
|
-
siat-3.2.
|
142
|
-
siat-3.2.
|
143
|
-
siat-3.2.
|
144
|
-
siat-3.2.
|
141
|
+
siat-3.2.56.dist-info/METADATA,sha256=1763AmUDNyuc4gvJuqulmK7jTWVHMbE3SnDVv3evte8,7310
|
142
|
+
siat-3.2.56.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
|
143
|
+
siat-3.2.56.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
|
144
|
+
siat-3.2.56.dist-info/RECORD,,
|
File without changes
|
File without changes
|