ricequant beta python日分鐘交易歷史數(shù)據(jù)_第1頁
ricequant beta python日分鐘交易歷史數(shù)據(jù)_第2頁
ricequant beta python日分鐘交易歷史數(shù)據(jù)_第3頁
ricequant beta python日分鐘交易歷史數(shù)據(jù)_第4頁
ricequant beta python日分鐘交易歷史數(shù)據(jù)_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

RicequantBeta|PythonAPI文檔|PDF版本-byRicequant量化平日、分鐘歷史數(shù)ETF日、分鐘歷史數(shù)據(jù)

股息&費PythonSDK

Python策略oOrder

更改context更改scheduler

industry行業(yè)分類sector-板塊分類concept概念分類ponents-構(gòu)成指數(shù)的列Bar

get_csv-拿到自己的數(shù)據(jù)is_st_stock判斷是否“ST”股fenji-分級數(shù)據(jù)API、ETF、LOF和分級基的Bar目前支持的PythonPythonGoldenCross算法示例海海 我們?yōu)槟峁┓浅1憷跒g覽器的量化和分析工具,我們的平臺非常認真對待確保、數(shù)據(jù)以及運算透明的態(tài)度發(fā)展,希望與對量化有的您一同改善、進步。提供的功能改善編輯體驗如自動代碼、代碼補全來更加享受編寫您的算法。我們的各種建議,不要猶豫,請們:publicatricequant。每日數(shù)據(jù)了在一天內(nèi)的信息,如開盤價或量等。目前使用的基準-滬深300(csi300)您也可以選擇的自己想要參照的基準,只需要 函數(shù) 您 ETF,又稱“型開放式指數(shù)投資基金”(ExchangeTradedFund的縮寫),簡稱“型開放式指數(shù)金”,又稱“所基金”。ETF是一種“標的指數(shù)”變化、且在所上市的基金。ETF最大的可以通過ctrl+iwindows用戶,或command+imac的所包括:大連商品所-'DCE',所-‘SHFE’,中國金融所-‘CFFEX’,鄭州商品所-‘CZCE’。我們目前開放了790多個每日和每分鐘歷史指數(shù)數(shù)據(jù),在代碼中的使用方法和相同(也可以通過ctrl+i-windows用戶,或command+i-mac用戶進行代碼搜索)。上證滬深上證中證Ricequant從一流數(shù)據(jù)提供商處并且整理了財務三大表,市場衍生數(shù)據(jù)和財務指標衍生數(shù)據(jù)共計400涵蓋了兩市幾乎所有自上市以來的所有基本面數(shù)據(jù)。我們同時還整理了一份基本面指標的詳細字典大家可以查詢財務數(shù)據(jù)字典。財務數(shù)據(jù)/基本面數(shù)據(jù)可以用來選股,所以主要的應用是

的update_universe來加入篩選出來的結(jié)果進入池或者是使用查詢出來的財務指標數(shù)據(jù)Ricequant

對你的算法提供數(shù)據(jù)( 有三個函數(shù)和財務數(shù)據(jù)有關 , 只會在每天開盤前被觸發(fā)一次。它可以用來傳入一 來創(chuàng)建一個池

在下面的例子中,算法策略拿到了每只

函數(shù)會自動把每個

)包含進來。返回的數(shù)據(jù)接著會被

##definit(context):context.fundamental_df=get_fundamentals())我們接著看一段進階的查詢范例,查詢pe值在25和30之間并且收益排前10的defcontext.fundamental_df=fundamentals.eod_derivative_indicator.pe_ratio>fundamentals.eod_derivative_indicator.pe_ratio<))注意:我們建議您不要使 查詢太多的,那么會很容易導致程序的運行很慢,因為詢的過大而10年+的財務數(shù)據(jù)數(shù)據(jù)庫是十分龐大的。您可以在

調(diào) 函數(shù)將會返回一

