独行之狼
4 years ago
20 changed files with 310 additions and 362 deletions
Binary file not shown.
Binary file not shown.
@ -0,0 +1,211 @@
|
||||
package com.fr.plugin.market.update; |
||||
|
||||
import com.fr.locale.InterProviderFactory; |
||||
import com.fr.log.FineLoggerFactory; |
||||
import com.fr.plugin.PluginLicenseManager; |
||||
import com.fr.plugin.context.PluginContexts; |
||||
import com.fr.stable.ArrayUtils; |
||||
import com.fr.stable.fun.Authorize; |
||||
import org.jsoup.Jsoup; |
||||
import org.jsoup.nodes.Document; |
||||
import java.awt.image.BufferedImage; |
||||
import java.io.File; |
||||
import java.io.IOException; |
||||
import java.util.regex.Pattern; |
||||
|
||||
import com.fr.design.i18n.Toolkit; |
||||
|
||||
@Authorize(callSignKey = FunConstants.PLUGIN_ID) |
||||
public class FunConstants { |
||||
static final String PLUGIN_ID = "com.fr.plugin.market.update"; |
||||
static final String AUTHOR_ERROR =InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_AUTHOR_ERROR"); |
||||
static final String CHECK_PASS = InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_CHECK_PASS"); |
||||
static final String ARGS_ERROR= InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_ArgsCountError"); |
||||
|
||||
//外汇
|
||||
static final String[] CurrencyCodeList = new String[]{ |
||||
"USD", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "FOK", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "UYU", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "YER", "ZAR", "ZMW" |
||||
}; |
||||
|
||||
//股市
|
||||
static final String[] StockArgs={ |
||||
// "股票名字","今日开盘价","昨日收盘价","当前价格","今日最高价","今日最低价","竞买价","竞卖价","成交股票数","成交金额",
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Stock_Name"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Begin_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_End_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Now_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_High_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Low_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Bid_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Auction_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Trade_Volume"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Trade_Amount"), |
||||
// "买一手数","买一报价","买二手数","买二报价","买三手数","买三报价","买四手数","买四报价","买五手数","买五报价",
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_1_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_1_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_2_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_2_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_3_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_3_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_4_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_4_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_5_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_5_Price"), |
||||
// "卖一手数","卖一报价","卖二手数","卖二报价","卖三手数","卖三报价","卖四手数","卖四报价","卖五手数","卖五报价",
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_1_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_1_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_2_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_2_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_3_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_3_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_4_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_4_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_5_Number"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_5_Price"), |
||||
// "日期","时间"
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Stock_Date"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Stock_Time"), |
||||
}; |
||||
static final String[] StockCity={ |
||||
// "上海","深圳",
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shang_Hai"), InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shen_Zhen") |
||||
}; |
||||
|
||||
//金银
|
||||
static final String[] GoldType={ |
||||
// "伦敦金","伦敦银","COMEX黄金","COMEX白银","黄金T+D","白银T+D"
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_British_Gold"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_British_Silver"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_COMEX_Gold"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_COMEX_Silver"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Gold_TD"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Silver_TD"), |
||||
}; |
||||
static final String[] GoldName={ |
||||
// "最新价","涨跌","涨跌幅","最高价","最低价","今开价","昨收价"
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_New_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Rise_Fall"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Rise_Fall_Amount"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_High_Price1"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Low_Price1"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Begin_Price1"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_End_Price1"), |
||||
}; |
||||
|
||||
//期货
|
||||
static final String[] ForwardType={ |
||||
// "WTI原油","伦敦布伦特原油","黄金","白银","天然气","铜","美国大豆"
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Crude_Oil"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Brent_Oil"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Gold"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Silver"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Natural_Gas"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Copper"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Us_Soybeans"), |
||||
}; |
||||
static final String[] ForwardURL={ |
||||
"crude-oil","brent-oil","gold","silver","natural-gas","copper","us-soybeans" |
||||
}; |
||||
static final String[] ForwardAndIndexArgs={ |
||||
// "最新","昨收","开盘","最低","最高"
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_New_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_End_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_Begin_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_Low_Price"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_High_Price"), |
||||
}; |
||||
|
||||
//指数
|
||||
static final String[] IndexType={ |
||||
// "上证指数","富时中国A50指数","恒生指数","日经225","道琼斯30(F)","美国标普500(F)","美元指数期货"
|
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shanghai_Composite"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Ftse_China_A50"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Hang_Sen"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Japan_Ni225"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_US_30-Futures"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_US_Spx_500_futures"), |
||||
InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_US_Dollar_Index"), |
||||
}; |
||||
static final String[] IndexURL={ |
||||
"shanghai-composite","ftse-china-a50","hang-sen-40","japan-ni225","us-30-futures","us-spx-500-futures","us-dollar-index" |
||||
}; |
||||
|
||||
|
||||
static final boolean author() { |
||||
return PluginLicenseManager.getInstance().getPluginLicenseByID(PLUGIN_ID).isAvailable(); |
||||
} |
||||
|
||||
static final boolean CheckStockCode(String code){ |
||||
final String regExp="^002[\\d]{3}|000[\\d]{3}|300[\\d]{3}|600[\\d]{3}|60[\\d]{4}$ "; |
||||
final boolean isMatched = Pattern.compile(regExp).matcher(code).matches(); |
||||
return isMatched; |
||||
} |
||||
|
||||
static final String CheckArgs(Object[] args, int num) { |
||||
String res = FunConstants.CHECK_PASS; |
||||
int len = ArrayUtils.getLength(args); |
||||
if (len != num) { |
||||
return "Fine-Design_FRFinanceFunction_ArgsCountError"; |
||||
} |
||||
return res; |
||||
} |
||||
static final String GetGoldData(String goldType ,String goldArgs) throws IOException { |
||||
if(!ArrayUtils.contains(GoldType,goldType)||!ArrayUtils.contains(GoldName,goldArgs)){ |
||||
return ARGS_ERROR; |
||||
} |
||||
|
||||
final String GOLD_URI = "http://www.dyhjw.com/guojijin.html"; |
||||
final String CLASS_NAME="gold_price_data"; |
||||
final String CSS_QUERY_NAME="[code='XAU']"; |
||||
Document doc = Jsoup.connect(GOLD_URI).ignoreContentType(true).get(); |
||||
String r=doc.getElementsByClass(CLASS_NAME).first().select(CSS_QUERY_NAME).first().text(); |
||||
String[] goldData=r.split(" "); |
||||
final int goldArgsIndex = ArrayUtils.indexOf(GoldName, goldArgs)+1; |
||||
return goldData[goldArgsIndex]; |
||||
|
||||
} |
||||
static final String GetForwardData(String forwardType ,String forwardArgs) throws IOException { |
||||
if(!ArrayUtils.contains(ForwardType,forwardType)||!ArrayUtils.contains(ForwardAndIndexArgs,forwardArgs)){ |
||||
return ARGS_ERROR; |
||||
} |
||||
|
||||
final int i = ArrayUtils.indexOf(ForwardType, forwardType); |
||||
final String CHINA_BANK_URI = "https://cn.investing.com/commodities/"+ForwardURL[i]; |
||||
String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54"; |
||||
Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get(); |
||||
if(ForwardAndIndexArgs[0].equals(forwardArgs)){ |
||||
return doc.getElementById("last_last").text(); |
||||
} |
||||
|
||||
final String ELEMENT_ID="quotes_summary_secondary_data"; |
||||
final String CSS_QUERY="[ dir=\"ltr\"]"; |
||||
final String summaryData = doc.getElementById(ELEMENT_ID).select(CSS_QUERY).text().replaceAll("- ",""); |
||||
final String[] split = summaryData.split(" "); |
||||
final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, forwardArgs); |
||||
return split[argsIndex-1]; |
||||
|
||||
} |
||||
static final String GetIndexData(String indexType ,String indexdArgs) throws IOException { |
||||
FineLoggerFactory.getLogger().info("InterProviderFactory.getProvider().getLocText(\"Fine-Design_Market_Update_Shanghai_Composite\"):{}",InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shanghai_Composite")); |
||||
FineLoggerFactory.getLogger().info("IndexType[0]:{}",IndexType[0]); |
||||
FineLoggerFactory.getLogger().info("ForwardAndIndexArgs[0]:{}",ForwardAndIndexArgs[0]); |
||||
if(!ArrayUtils.contains(IndexType,indexType)||!ArrayUtils.contains(ForwardAndIndexArgs,indexdArgs)){ |
||||
return ARGS_ERROR; |
||||
} |
||||
|
||||
final int i = ArrayUtils.indexOf(IndexType, indexType); |
||||
final String CHINA_BANK_URI = "https://cn.investing.com/indices/"+IndexURL[i]; |
||||
String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54"; |
||||
Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get(); |
||||
|
||||
if(ForwardAndIndexArgs[0].equals(indexdArgs)){ |
||||
return doc.getElementById("last_last").text(); |
||||
} |
||||
|
||||
final String summaryData = doc.getElementById("quotes_summary_secondary_data").select("[ dir=\"ltr\"]").text().replaceAll("- ",""); |
||||
final String[] split = summaryData.split(" "); |
||||
final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, indexdArgs); |
||||
return split[argsIndex-1]; |
||||
|
||||
} |
||||
} |
@ -0,0 +1,17 @@
|
||||
package com.fr.plugin.market.update; |
||||
|
||||
import com.fr.intelli.record.Focus; |
||||
import com.fr.intelli.record.Original; |
||||
import com.fr.plugin.transform.FunctionRecorder; |
||||
import com.fr.record.analyzer.EnableMetrics; |
||||
import com.fr.stable.fun.impl.AbstractLocaleFinder; |
||||
|
||||
@FunctionRecorder |
||||
@EnableMetrics |
||||
public class FunLocaleFinder extends AbstractLocaleFinder { |
||||
@Override |
||||
@Focus(id = FunConstants.PLUGIN_ID, text = "Plugin-Test_Function_FRExchangeRate", source = Original.PLUGIN) |
||||
public String find() { |
||||
return "com/fr/plugin/market/update/local/marketUpdate"; |
||||
} |
||||
} |
@ -1,4 +1,3 @@
|
||||
Plugin.Function.Market_Update_ID=com.fr.plugin.market.update |
||||
Plugin.Function.Market_Update_AUTHOR_ERROR=Error:authorization is expired |
||||
Plugin.Function.Market_Update_CHECK_PASS=checkPass |
||||
Plugin.Function.Market_Update_ArgsCountError=Args Count Error! |
@ -0,0 +1,66 @@
|
||||
Fine-Design_Market_Update_Shang_Hai=\u4e0a\u6d77 |
||||
Fine-Design_Market_Update_Shen_Zhen=\u6df1\u5733 |
||||
Fine-Design_Market_Update_Stock_Name=\u80a1\u7968\u540d\u5b57 |
||||
Fine-Design_Market_Update_Begin_Price=\u4eca\u65e5\u5f00\u76d8\u4ef7 |
||||
Fine-Design_Market_Update_End_Price=\u6628\u65e5\u6536\u76d8\u4ef7 |
||||
Fine-Design_Market_Update_Now_Price=\u5f53\u524d\u4ef7\u683c |
||||
Fine-Design_Market_Update_High_Price=\u4eca\u65e5\u6700\u9ad8\u4ef7 |
||||
Fine-Design_Market_Update_Low_Price=\u4eca\u65e5\u6700\u4f4e\u4ef7 |
||||
Fine-Design_Market_Update_Bid_Price=\u7ade\u4e70\u4ef7 |
||||
Fine-Design_Market_Update_Auction_Price=\u7ade\u5356\u4ef7 |
||||
Fine-Design_Market_Update_Trade_Volume=\u6210\u4ea4\u80a1\u7968\u6570 |
||||
Fine-Design_Market_Update_Trade_Amount=\u6210\u4ea4\u91d1\u989d |
||||
Fine-Design_Market_Update_Buy_1_Number=\u4e70\u4e00\u624b\u6570 |
||||
Fine-Design_Market_Update_Buy_2_Number=\u4e70\u4e8c\u624b\u6570 |
||||
Fine-Design_Market_Update_Buy_3_Number=\u4e70\u4e09\u624b\u6570 |
||||
Fine-Design_Market_Update_Buy_4_Number=\u4e70\u56db\u624b\u6570 |
||||
Fine-Design_Market_Update_Buy_5_Number=\u4e70\u4e94\u624b\u6570 |
||||
Fine-Design_Market_Update_Buy_1_Price=\u4e70\u4e00\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Buy_2_Price=\u4e70\u4e8c\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Buy_3_Price=\u4e70\u4e09\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Buy_4_Price=\u4e70\u56db\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Buy_5_Price=\u4e70\u4e94\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Sell_1_Number=\u5356\u4e00\u624b\u6570 |
||||
Fine-Design_Market_Update_Sell_1_Price=\u5356\u4e00\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Sell_2_Number=\u5356\u4e8c\u624b\u6570 |
||||
Fine-Design_Market_Update_Sell_2_Price=\u5356\u4e8c\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Sell_3_Number=\u5356\u4e09\u624b\u6570 |
||||
Fine-Design_Market_Update_Sell_3_Price=\u5356\u4e09\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Sell_4_Number=\u5356\u56db\u624b\u6570 |
||||
Fine-Design_Market_Update_Sell_4_Price=\u5356\u56db\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Sell_5_Number=\u5356\u4e94\u624b\u6570 |
||||
Fine-Design_Market_Update_Sell_5_Price=\u5356\u4e94\u62a5\u4ef7 |
||||
Fine-Design_Market_Update_Stock_Date=\u65e5\u671f |
||||
Fine-Design_Market_Update_Stock_Time=\u65f6\u95f4 |
||||
Fine-Design_Market_Update_New_Price=\u6700\u65b0\u4ef7 |
||||
Fine-Design_Market_Update_Rise_Fall=\u6da8\u8dcc |
||||
Fine-Design_Market_Update_Rise_Fall_Amount=\u6da8\u8dcc\u5e45 |
||||
Fine-Design_Market_Update_High_Price1=\u6700\u9ad8\u4ef7 |
||||
Fine-Design_Market_Update_Low_Price1=\u6700\u4f4e\u4ef7 |
||||
Fine-Design_Market_Update_Begin_Price1=\u4eca\u5f00\u4ef7 |
||||
Fine-Design_Market_Update_End_Price1=\u6628\u6536\u4ef7 |
||||
Fine-Design_Market_Update_Crude_Oil=\u0057\u0054\u0049\u539f\u6cb9 |
||||
Fine-Design_Market_Update_Brent_Oil=\u4f26\u6566\u5e03\u4f26\u7279\u539f\u6cb9 |
||||
Fine-Design_Market_Update_Gold=\u9ec4\u91d1 |
||||
Fine-Design_Market_Update_Silver=\u767d\u94f6 |
||||
Fine-Design_Market_Update_Natural_Gas=\u5929\u7136\u6c14 |
||||
Fine-Design_Market_Update_Copper=\u94dc |
||||
Fine-Design_Market_Update_Us_Soybeans=\u7f8e\u56fd\u5927\u8c46 |
||||
Fine-Design_Market_Update_Forward_New_Price=\u6700\u65b0 |
||||
Fine-Design_Market_Update_Forward_End_Price=\u6628\u6536 |
||||
Fine-Design_Market_Update_Forward_Begin_Price=\u5f00\u76d8 |
||||
Fine-Design_Market_Update_Forward_Low_Price=\u6700\u4f4e |
||||
Fine-Design_Market_Update_Forward_High_Price=\u6700\u9ad8 |
||||
Fine-Design_Market_Update_Shanghai_Composite=\u4e0a\u8bc1\u6307\u6570 |
||||
Fine-Design_Market_Update_Ftse_China_A50=\u5bcc\u65f6\u4e2d\u56fd\u0041\u0035\u0030\u6307\u6570 |
||||
Fine-Design_Market_Update_Hang_Sen=\u6052\u751f\u6307\u6570 |
||||
Fine-Design_Market_Update_Japan_Ni225=\u65e5\u7ecf\u0032\u0032\u0035 |
||||
Fine-Design_Market_Update_US_30-Futures=\u9053\u743c\u65af\u0033\u0030\u0028\u0046\u0029 |
||||
Fine-Design_Market_Update_US_Spx_500_futures=\u7f8e\u56fd\u6807\u666e\u0035\u0030\u0030\u0028\u0046\u0029 |
||||
Fine-Design_Market_Update_US_Dollar_Index=\u7f8e\u5143\u6307\u6570\u671f\u8d27 |
||||
Fine-Design_Market_Update_British_Gold=\u4f26\u6566\u91d1 |
||||
Fine-Design_Market_Update_British_Silver=\u4f26\u6566\u94f6 |
||||
Fine-Design_Market_Update_COMEX_Gold=\u0043\u004f\u004d\u0045\u0058\u9ec4\u91d1 |
||||
Fine-Design_Market_Update_COMEX_Silver=\u0043\u004f\u004d\u0045\u0058\u767d\u94f6 |
||||
Fine-Design_Market_Update_Gold_TD=\u9ec4\u91d1\u0054\u002b\u0044 |
||||
Fine-Design_Market_Update_Silver_TD=\u767d\u94f6\u0054\u002b\u0044 |
After Width: | Height: | Size: 749 B |
@ -1,202 +0,0 @@
|
||||
package com.fr.plugin.market.update; |
||||
|
||||
import com.fr.log.FineLoggerFactory; |
||||
import com.fr.plugin.PluginLicenseManager; |
||||
import com.fr.plugin.context.PluginContexts; |
||||
import com.fr.stable.ArrayUtils; |
||||
import com.fr.stable.fun.Authorize; |
||||
import org.jsoup.Jsoup; |
||||
import org.jsoup.nodes.Document; |
||||
import java.awt.image.BufferedImage; |
||||
import java.io.File; |
||||
import java.io.IOException; |
||||
import java.util.regex.Pattern; |
||||
|
||||
import static com.fr.design.i18n.Toolkit.i18nText; |
||||
|
||||
@Authorize(callSignKey = FunConstants.PLUGIN_ID) |
||||
public class FunConstants { |
||||
static final String PLUGIN_ID = "com.fr.plugin.market.update"; |
||||
static final String AUTHOR_ERROR =i18nText("Plugin.Function.Market_Update_AUTHOR_ERROR"); |
||||
static final String CHECK_PASS = i18nText("Plugin.Function.Market_Update_CHECK_PASS"); |
||||
static final String ARGS_ERROR= i18nText("Plugin.Function.Market_Update_ArgsCountError"); |
||||
|
||||
//外汇
|
||||
static final String[] CurrencyCodeList = new String[]{ |
||||
"USD", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "FOK", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "UYU", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "YER", "ZAR", "ZMW" |
||||
}; |
||||
|
||||
//股市
|
||||
static final String[] StockArgs={ |
||||
"股票名字","今日开盘价","昨日收盘价","当前价格","今日最高价","今日最低价","竞买价","竞卖价","成交股票数","成交金额", |
||||
// i18nText("Plugin.Function.Market_Update_Stock_Name"),
|
||||
// i18nText("Plugin.Function.Market_Update_Begin_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_End_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Now_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_High_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Low_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Bid_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Auction_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Trade_Volume"),
|
||||
// i18nText("Plugin.Function.Market_Update_Trade_Amount"),
|
||||
"买一手数","买一报价","买二手数","买二报价","买三手数","买三报价","买四手数","买四报价","买五手数","买五报价", |
||||
// i18nText("Plugin.Function.Market_Update_Buy_1_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_1_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_2_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_2_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_3_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_3_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_4_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_4_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_5_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Buy_5_Price"),
|
||||
"卖一手数","卖一报价","卖二手数","卖二报价","卖三手数","卖三报价","卖四手数","卖四报价","卖五手数","卖五报价", |
||||
// i18nText("Plugin.Function.Market_Update_Sell_1_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_1_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_2_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_2_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_3_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_3_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_4_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_4_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_5_Number"),
|
||||
// i18nText("Plugin.Function.Market_Update_Sell_5_Price"),
|
||||
"日期","时间" |
||||
// i18nText("Plugin.Function.Market_Update_Stock_Date"),
|
||||
// i18nText("Plugin.Function.Market_Update_Stock_Time"),
|
||||
}; |
||||
static final String[] StockCity={ |
||||
"上海","深圳", |
||||
// i18nText("Plugin.Function.Market_Update_Shang_Hai"), i18nText("Plugin.Function.Market_Update_Shen_Zhen")
|
||||
}; |
||||
|
||||
//金银
|
||||
static final String[] GoldType={ |
||||
"伦敦金","伦敦银","COMEX黄金","COMEX白银","黄金T+D","白银T+D" |
||||
}; |
||||
static final String[] GoldName={ |
||||
"最新价","涨跌","涨跌幅","最高价","最低价","今开价","昨收价" |
||||
// i18nText("Plugin.Function.Market_Update_New_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Rise_Fall"),
|
||||
// i18nText("Plugin.Function.Market_Update_Rise_Fall_Amount"),
|
||||
// i18nText("Plugin.Function.Market_Update_High_Price1"),
|
||||
// i18nText("Plugin.Function.Market_Update_Low_Price1"),
|
||||
// i18nText("Plugin.Function.Market_Update_Begin_Price1"),
|
||||
// i18nText("Plugin.Function.Market_Update_End_Price1"),
|
||||
}; |
||||
|
||||
//期货
|
||||
static final String[] ForwardType={ |
||||
"WTI原油","伦敦布伦特原油","黄金","白银","天然气","铜","美国大豆" |
||||
// i18nText("Plugin.Function.Market_Update_Crude_Oil"),
|
||||
// i18nText("Plugin.Function.Market_Update_Brent_Oil"),
|
||||
// i18nText("Plugin.Function.Market_Update_Gold"),
|
||||
// i18nText("Plugin.Function.Market_Update_Silver"),
|
||||
// i18nText("Plugin.Function.Market_Update_Natural_Gas"),
|
||||
// i18nText("Plugin.Function.Market_Update_Copper"),
|
||||
// i18nText("Plugin.Function.Market_Update_Us_Soybeans"),
|
||||
}; |
||||
static final String[] ForwardURL={ |
||||
"crude-oil","brent-oil","gold","silver","natural-gas","copper","us-soybeans" |
||||
}; |
||||
static final String[] ForwardAndIndexArgs={ |
||||
"最新","昨收","开盘","最低","最高" |
||||
// i18nText("Plugin.Function.Market_Update_Forward_New_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Forward_End_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Forward_Begin_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Forward_Low_Price"),
|
||||
// i18nText("Plugin.Function.Market_Update_Forward_High_Price"),
|
||||
}; |
||||
|
||||
//指数
|
||||
static final String[] IndexType={ |
||||
"上证指数","富时中国A50指数","恒生指数","日经225","道琼斯30(F)","美国标普500(F)","美元指数期货" |
||||
// i18nText("Plugin.Function.Market_Update_Shanghai_Composite"),
|
||||
// i18nText("Plugin.Function.Market_Update_Ftse_China_A50"),
|
||||
// i18nText("Plugin.Function.Market_Update_Hang_Sen"),
|
||||
// i18nText("Plugin.Function.Market_Update_Japan_Ni225"),
|
||||
// i18nText("Plugin.Function.Market_Update_US_30-Futures"),
|
||||
// i18nText("Plugin.Function.Market_Update_US_Spx_500_futures"),
|
||||
// i18nText("Plugin.Function.Market_Update_US_Dollar_Index"),
|
||||
}; |
||||
static final String[] IndexURL={ |
||||
"shanghai-composite","ftse-china-a50","hang-sen-40","japan-ni225","us-30-futures","us-spx-500-futures","us-dollar-index" |
||||
}; |
||||
|
||||
|
||||
static final boolean author() { |
||||
return PluginLicenseManager.getInstance().getPluginLicenseByID(PLUGIN_ID).isAvailable(); |
||||
} |
||||
|
||||
static final boolean CheckStockCode(String code){ |
||||
final String regExp="^002[\\d]{3}|000[\\d]{3}|300[\\d]{3}|600[\\d]{3}|60[\\d]{4}$ "; |
||||
final boolean isMatched = Pattern.compile(regExp).matcher(code).matches(); |
||||
return isMatched; |
||||
} |
||||
|
||||
static final String CheckArgs(Object[] args, int num) { |
||||
String res = FunConstants.CHECK_PASS; |
||||
int len = ArrayUtils.getLength(args); |
||||
if (len != num) { |
||||
return "Plugin.Function.FRFinanceFunction_ArgsCountError"; |
||||
} |
||||
return res; |
||||
} |
||||
static final String GetGoldData(String goldType ,String goldArgs) throws IOException { |
||||
if(!ArrayUtils.contains(GoldType,goldType)||!ArrayUtils.contains(GoldName,goldArgs)){ |
||||
return ARGS_ERROR; |
||||
} |
||||
|
||||
final String GOLD_URI = "http://www.dyhjw.com/guojijin.html"; |
||||
final String CLASS_NAME="gold_price_data"; |
||||
final String CSS_QUERY_NAME="[code='XAU']"; |
||||
Document doc = Jsoup.connect(GOLD_URI).ignoreContentType(true).get(); |
||||
String r=doc.getElementsByClass(CLASS_NAME).first().select(CSS_QUERY_NAME).first().text(); |
||||
String[] goldData=r.split(" "); |
||||
final int goldArgsIndex = ArrayUtils.indexOf(GoldName, goldArgs)+1; |
||||
return goldData[goldArgsIndex]; |
||||
|
||||
} |
||||
static final String GetForwardData(String forwardType ,String forwardArgs) throws IOException { |
||||
if(!ArrayUtils.contains(ForwardType,forwardType)||!ArrayUtils.contains(ForwardAndIndexArgs,forwardArgs)){ |
||||
return ARGS_ERROR; |
||||
} |
||||
|
||||
final int i = ArrayUtils.indexOf(ForwardType, forwardType); |
||||
final String CHINA_BANK_URI = "https://cn.investing.com/commodities/"+ForwardURL[i]; |
||||
String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54"; |
||||
Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get(); |
||||
if(ForwardAndIndexArgs[0].equals(forwardArgs)){ |
||||
return doc.getElementById("last_last").text(); |
||||
} |
||||
|
||||
final String ELEMENT_ID="quotes_summary_secondary_data"; |
||||
final String CSS_QUERY="[ dir=\"ltr\"]"; |
||||
final String summaryData = doc.getElementById(ELEMENT_ID).select(CSS_QUERY).text().replaceAll("- ",""); |
||||
final String[] split = summaryData.split(" "); |
||||
final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, forwardArgs); |
||||
return split[argsIndex-1]; |
||||
|
||||
} |
||||
static final String GetIndexData(String indexType ,String indexdArgs) throws IOException { |
||||
FineLoggerFactory.getLogger().info("ForwardAndIndexArgs[0]:{}",ForwardAndIndexArgs[0]); |
||||
if(!ArrayUtils.contains(IndexType,indexType)||!ArrayUtils.contains(ForwardAndIndexArgs,indexdArgs)){ |
||||
return ARGS_ERROR; |
||||
} |
||||
|
||||
final int i = ArrayUtils.indexOf(IndexType, indexType); |
||||
final String CHINA_BANK_URI = "https://cn.investing.com/indices/"+IndexURL[i]; |
||||
String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54"; |
||||
Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get(); |
||||
|
||||
if(ForwardAndIndexArgs[0].equals(indexdArgs)){ |
||||
return doc.getElementById("last_last").text(); |
||||
} |
||||
|
||||
final String summaryData = doc.getElementById("quotes_summary_secondary_data").select("[ dir=\"ltr\"]").text().replaceAll("- ",""); |
||||
final String[] split = summaryData.split(" "); |
||||
final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, indexdArgs); |
||||
return split[argsIndex-1]; |
||||
|
||||
} |
||||
} |
@ -1,10 +0,0 @@
|
||||
package com.fr.plugin.market.update; |
||||
|
||||
import com.fr.stable.fun.impl.AbstractLocaleFinder; |
||||
|
||||
public class MyLocaleFinder extends AbstractLocaleFinder { |
||||
@Override |
||||
public String find() { |
||||
return "com/fr/plugin/market/update"; |
||||
} |
||||
} |
@ -1,73 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<module type="JAVA_MODULE" version="4"> |
||||
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
||||
<exclude-output /> |
||||
<content url="file://$MODULE_DIR$"> |
||||
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" /> |
||||
</content> |
||||
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" /> |
||||
<orderEntry type="sourceFolder" forTests="false" /> |
||||
<orderEntry type="module-library"> |
||||
<library> |
||||
<CLASSES> |
||||
<root url="jar://$MODULE_DIR$/../../lib/fine-core-10.0-RELEASE-SNAPSHOT.jar!/" /> |
||||
</CLASSES> |
||||
<JAVADOC /> |
||||
<SOURCES> |
||||
<root url="jar://$MODULE_DIR$/../../lib/fine-core-10.0-RELEASE-SNAPSHOT.jar!/" /> |
||||
</SOURCES> |
||||
</library> |
||||
</orderEntry> |
||||
<orderEntry type="module-library"> |
||||
<library> |
||||
<CLASSES> |
||||
<root url="jar://$MODULE_DIR$/../../lib/gson-2.8.5.jar!/" /> |
||||
<root url="jar://$MODULE_DIR$/../../lib/fastjson-1.2.68.jar!/" /> |
||||
</CLASSES> |
||||
<JAVADOC /> |
||||
<SOURCES> |
||||
<root url="file://$MODULE_DIR$/java" /> |
||||
</SOURCES> |
||||
</library> |
||||
</orderEntry> |
||||
<orderEntry type="library" name="Maven: com.fr.third:fine-third:10.0-PERSIST-SNAPSHOT" level="project" /> |
||||
<orderEntry type="module-library"> |
||||
<library> |
||||
<CLASSES> |
||||
<root url="jar://$MODULE_DIR$/../../../demo-db-access/lib/fine-third-10.0-PERSIST-20200507.045822-102.jar!/" /> |
||||
</CLASSES> |
||||
<JAVADOC /> |
||||
<SOURCES /> |
||||
</library> |
||||
</orderEntry> |
||||
<orderEntry type="module-library"> |
||||
<library> |
||||
<CLASSES> |
||||
<root url="jar://$MODULE_DIR$/../../lib/jsoup-1.13.1.jar!/" /> |
||||
</CLASSES> |
||||
<JAVADOC /> |
||||
<SOURCES /> |
||||
</library> |
||||
</orderEntry> |
||||
<orderEntry type="module-library"> |
||||
<library> |
||||
<CLASSES> |
||||
<root url="jar://$MODULE_DIR$/../../lib/fine-decision-10.0-RELEASE-20200826.160755-1740.jar!/" /> |
||||
</CLASSES> |
||||
<JAVADOC /> |
||||
<SOURCES> |
||||
<root url="jar://$MODULE_DIR$/../../lib/fine-decision-10.0-RELEASE-20200826.160755-1740.jar!/" /> |
||||
</SOURCES> |
||||
</library> |
||||
</orderEntry> |
||||
<orderEntry type="module-library"> |
||||
<library> |
||||
<CLASSES> |
||||
<root url="jar://$MODULE_DIR$/../../lib/fine-report-designer-10.0.jar!/" /> |
||||
</CLASSES> |
||||
<JAVADOC /> |
||||
<SOURCES /> |
||||
</library> |
||||
</orderEntry> |
||||
</component> |
||||
</module> |
@ -1,60 +0,0 @@
|
||||
Plugin.Function.Market_Update_Shang_Hai=\u4e0a\u6d77 |
||||
Plugin.Function.Market_Update_Shen_Zhen=\u6df1\u5733 |
||||
Plugin.Function.Market_Update_Stock_Name=\u80a1\u7968\u540d\u5b57 |
||||
Plugin.Function.Market_Update_Begin_Price=\u4eca\u65e5\u5f00\u76d8\u4ef7 |
||||
Plugin.Function.Market_Update_End_Price=\u6628\u65e5\u6536\u76d8\u4ef7 |
||||
Plugin.Function.Market_Update_Now_Price=\u5f53\u524d\u4ef7\u683c |
||||
Plugin.Function.Market_Update_High_Price=\u4eca\u65e5\u6700\u9ad8\u4ef7 |
||||
Plugin.Function.Market_Update_Low_Price=\u4eca\u65e5\u6700\u4f4e\u4ef7 |
||||
Plugin.Function.Market_Update_Bid_Price=\u7ade\u4e70\u4ef7 |
||||
Plugin.Function.Market_Update_Auction_Price=\u7ade\u5356\u4ef7 |
||||
Plugin.Function.Market_Update_Trade_Volume=\u6210\u4ea4\u80a1\u7968\u6570 |
||||
Plugin.Function.Market_Update_Trade_Amount=\u6210\u4ea4\u91d1\u989d |
||||
Plugin.Function.Market_Update_Buy_1_Number=\u4e70\u4e00\u624b\u6570 |
||||
Plugin.Function.Market_Update_Buy_2_Number=\u4e70\u4e8c\u624b\u6570 |
||||
Plugin.Function.Market_Update_Buy_3_Number=\u4e70\u4e09\u624b\u6570 |
||||
Plugin.Function.Market_Update_Buy_4_Number=\u4e70\u56db\u624b\u6570 |
||||
Plugin.Function.Market_Update_Buy_5_Number=\u4e70\u4e94\u624b\u6570 |
||||
Plugin.Function.Market_Update_Buy_1_Price=\u4e70\u4e00\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Buy_2_Price=\u4e70\u4e8c\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Buy_3_Price=\u4e70\u4e09\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Buy_4_Price=\u4e70\u56db\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Buy_5_Price=\u4e70\u4e94\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Sell_1_Number=\u5356\u4e00\u624b\u6570 |
||||
Plugin.Function.Market_Update_Sell_1_Price=\u5356\u4e00\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Sell_2_Number=\u5356\u4e8c\u624b\u6570 |
||||
Plugin.Function.Market_Update_Sell_2_Price=\u5356\u4e8c\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Sell_3_Number=\u5356\u4e09\u624b\u6570 |
||||
Plugin.Function.Market_Update_Sell_3_Price=\u5356\u4e09\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Sell_4_Number=\u5356\u56db\u624b\u6570 |
||||
Plugin.Function.Market_Update_Sell_4_Price=\u5356\u56db\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Sell_5_Number=\u5356\u4e94\u624b\u6570 |
||||
Plugin.Function.Market_Update_Sell_5_Price=\u5356\u4e94\u62a5\u4ef7 |
||||
Plugin.Function.Market_Update_Stock_Date=\u65e5\u671f |
||||
Plugin.Function.Market_Update_Stock_Time=\u65f6\u95f4 |
||||
Plugin.Function.Market_Update_New_Price=\u6700\u65b0\u4ef7 |
||||
Plugin.Function.Market_Update_Rise_Fall=\u6da8\u8dcc |
||||
Plugin.Function.Market_Update_Rise_Fall_Amount=\u6da8\u8dcc\u5e45 |
||||
Plugin.Function.Market_Update_High_Price1=\u6700\u9ad8\u4ef7 |
||||
Plugin.Function.Market_Update_Low_Price1=\u6700\u4f4e\u4ef7 |
||||
Plugin.Function.Market_Update_Begin_Price1=\u4eca\u5f00\u4ef7 |
||||
Plugin.Function.Market_Update_End_Price1=\u6628\u6536\u4ef7 |
||||
Plugin.Function.Market_Update_Crude_Oil=\u0057\u0054\u0049\u539f\u6cb9 |
||||
Plugin.Function.Market_Update_Brent_Oil=\u4f26\u6566\u5e03\u4f26\u7279\u539f\u6cb9 |
||||
Plugin.Function.Market_Update_Gold=\u9ec4\u91d1 |
||||
Plugin.Function.Market_Update_Silver=\u767d\u94f6 |
||||
Plugin.Function.Market_Update_Natural_Gas=\u5929\u7136\u6c14 |
||||
Plugin.Function.Market_Update_Copper=\u94dc |
||||
Plugin.Function.Market_Update_Us_Soybeans=\u7f8e\u56fd\u5927\u8c46 |
||||
Plugin.Function.Market_Update_Forward_New_Price=\u6700\u65b0 |
||||
Plugin.Function.Market_Update_Forward_End_Price=\u6628\u6536 |
||||
Plugin.Function.Market_Update_Forward_Begin_Price=\u5f00\u76d8 |
||||
Plugin.Function.Market_Update_Forward_Low_Price=\u6700\u4f4e |
||||
Plugin.Function.Market_Update_Forward_High_Price=\u6700\u9ad8 |
||||
Plugin.Function.Market_Update_Shanghai_Composite=\u4e0a\u8bc1\u6307\u6570 |
||||
Plugin.Function.Market_Update_Ftse_China_A50=\u5bcc\u65f6\u4e2d\u56fd\u0041\u0035\u0030\u6307\u6570 |
||||
Plugin.Function.Market_Update_Hang_Sen=\u6052\u751f\u6307\u6570 |
||||
Plugin.Function.Market_Update_Japan_Ni225=\u65e5\u7ecf\u0032\u0032\u0035 |
||||
Plugin.Function.Market_Update_US_30-Futures=\u9053\u743c\u65af\u0033\u0030\u0028\u0046\u0029 |
||||
Plugin.Function.Market_Update_US_Spx_500_futures=\u7f8e\u56fd\u6807\u666e\u0035\u0030\u0030\u0028\u0046\u0029 |
||||
Plugin.Function.Market_Update_US_Dollar_Index=\u7f8e\u5143\u6307\u6570\u671f\u8d27 |
Loading…
Reference in new issue