siat 3.2.55__py3-none-any.whl → 3.2.57__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 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':'布林带','MACD':'指数平滑异同平均', \
2803
- 'RSI':'相对强弱','KDJ':'随机指标','OBV':'能量潮', \
2804
- 'SAR':'抛物转向','VOL':'成交量','ARBR':'人气与意愿', \
2805
- 'CR':'能力线','EMV':'简易波动','TRIX':'三重指数平滑', \
2806
- 'DMA':'均线差','BIAS':'乖离率','CCI':'顺势线', \
2807
- 'W%R':'威廉比率','ROC':'变动速率','DMI':'趋向线','PSY':'心理线', \
2808
- 'MFI':'资金流','MOM':'动量指标','BETA':'动态贝塔', \
2809
- 'TSF':'时间序列预测','AD':'量价指标','MA':'移动平均','EMA':'指数移动平均'}
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':[100000000,'亿分之一'],
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,''],'EMA':[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="数据来源:新浪/雅虎/stooq/东方财富等,"+todaydt+"统计"
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()
siat/translate.py CHANGED
@@ -1957,6 +1957,8 @@ def codetranslate1(code):
1957
1957
  ['7113.KL','Top Glove Bhd'],['3182.KL','Genting Berhad'],
1958
1958
  ['6888.KL','Axiata Berhad'],['1015.KL','AmBank'],
1959
1959
 
1960
+ ['D05.SI','DBS Bank(SG)'],['U11.SI','UOB Bank(SG)'],['O39.SI','OCBC Bank(SG)'],
1961
+
1960
1962
  ['000002.SS','SSE A Index'],['000003.SS','SSE B Index'],
1961
1963
  ['399107.SZ','SZE A Index'],['399108.SZ','SZE B Index'],
1962
1964
  ['399106.SZ','SZE Composite Index'],['399004.SZ','SZE100 Index'],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siat
3
- Version: 3.2.55
3
+ Version: 3.2.57
4
4
  Summary: Securities Investment Analysis Tools (siat)
5
5
  Home-page: https://pypi.org/project/siat/
6
6
  Author: Prof. WANG Dehong, International Business School, Beijing Foreign Studies University
@@ -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=ZRf7eq9trFmOSG_JQfWjcpSxn7B6ShB8bQ-kHi1qu9g,151526
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=1pdhk0FwiQ5v252EckmQMlr2RJQIgR3wDtaSeliDyxY,134192
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
@@ -131,14 +131,14 @@ siat/transaction_test.py,sha256=Z8g1LJCN4-mnUByXMUMoFmN0t105cbmsz2QmvSuIkbU,1858
131
131
  siat/translate-20230125.py,sha256=NPPSXhT38s5t9fzMvl_fvi4ckSB73ThLmZetVI-xGdU,117953
132
132
  siat/translate-20230206.py,sha256=-vtI125WyaJhmPotOpDAmclt_XnYVaWU9ByLWZ6FyYE,118133
133
133
  siat/translate-20230215.py,sha256=TJgtPE3n8IjljmZ4Pefy8dmHoNdFF-1zpML6BhA9FKE,121657
134
- siat/translate.py,sha256=z2l2JKx6cQK-hvPt-hTIiK5SRvuPiL_ehLEIff3FqDQ,216890
134
+ siat/translate.py,sha256=VeOmlFEOUGFzLGCvkHs6MLHcwPChxaCtOlH3l4Lycmk,216989
135
135
  siat/translate_20240606.py,sha256=63IyHWEU3Uz9mjwyuAX3fqY4nUMdwh0ICQAgmgPXP7Y,215121
136
136
  siat/universal_test.py,sha256=CDAOffW1Rvs-TcNN5giWVvHMlch1w4dp-w5SIV9jXL0,3936
137
137
  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.55.dist-info/METADATA,sha256=zJ-SJEQaVRRrlmNS4L0WZ86GAQfMubiIP286T1U_Qc4,7310
142
- siat-3.2.55.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
143
- siat-3.2.55.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
144
- siat-3.2.55.dist-info/RECORD,,
141
+ siat-3.2.57.dist-info/METADATA,sha256=s71iq16m6Vre5twfLLE1TvjanbaUZQaj43J6v-Sn4t4,7310
142
+ siat-3.2.57.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
143
+ siat-3.2.57.dist-info/top_level.txt,sha256=r1cVyL7AIKqeAmEJjNR8FMT20OmEzufDstC2gv3NvEY,5
144
+ siat-3.2.57.dist-info/RECORD,,
File without changes