,每一行對應數(shù)據(jù)庫返回的每一行(個表的聯(lián)合查詢結(jié)果的一行

context.fundamental_dfcontext.fundamental_df=把查詢出來 池傳獲得 中的這的

函數(shù),那么就可以自己手動將這些感的加入整個即可以拿到查詢財務數(shù)據(jù)返回 的列即所有的如果您想打印出來查詢完的結(jié) \000028.XSHE在rquant(anoncmetate)11月10為10月5號,也就是早于發(fā)布日期,那么返回的只是第二季度的財報數(shù)據(jù)。這樣做最大程度地模擬了真實日量 (2014年6月9號)進行了一次拆分。我們首先 以前的股價進行:7整,即調(diào)整后收盤價=收盤價/7。之后我們再對量進行7:1調(diào)整,即調(diào)整后量=量x7。在調(diào)整 在風險計算中我們使用中國的銀行間固定利率國債收益率曲線作為的零風險利率,來源于國債我們的平臺每天會市場收市2個小時以后自動處理和更新當日的歷史數(shù)據(jù)在Ricequant,我們通過一系列的措施來保護您的策略安全https通信加密:您的瀏覽器與Ricequant平臺之間的通信都經(jīng)過https加密,這代表著您的策略代碼以及入該獨立的環(huán)境,所以也不能候窺探您的任何信息。在技術上我們通過Javasecurity,separeteclassloader,linuxnamespace,linuxcgroup,linux p,selinux等來構(gòu)建這個環(huán)境。如果您-起始:回測的起始-您將使用去投資策編譯策略-點擊“編譯策略”將會使我們的實時編譯您的算法策略來查詢您的策略是否有編譯錯誤并且點擊“運行回測”將會帶您進入完整的回測結(jié)果頁面。如果您的策略有編譯/運行錯誤,您回測設置和狀態(tài):為您展示回測是否結(jié)束,起始日期和終結(jié)日期,投入的起始每日盈虧圖:柱子的高度展示了每日的盈虧情況。iWindows用戶:輸 iiMac用戶:輸 iiLinux用戶:輸 i數(shù)字代碼-自動補全為數(shù)字代碼,比如中文全稱-自動補全為中文全稱,比如“招商地產(chǎn)測的歷史日打印的。所選不存在解決辦法您當前可以使用一些其他的資訊來查詢代號,我們非常抱歉還沒有推出您們,幫助我們解決您的問題。您沒有選擇任何的,請查看API文檔至少添加一支您使用的沒有在初始化時加入列表解決辦法:遇到該錯誤時候,您需要查看API文檔,在初始化策略的時候,將加入列表所選在所選時間段內(nèi)無法描述:ricequant運行您的策略的時候需要使用到硬件資源有限,為了保證服務質(zhì)量,我們對同 描述:為了防止的策略常駐在我們的平臺上耗費計算資源,我們限制了一個回測最長的生 解決辦法:歡迎們,第一時間協(xié)助您解決這類問題股息&會在RicequantSDK中提供拆分,從而您的算法也可以試用它來作為一個數(shù)據(jù)信號。股息到帳日:現(xiàn)金股息劃撥到投資者賬戶的日期當您的投資略在股權記日時仍有分股的,那您的投資略將有資參與此股息分紅。除除息日結(jié)束的時候您投資組合中的DvidendRcivable會增加對應持有的股息分紅數(shù)目。然后在股息到帳日那天DvidendRecivablevaabash-您最終拿到了應收股息分紅的金額,并且可以用這筆錢進行再投資了。內(nèi)部已經(jīng)默認使用了所的這篇中研究的滑點值-0.246%只需要在初始化的地方##definit(context):context.slippage=0.246費只需要在初始化的地方就可以修改手續(xù)費的數(shù)額##def#0.01此處代表0.01%即萬分之mission=如果買入1000股10塊錢每股的,那么不需要繳納印花稅如果賣出1000股10塊錢每股的,那么需要繳納印花稅 .001=10 中落單,價格為當 落單量【單內(nèi)量】不應該超過當日量【當日總量】的25%,無法完成落單AnnualizedReturns:策略率。表示投資期限為一年的預期收益率。具體計算方式為回測期間策略每日收益率總和/回測日數(shù)量×252。BenarkReturns:參考標準率。具體計算方式為回測期間參考標準每日收益率總和/回測日數(shù)量×252。VolatilityVolatility n?

∑i=1(rp?rp=策略每日收益率TrackingError n?

∑i=1(rp?rp=策略每日收益率rb=參考標準每日收益率:DownsideRisk n?

∑i=1(rp?rp=策略每日收益率rt=無風險利率/目標收益率f(t)=1ifrp<rtf(t)=0ifrp≥SharpeRatio:夏普比率。表示每承受一單位總風險,會產(chǎn)生多少的超額回。具體計算方法為(策略年化收益率-回測起始日的無風險利率)/策略收益波動率。SharpeRatio=Rp?Rp=策略年化收益率Rf=無風險利率/目標收益率σp=策略收益年化波動率

SortinoRatio索提諾比率。表示每承擔一單位的下行風險,將會獲得多少超額回報(excessreturn具體計算方法為(策略率-回測起始日的無風險利率)/策略收益下行波動率。SortinoRatio=Rp?Rp=策略年化收益率Rf=無風險利率/目標收益率σd=策略收益下行年化波動率InformationRatio(參考標準每日收益)的年化均值/年化標準差。InformationRatio=Rp?Rp=策略年化收益率Rb=參考標準收益率σt=跟蹤誤差年化波動率SortinoRatio和SharpeRatio這兩個指數(shù)最大的區(qū)別在于波動率的選擇.SharpeRatio使用標準計入風險波動率中,因此收益的上漲波動不會導致指數(shù)數(shù)值的下降,和SharpeRatio比較起來,SortinoAlpha:。具體計算方式為(策略-無風險收益)-beta×(參考標準-無風險收益),這α=rp?[rf+βp(rm?rp=策略年化收益率rm=參考標準年化收益率rf=中國固定利率國債年化到期收益βp=策略的貝塔值Alphaα<投資相對于它的風險獲得了太少的收益(對于收益來險太大α=α>比如一個投資獲取了20%的收益,看上去非??捎^,但是它仍可能有負的α值因為它的風險Beta:。表示投資的系統(tǒng)風險系數(shù)。Beta數(shù)值越高代表系統(tǒng)風險越高。具體計算方法為策略每日收益與參考標準每日收益的協(xié)方差(covariance)/參考標準每日收益的方差(variance)。Cov(Rp,β VRp=策略每日收益率Rm=參考標準每日收益率Betaβ<0β=00β<β=1β>1MaxDrawdown:max(1當日之前虛擬賬戶最高價值)。和SortinoRatio一樣適合對資產(chǎn)下跌敏感的投資者。PythonSDKPython策略o以下的策略是最簡單的一個買入并持有平安銀行(buyandhold)的展示,您也可以點擊右上角的clone按鈕復##可以自己import#defcontext.s1"000001.XSHE"#order是否被發(fā)送出去context.fired=False#defhandle_bar(context,#bar_dict[order_book_id]可以拿到某 context.portfolio使用order_shares(id_or_insamount)TODOifnotorder_percent并且傳入1代表買入該order_percent(context.s1,1)context.fired=True你的算法策略目前必須實現(xiàn)至少兩個方法 , 初始化方法-在回測和實時模擬只會在啟動的時候觸發(fā)一次。你的算使用這個方法來設置你需要的各 范例defdefcash_limit的屬性是根據(jù)用戶需求自己定義的,你可以定義無限多種自己隨后需要的屬性,ricequant的系統(tǒng)默context.cash_limit=handle_barhandle_bar(context,測則會是每分鐘的切片數(shù)據(jù)會調(diào)用,那么在實時模擬中則是實時每分鐘會調(diào)用一次。對于切片數(shù)據(jù)對象你bardictionary-了關注的的bar的一defdefhandle_bar(context,#putallyouralgorithmmainlogichere.#...order_shares('000001.XSHE',500)#... before_tradingbefore_trading(context, defdefbefore_trading(context,#拿取財務數(shù)據(jù)的邏輯,自己構(gòu)建SQLAlchemyqueryfundamental_dfget_fundamentals(your_own_query)把查詢到的財務數(shù)據(jù)保存到conextcontext.fundamental_df=池Order你可以在策略中使用下面的幾種豐富的落單方法,他們不同的用法可以讓你落單的操作十分便捷。我們在那么默認是市價單(marketorder)。order_shares(order_shares(id_or_ins,amount,order_book_id或symbol或instrumentint,唯一的orderBuy2000股的平安銀行,并以市價單發(fā)order_sharesorder_shares('000001.XSHE',賣出2000股的平安銀行,并以市價單發(fā)送order_sharesorder_shares('000001.XSHE',-1000股的平安銀行,并以限價單發(fā)送,價格為order_sharesorder_shares('000001.XSHG',1000,(marketorder)order_lotsorder_lots(id_or_ins,amount,str或instrument對象-order_book_id或symbol或instrumentint,唯一的order買入20手的平安銀行,并且發(fā)送市價單order_lotsorder_lots('000001.XSHE',買入10手平安銀行,并且發(fā)送限價單,價格為order_lotsorder_lots('000001.XSHE',10,使用想要花費的金錢買入/賣出,而不是入/賣出想要的股數(shù),正數(shù)代表買入,負數(shù)代賣出。的股數(shù)總是會被調(diào)整成對應的100的倍數(shù)(在A中國市場1手是100股)。當您提交一個賣單,該方法代的義是您希望通過賣出該的金額。如果金額超出了您所持有的價值,那么您將賣出所有。order_valueorder_value(id_or_ins,cash_amount,order_book_id或symbol或instrumentint,唯一的orderorder_valueorder_value('000001.XSHE',賣出價值¥10000的現(xiàn)在持order_valueorder_value('000001.XSHE',-賣。的股數(shù)總是會被調(diào)整成對應的一手的數(shù)的倍數(shù)(1手是100股)。百分比是一個小數(shù),并且小于或order_percentorder_percent(id_or_ins,percent,order_book_id或symbol或 int,唯一的orderorder_percentorder_percent('000001.XSHG',值的。如果已經(jīng)有了該的倉位,則會買入/賣出調(diào)整該的現(xiàn)在倉位和目標倉位的價值差值的數(shù)目?order_target_valueorder_target_value(id_or_ins,cash_amount,str或instrument對象-order_book_id或symbol或instrument對象int,唯一的order 的平安銀行的倉位并且設置其目標價值為¥ order_target_valueorder_target_value('000001.XSHE',終調(diào)整該的倉位占據(jù)投資組合的比例至目標百分比。(position_to_adjustposition_to_adjust=target_position-投資組合價值等于所有已有倉位的價值和剩余現(xiàn)金的總和。買/賣單會被下舍入一手股數(shù)(是100的倍數(shù)的倍數(shù)。目標百分比應該是一個小數(shù),并且最大值應該<=1,比如0.5表示50%如 order_target_percentorder_target_percent(id_or_ins,percent,str或instrument對象-order_book_id或symbol或instrument對象int,唯一的orderorder_target_percentorder_target_percent('平安銀行'取消由order_id代表的限價單通過唯一的order_id拿到對應的訂單信息,不過這個訂單信息會

int-order<<Order:ty=100.0instrument=<Instrument:symbol='平安銀行abbrev_symbol='PAYH'round_lot=100.0sector_code='Financials'sector_name='獲取一個由order_id到order對象映射的dict,凡在此dict中的order都未被完全或取消更改context中的預設可以 defdef ark=上面的代碼片段的策略的對比參考基準從默認 defdefinit(context):context.short_selling_allowed=True可以 defdefinit(context):context.slippage=0.5更改可以 defdefmission=schedulerscheduler.run_weekly(function,weekday=x,tradingday=t)scheduler.run_monthly(function,tradingday=t)scheduler.run_weekly(function,weekday=x,tradingday=t)scheduler.run_monthly(function,tradingday=t)

,注意 使傳入 1,schedule一定在其對應時間點的handle_bar之后執(zhí)行。以下的范例代碼片段是一個非常簡單的例子,在每天后查詢現(xiàn)

defdeflog_cash(context,("Remaningcash:%r"%definit(context):scheduler.run_weekly(scheduler.run_weekly(function,weekday=x,使傳入 每日開始前運int1:周一,2:周二5:int-not范圍為[-5,1],[1,5]例:1(-1):每周(倒數(shù))第一個日,n(-n):每 表示日。如某周只有四個日,則此周

以下的代碼片段非常簡單,在每周二固定運行打印一下現(xiàn)在 defdeflog_cash(context,("Remaningcash:%r"%def:scheduler.run_weekly(log_cash,:#scheduler.run_weekly(log_cash,在每月的某個日運行一次傳入 使傳入 int范圍為[-23,1],[1,23],如:1(-1):每月(倒數(shù))第一個日,2(-每月(倒數(shù))第二個日,...,28(-28):每月(倒數(shù))第28個 表示日,如某月只有三個日,則此月的tradingday=3與tradingday=-1表示同一defquery_fundamental(context,#查詢revenue前十名的公司的 fundamental_df=get_fundamentals(query(fundamentals.eod_derivative_indicator.pe_ratio>fundamentals.eod_derivative_indicator.pe_ratio<))#context.fundamental_df=#def#每月的第一 可以達到各種自己想要達到的定時運行的目的。注意:使 定時運行只會在分鐘級別回測和實時模擬中有定義的效果,在日回測中只會默認,, 來一起使用

進行組合

來進行定日期運行已經(jīng)在上面解釋的很清楚了,這里我們主要介紹如何使 -閉市前多久運行。如果不設置 /market_close參數(shù)int-具體在market_open/market_close后/前第多少小時執(zhí)行,的時間為[9:30-11:30],[13:01-15:00]共240分鐘,所以hour的范圍為[0,4]int-間240分鐘,所以minute的范圍為[0,240],中午休市的時間區(qū)間會被忽略。返回:scheduler.run_daily(scheduler.run_daily(function,time_rule=market_open(hour=x,scheduler.run_weekly(function,scheduler.run_weekly(function,weekday=w,tradingday=t,time_rule=market_close(hour=x,每月的第t個日開市后某個時間點運行scheduler.run_monthly(scheduler.run_monthly(function,traingday=t,time_rule=market_open(hour=x,與 ,則默認在開盤后一分鐘運行,即09:31分與

的3,目前暫不支持開盤 (即09:30分 ),所以的

將不會觸發(fā)4market_open(minute=120)將在11:30market_open(minute=121)在13:01執(zhí)行,中午休市的區(qū)間會scheduler.run_daily(scheduler.run_daily(function,scheduler.run_weekly(scheduler.run_weekly(function,weekday=1,每月第一個日收盤前一小時scheduler.run_monthly(functionscheduler.run_monthly(function,

作為參數(shù),用以更新現(xiàn)在關注的的集合(e.g池)。PS:會在下一個bar觸發(fā)時候產(chǎn)生(新的關注的池更新)效果。并且update_universe會是覆(overwrite)的操作而不是在已有的池的基礎上進行增量添加。比如已有的池 之后,池就會變成 str或ibleof單個或一個id_or_symbol(s)列表下面的代碼是將池變更為只有2 update_universe([update_universe(['000001.XSHE',get_fundamentalsget_fundamentals(query,通過使 輸入一年月日的str類型,例如'2014-02-03'一

,每一行對應數(shù)據(jù)庫返回的每一行(可能是幾個表的聯(lián)合查詢結(jié)果的一行 你查詢的所有字段??梢杂脕淼椒独?/p>

來手動更新拿取財務數(shù)據(jù)中的pe_ration和revenue并且通過filter過濾掉得到符合一定范圍的pe_ration最后只拿到按照降序排序之后的前10fundamental_dfget_fundamentals(fundamentals.eod_derivative_indicator.pe_ratio>fundamentals.eod_derivative_indicator.pe_ratio<))context.stocks=fundamental_df.columns.values范例defdefcontext.stocks=("industrystocks:"+的revenue和pe_ratiocontext.fundamental_dfget_fundamentals(fundamentals.eod_derivative_indicator.pe_ratio>fundamentals.eod_derivative_indicator.pe_ratiofundamentals.eod_derivative_indicator.pe_ratio<))轉(zhuǎn)換單個string或一個string列表的order_book_id到instrument對ofstrings單個或一個列表的instrument用id_or_symbol請求的。<Instrument:industry_name='貨幣金融服務',listed_date=datetime.datetime(1991,4,3,0,0),round_lot=100.0,listing=False,abbrev_symbol='PAYH',symbol='平安銀行',industry_code='J66',type='CS',sector_code='Financials',sector_name='金融',得到一個列表的instrument對象-中國[[In]instruments(['平安銀行'000024.XSHE'])[[<Instrument:industry_name='貨幣金融服務',listed_date=datetime.datetime(1991,4,3,0,0),round_lot=100.0,listing=False,abbrev_symbol='PAYH',symbol='平安銀行',industry_code='J66',type='CS',sector_code='Financials',sector_name='金融',<Instrumentindustry_name='房地產(chǎn)業(yè)listed_date=datetime.datetime(19936700),round_lot=100.0,listing=False,abbrev_symbol='ZSDC',symbol='招商地產(chǎn)',industry_code='K70',type='CS',sector_code='Financials',sector_name='金融',historyhistory(bar_count,frequency,函數(shù)返回所有已關注的歷史行情,同時支持日以及分鐘歷史數(shù)據(jù)。以pandas的DataFrame對象注意:在我們加入的可以動態(tài)處理調(diào)整池的功能以后,您并不只能使用 券池的歷史數(shù)據(jù),您可以拿到所有想要拿的任意的的歷史數(shù)據(jù)了。表示回溯時以什么樣的頻率進行。例如"1d"或"1m"分別表示每日和每分制定返回的DataFrame中以哪個指標作為數(shù)據(jù)值,取“open”,“close”,“high”,“l(fā)ow”,“volume”,“l(fā)asttotal_turnover總額以及基金特有的"acc_net_value"-累積凈值,"unit_net_value"-單位凈值,"discount_rate"-折價率與特有的"settlement"-今日結(jié)算價,"prev_settlement"-昨日結(jié)算價,"open_interest"-持倉量,"basis_spread"-期1.printprint(history(4,'1d',當前日期:2013-01-2013-01-2013-01-2013-01-2013-01-1.printprint(history(4,'1m',當前時間:2014-01-062014-01-062014-01-062014-01-062014-01-06industry函數(shù)可以將需要的某行業(yè)分類的列單返回str-返回defdefstock_list= 列表:"+INITINFOINITINFO列表:['600354.XSHG''601118.XSHG''002772.XSHE''600313.XSHG','600672.XSHG','600359.XSHG','300143.XSHE','002041.XSHE','600540.XSHG','300189.XSHE','600108.XSHG','300087.XSHE','600598.XSHG','000998.XSHE',用行業(yè)的列表:農(nóng)副鐵路道路水上航空管道裝卸搬運和軟件和服務業(yè)業(yè)sectorstr-板塊名稱(中英可以)或板塊代返回defids1=defids1=sector("consumerINITINIT[['002045.XSHE','603099.XSHG','002486.XSHE','002536.XSHE','300100.XSHE','600633.XSHG','002291.XSHE',...,'600233.XSHG']我們目前支持的板塊分類如下,它的取值參考的是MSCIconsumerconsumerhealthinformationmunicationconceptconceptconcept(concept_name1,concept_name2,概念名稱,e.g綠色照明',可以從下面的概念列表中選擇一個或返回anarrayof代得到一個概念的列表得到某幾個概念的列表[[In]concept('民營醫(yī)院 黃粵念業(yè)央企戲氫念念ponents-構(gòu)成指數(shù)的列ponentsponents(index_name,某個指數(shù)的代碼,e.g000001.XSHG'上證指數(shù),可以在指數(shù)數(shù)據(jù)表查str-目前僅支持'cn',默認為anarrayof代碼,代表某個指數(shù)的構(gòu)成[Out]['600000.XSHG','600004.XSHG',plotplot(series_name,str-float-##defhandle_bar(context,TODOplot('close',bar_dict['000001.XSHE'].close)plot('high',bar_dict['000001.XSHE'].high)plot('low',bar_dict['000001.XSHE'].low)plot('open',get_csv

中拿到當前的bar的時間,比如daybar 隨后我們可以在編寫策略的時候使 defdefcontext.csv_df=get_csv("revenue.csv")我們把renuve.csv中的數(shù)據(jù)出來以后是一個

01234str-返 -里面保存著csv文件中的數(shù)據(jù)內(nèi)is_st_stock判斷是否“ST”些風險大的。另外,我們目前的策略比賽也了使用"ST"股。的改進:已經(jīng)加入了ST的歷史數(shù)據(jù),因此可以在回測時候知道當時是不是ST股,而不僅僅是當前今天。"ST"股包括如下:SST-公司經(jīng)營連續(xù)三年虧損,退市+還沒有完成股改;ST-公司經(jīng)營連續(xù)三年虧損,退市;ST-公司經(jīng)營連續(xù)二年虧損,特str-True表示是"ST"False表示不是“ST”fenji分級數(shù)據(jù)通過傳入當前的本期利率拿到對應的分級A的order_book_idfenji.get_fenji.get_a_by_yield(current_yield,float-bool-默認為True,該分級基金是否在所可-符合當前本期利率的分級A的order_book_id的列拿到當前收益率為4的A基的[[In]fenji.get_a_by_yield(4))通過傳入當前的利率規(guī)則拿到對應的分級A的order_book_idstr-利率規(guī)則,例如:"+3.547*1.4+0.55利差etc您也可bool-默認為True,該分級基金是否在所可-符合利率規(guī)則的分級A的order_book_id的列拿到符合利率規(guī)則“+3%”的A[[In]fenji.get_a_by_interest_rule("+3%")['502011.XSHG','150215.XSHE','150181.XSHE','150269.XSHE','150173.XSHE','150217.XSHE','502027.XSHG','150255.XSHE','150257.XSHE','150237.XSHE','150100.XSHE','150177.XSHE','502017.XSHG','150279.XSHE','150271.XSHE','150051.XSHE','150245.XSHE','150233.XSHE','502004.XSHG','150200.XSHE','150205.XSHE','150184.XSHE','502049.XSHG','150207.XSHE','150313.XSHE','150243.XSHE','150239.XSHE','150273.XSHE','150227.XSHE','150076.XSHE','150203.XSHE','150209.XSHE','150259.XSHE','150315.XSHE','150283.XSHE','150241.XSHE','150229.XSHE','150307.XSHE','150186.XSHE','150231.XSHE','502024.XSHG','502007.XSHG','150305.XSHE','150018.XSHE','150309.XSHE','150311.XSHE','150235.XSHE','150143.XSHE','150249.XSHE','150329.XSHE','150251.XSHE','150169.XSHE','150357.XSHE','150194.XSHE','150179.XSHE','150164.XSHE','150192.XSHE','150171.XSHE','150022.XSHE','150275.XSHE','150092.XSHE','150277.XSHE']arrayofstr-默認為所有的-column是分級基金的各項數(shù)據(jù),包括如下的字段到期日,可能為NaN[In][In] 0益 永益永11 55 股 股拿到只有2個字段的0152xueqiu.top_stocks(field,xueqiu.top_stocks(field,date,freq,count, 注意:我們最早支持的雪球數(shù)據(jù)只 年 日,之后的數(shù)據(jù)我們都會保持更新str-目前支持的雪球數(shù)據(jù)統(tǒng)計指標有:昨日新增評論 ,總評論,昨日新增關注者 ,總關注者數(shù)目,賣出行為 ,買入行為date-不輸入的話默認就是當天之前一天的統(tǒng)計數(shù)據(jù),e.g.'2015-12-11',注意:我 年月 日,之后的數(shù)據(jù)我們都會保持更新。str- -每周和 -每月的統(tǒng)integer指定返回多少個結(jié)果,默認是10"str"-'cn'or默認市場,目前僅支持一 對象,index是,第一個列是order_book_id即代碼,第二列是對應的指標名拿到當天前一天的新增留言前a=a=("獲取按(a) a=xueqiu.top_stocks(a=xueqiu.top_stocks('total_followers')("total_followers 拿到當天前一周的新增關注前aa=xueqiu.top_stocks('new_followers',freq='week')("newfollowersweek 拿到當天前一周的新增關注前aa=xueqiu.top_stocks('new_followers',freq='week',count=100)("newfollowersweek Bar基金和。它會發(fā)送 、ETF、LOF和分級基金的Bar的唯一的易讀的代碼,比如:“平安銀行 總額該;?的Bar對()的唯一的標識符,比如:‘滬深()的唯一的易讀的代碼,比如:‘滬深 總額期現(xiàn)差-該是否可以中。 可以; 同時 mavgmavg(intervals,可以用來計算某個的某段時間的移動平均價格,默認單位是‘天間隔的頻率,默認是“天vwap(intervals,可以用來計算某個的某段時間的平均價格,默認單位是“天間隔的頻率,默認是“天Order該訂單已經(jīng)的股Portfolio對

回測或?qū)嵄P給算法策略設置的初始組合價值/投資組合的初始。投資組合價值包含剩余現(xiàn)金和其投資組合當前的市場價值(未實現(xiàn)/平倉的價值投資組合的 Position對對象代表一個的倉位信息??梢酝ㄟ^positions字典拿到,例如:如果你的投資組合有平安銀(000001.XSHE)的倉位,你可以通過以下代碼拿到它的倉位并 交,那么平安銀行這個的倉位就是票200股并且賣出過100股,那么這個屬性會返回100.該的總買入的價值,等于每一個該的買入的價格*買入股數(shù)的該的總賣出價值,等于每一個該的賣出的價格*賣出股數(shù)的總該倉位的總的次數(shù)該倉位可賣出股數(shù)。T+1的市場中sellable所有持倉-獲得該持倉的實時市場價值在總投資組合價值中所占比例,取值范圍[0,1]Instrument代表所有的金融,例如:可以是,ETF,指數(shù)和合同,ETF,指數(shù)Instrument平安銀行的名縮寫。一手是多少股,中國一手是100股該是否還在所型:'CSINDXLOFETFFenjiMuFenjiAFenjiB'MainBoard主板,'GEMInstrument

()的獨特的標識符,比如()的易讀的名字,比如:‘滬深該是否還在所該()的上市日期合約乘數(shù)。合約價值=今日結(jié)算價*合約乘最后我們目前支持的類型:'CS','INDX','LOF','ETF','FenjiMu','FenjiA','FenjiB',產(chǎn)品類型,股指-'Index',商品-'Commodity',國-'ernment'哪個所:大連商品所-'DCE',交易所-‘SHFE’,中國金融所-‘CFFEX’,鄭州商品所-‘CZCE’,<<Instrument:type='Future',underlying_symbol='IF',contract_multiplier=300.0,symbol='滬深1005'underlying_order_book_id='CSI300.INDX'listed_date=datetime.datetime(2010416,0,0),maturity_date=datetime.datetime(2010,5,21,0,0),exchange='CFFEX',round_lot=1.0,abbrev_symbol='HS1005',product='Index',settlement_method='CashSettlementRequired',order_book_id='IF1005'>CommonCommonListedOpen-EndedExchangeTradedFenjiMu

融資融券(深市

即時基礎利率LPRimportimportpandasasdf=打打文檔(你需要在新的頁 TA-Lib是一個被員/程序員常用的過150+Statsmodels是一個Python的模塊可以(Linearregressionmodels)種類選擇-dict,list,set和tupleMarkovModels)模塊,類似scikit-超級簡單的卡爾曼濾波Filter),KalmanSmoother和EMarch提供了Univariatevolatility模comparisonprocedures TensorflowisanopensourcesoftwarelibraryformachinePython算法第一個策略-買入&持萬事開頭難,這是一個最簡單的策略:在回測開始的第一天買入量的100%的平安銀行并且一直持有??梢酝ㄟ^右上角的clone按鈕很方便的把范例算法到自己的算法列表中,您可以更改一下代碼以及回測#可以自己#可以自己import#defcontext.s1"000001.XSHE"#是否已發(fā)送了ordercontext.fired=False#defhandle_bar(context,#bar_dict[order_book_id]可以拿到某 context.portfolio使用order_shares(id_or_insamount)TODOifnotorder_percent并且傳入1代表買入該order_percent(context.s1,1)context.fired=GoldenCross以下是一個我們使用TALib在我們的平臺上編寫的goldencross算法的示例,使用了simplemovingaverage方#可以自己import我們平臺支持的 importtalibimportnumpyasnpimportmathimport#defcontext.s1=設置這個策略當中會用到的參數(shù),在策略中可以隨時調(diào)用,這個策略使用長短均線,我們在這里設定長線和短線的context.SHORTPERIOD=context.LONGPERIOD=#你選擇 defhandle_bar(contextbar_dict):#開始編寫你的主要的算法邏輯#bar_dict[order_book_id]可以拿到某個的bar#context.portfolio可以拿到現(xiàn)在的投資組合狀態(tài)信息使用order_shares(id_or_ins,amount)方法進行落單#TODO:開始編寫你的算法吧!因為策略需要用到均線,所以需要歷史數(shù)據(jù)prices=#使用talib計算長短兩根均線,均線以array的格式表達short_avgtalib.SMA(prices,context.SHORTPERIOD)long_avg=talib.SMA(prices,context.LONGPERIOD)plot("shortavg",short_avg[-1])plot("longavg",long_avg[-1])#計算現(xiàn)在portfolio curPosition=context.portfolio.positions[context.s1]. #計算現(xiàn)在portfolio中的現(xiàn)金可以 shares=如果短均線從上往下跌破長均線,也就是在目前的bar短線平均值低于長線平均值,而上一個bar的短線平均值高ifshort_avg[-1]-long_avg[-1]<0andshort_avg[-2]-long_avg[-2]>0andcurPosition>0:ifshort_avg[-1]-long_avg[-1]>0andshort_avg[-2]-long_avg[-2]<0:單MACD算法示以下是一個我們使用TALib在我們的平臺上編寫的單MACD算法示例,使用了TALib的MACD方法##可以自己importimporttalibimportnumpyasnpimportmathimport#defcontext.s1=使用MACD需要設置長短均線和macdcontext.SHORTPERIOD=context.LONGPERIOD=context.SMOOTHPERIOD=context.OBSERVATION=#defhandle_bar(context,#bar_dict[order_book_id]可以拿到某 #context.portfolio使用order_shares(id_or_ins,amount)方法進行落單#TODO:開始編寫你的算法吧! prices=用Talib計算MACD取值,得到三個時間序列數(shù)組,分別為macd,signal和histmacd,signal,hist=plot("macdsignal",signal[-1])macd是長短均線的差值,signal是macd的均線,使用macd策略有幾種不同的方法,我們這里采用macd線突如果macd從上往下跌破ifmacd[-1]-signal[-1]<0andmacd[-2]-signal[-2]>0:#計算現(xiàn)在portfolio中 curPosition= ifcurPosition>0:ifmacd[-1]-signal[-1]>0andmacd[-2]-signal[-2]<0:order_target_percent(context.s1,多RSI算法示以下是一個我們使用TALib在我們的平臺上編寫的多RSI算法示例,使用了TALib的RSI方法##可以自己importimporttalibimportnumpyasnpimportmathimport#def的context.s1=context.s2="601988.XSHG"context.s3=context.stocks=context.TIME_PERIOD=context.HIGH_RSI=context.LOW_RSI=context.ORDER_PERCENT=#你選擇 defhandle_bar(contextbar_dict):#開始編寫你的主要的算法邏輯#bar_dict[order_book_id]可以拿到某個的bar#context.portfolio可以拿到現(xiàn)在的投資組合狀態(tài)信息使用order_shares(id_or_ins,amount)方法進行落單#TODO:開始編寫你的算法吧!#對我們選中 forstockincontext.stocks: prices=#用Talib計算RSIrsi_data=talib.RSI(prices,timeperiod=context.TIME_PERIOD)[-curPosition=context.portfolio.positions[stock]. target_available_cash=context.portfolio.cash*ifrsi_data>context.HIGH_RSIandcurPosition>0:

ifrsi_data<("targetavailablecashcaled:"+#如果剩余的現(xiàn)金不夠一手100shares,那么會被ricequant的ordermanagementsystemorder_value(stock,target_available_cash)財務數(shù)據(jù)策略在回測開始前,通過查詢回測開始當天的財務數(shù)據(jù),獲得市盈率大于55且小于60,營業(yè)總收入前10的然后將所有平攤到這10個Buy&Hold的策略。您可以clone之后自行修改,通過查詢回測開始當天的金量不足以滿足買入如此多組成的一籃子投資組合)#可以自己import我們平臺支持的 #def#查詢revenue前十名的公司的 fundamental_df=get_fundamentals(query(fundamentals.eod_derivative_indicator.pe_ratio>fundamentals.eod_derivative_indicator.pe_ratio<))#context.fundamental_df=#對于每一 context.stocks=context.fundamental_df.columns.valuesstocksNumber=len(context.stocks)context.average_percent=0.99/stocksN("Calculatedaveragepercentforeachstockis:%f"%context.average_percent)context.fired=False#你選擇 defhandle_bar(contextbar_dict):#開始編寫你的主要的算法邏輯#bar_dict[order_book_id]可以拿到某 context.portfolio使用order_shares(id_or_insamount)TODOifnotforstockincontext.stocks:("Bought:"+str(context.average_percent)+"%forstock:"context.fired=比例分配買入一個10個的投資組合:##可以自己importdefquery_fundamental(context,#查詢revenue前十名的公司的 fundamental_df=get_fundamentals(query(fundamentals.eod_derivative_indicator.pe_ratio>fundamentals.eod_derivative_indicator.pe_ratio<))-#context.fundamental_df=#context.stocks=stocksNumber=len(context.stocks)context.average_percent=0.99/stocksN("Calculatedaveragepercentforeachstockis:%f"%#先查一下選出來 ##("Clearingallthecurrentforholding_stockinifcontext.portfolio.positions[holding_stock]. ty!=0:order_target_percent(holding_stock,0)("Buildingnewpositionsforforstockincontext.stocks:order_target_percent(stock,("Buying:"+str(context.average_percent)+"%forstock:"+#definit(context):scheduler.run_monthly(query_fundamental,monthday=1)#你選擇 defhandle_bar(contextbar_dict):#開始編寫你的主要的算法邏輯#bar_dict[order_book_id]可以拿到某 context.portfolio使用order_shares(id_or_insamount)方法進行落單#TODO:開始編寫你的算法吧!importimportnumpyasimporttalibimportmathdefgetExtremem(arrayHighPriceResult,np_arrayHighPriceResult=np.array(arrayHighPriceResult[:-1])np_arrayLowPriceResult=np.array(arrayLowPriceResult[:-1])maxResult=np_arrayHighPriceResult.max()minResult=return[maxResult,defgetAtrAndUnit(atrArrayResult,atrLengthResult,portfolioValueResult):atr=atrArrayResult[atrLengthResult-1]unit=math.floor(portfolioValueResult*.01/return[atr,defgetStopPrice(firstOpenPriceResult,units_hold_result,stopPrice=firstOpenPriceResult-2*atrResult+(units_hold_result-returndefcontext.trade

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論