版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、交易開拓者(TB)期貨程序化交易編程本文僅是寫給完全不懂編程的朋友的,僅是最基本的入門資料。TB里面代碼執(zhí)行代碼從第一根K線開始執(zhí)行,一直到最后一根K線;在每一根K線上,代碼都是從第一行開始執(zhí)行,一直到最后一行;我們就寫個輸出每日的收盤價的例子;打開TB,在左邊的TB公式里面,點擊新建技術(shù)指標,然后在出來的公式編輯器里面輸入BeginEnd注意,除了參數(shù)和變量定義外,所有的代碼都必須包含在Begin和End之間我們再在Begin和End之間輸入一些代碼,完整的就是:BeginFileAppend(c:aog,Text(Year)+年+Text(Month)+月+Text(Day)+日的收盤價等
2、于);FileAppend(C:aog,Text(Close);End我們再說說這兩行代碼是什么意思File就是文件,Append就是添加,現(xiàn)在明白了吧FileAppend就是添加一個文件,文件名是什么呢?就是你后面寫的a.log,這個文件的路徑在哪里呢?就是c:aog里面的C盤,且在這個文件里面添加一行東西,這行東西的內(nèi)容就是你后面所寫的Text(Year)+年+Text(Month)+月+Text(Day)+日的收盤價等于當然,如果這個文件已經(jīng)存在,他就不會添加文件了,僅僅在這個文件的后面添加一行上面你寫的內(nèi)容好了,再看看Text,Text的意思就是把那些不是字符串的東西如數(shù)字啊,等變成字
3、符串.而Year,Month,Day就代表了正在執(zhí)行你寫的代碼的那一根K線的年,月,日,年月日是數(shù)字,我們當然要用Text把它搞成字符串CloseK線的收盤價啊,如果代碼執(zhí)行到最后的那根K線我們點公式編輯器上面的工具欄的第五個按鈕(打勾的那個東西),校驗保存公式,稍微等一下,就0K了我們在回到K線圖里面,TB把K線圖叫做超級圖表在K線圖里面右鍵,選擇商品設置,然后吧里面的樣本數(shù)由默認的300改成5,意思是讓在超級圖表里面僅僅顯示5條K線,點確定后,你就看到在K線圖里面只顯示了5跟K線,當然現(xiàn)在代碼還不能被執(zhí)行,因為我們現(xiàn)在還需要把我們剛剛所寫的那個指標加到K線圖上面才能被執(zhí)行的我們上面說了,我
4、們這個例子僅僅是把每日的收盤價寫到文件里面去啊,那么我們找一找文件在什么地方咯?FileAppend(c:aog,很明顯,文件是在c盤的,文件的名字是a.log好了,我們到c盤找到a.log文件,雙擊打開,我們就會看到下面的內(nèi)容:2007年9月24日的收盤價等于672802007年9月25日的收盤價等于678002007年9月26日的收盤價等于671602007年9月27日的收盤價等于673002007年9月28日的收盤價等于68020我們現(xiàn)在來分析下:首先你寫的代碼在第一根K線上執(zhí)行,先執(zhí)行第一行代碼:FileAppend(c:aog,Text(Year)+年+Text(Month)+月+T
5、ext(Day)+日的收盤價等于);這行代碼就輸出了第一根K線的年,月,日,就在a.log文件里輸出成2007年9月24日的收盤價等于然后執(zhí)行第二行代碼:FileAppend(C:aog,Text(Close);折行代碼把第一根K線的收盤價輸出到a.log文件里面,于是就輸出了67280好了,代碼在第一根K線上執(zhí)行完畢,于是再轉(zhuǎn)到第二根K線,再執(zhí)行第一行代碼,再執(zhí)行第二行代碼我一直非常愿意幫助客戶們解答在編程中的難點,但是卻不大愿意幫助客戶寫完整的公式策略。這其中有三個原因:1、別人寫的交易策略,你難以調(diào)整它。據(jù)統(tǒng)計,90%以上的交易策略會在2年半之內(nèi)由于種種原因失效或者效率降低。通常的做法是
6、一個季度左右,交易員就需要微調(diào)其策略,調(diào)整參數(shù)或改動某些條件。如果策略不是自己編寫的,調(diào)整起來就會有困難。2、別人寫的交易策略,你很難徹底執(zhí)行它。系統(tǒng)交易最重要的好處在于它的執(zhí)行能力。它可以使你的交易擺脫人性的弱點,擺脫心理因素的干擾。然而這一切的基礎(chǔ),在于自信。人只會信任自己了解的東西,這是人性。如果一個交易策略是別人寫的,無論它的測試報告是多么天花亂墜,你都不會信任它,因為你不了解它。一旦市場出現(xiàn)了危機情況,你就會坐立不安,你就會總懷疑是不是策略有問題,然后就又把策略扔到一邊,回到憑感覺去操作的老路上去了。3、最重要的一點在于:編程就是理解,編寫交易策略調(diào)試交易策略的過程其實就是理解市場的
7、過程。這是一種非常寶貴的積累。大多數(shù)人都是通過在市場中虧錢,靠爆倉來理解市場的。成本高昂,而且難以總結(jié)。使用這種方法來了解市場,往往就算你虧了很多錢,交了大把學費,你仍然不知道自己到底輸在哪里。你總結(jié)不出來,你就不可能有長進,就不可能贏。而通過寫交易策略來了解市場你不需要交什么學費,從歷史測試報告里很容易分析出來自己到底錯在哪里,如此你就很容易改進。把編好的交易策略與模擬帳戶交易結(jié)合起來就可以為你帶來足夠逼真的實戰(zhàn)經(jīng)驗。編程其實是一種思想,編程的目的是把你的思想用各種圖形表現(xiàn)出來而已我們期貨編程的目的是表現(xiàn)我們的交易思想是為思想而編程,不是為編程而編程!現(xiàn)在開始寫數(shù)據(jù)類型,變量和賦值.數(shù)據(jù)類型
8、分字符串類型,數(shù)值型,還有布爾型字符串類型很簡單,用分號括起來的東西就叫做字符串類型的數(shù)據(jù),如Iloveyou,如3345,.數(shù)值型數(shù)據(jù)類型也同樣的簡單,數(shù)值大家知道吧,如1542啊,1.021啊.這些東西就是數(shù)值型的數(shù)據(jù)類型當然,如果把一個數(shù)值型的東西用分號括起來了那他就不再是數(shù)值型數(shù)據(jù)了,而是字符串類型的數(shù)據(jù)如1688是數(shù)值型數(shù)據(jù),但是1688就是字符串類型的數(shù)據(jù)了還有就是布爾型,當然,沒有接觸過編程的朋友可能不明白布爾型的意思說白點,布爾型就是真假型,意思就是布爾類型的數(shù)據(jù)只能取真(True)或假(False)值.比如21,這個東西就是布爾類型的數(shù)據(jù),因為2是大于1啊,所以這個表達式返回
9、True(真)那么21,大家說這個表達式是不是個布爾類型的數(shù)據(jù)呢?也是,因為2大于1啊,所以2Open)FileAppend(c:aog,今日收紅陽線);是不是很簡單呢?大家記住一點,凡是if(如果)語句中的代碼,都給我用括起來我們再把上面的條件加上一點:如果(收盤價開盤價)則輸出:今日收紅陽線否則如果(收盤價=開盤價)則輸出:今日收十字線我們再翻譯成TB,把否則翻譯成Else,如果翻譯成IfIf(CloseOpen)FileAppend(c:aog,今日收紅陽線);ElseIf(Close=Open)FileAppend(C:a.log,今日收十字線);同樣的簡單,我們可以再把上面的條件再加
10、:如果(收盤價開盤價)則輸出:今日收紅陽線否則如果(收盤價=開盤價)則輸出:今日收十字線否則則輸出:今日收綠陰線上面的否則大家知道翻譯成Else吧,有兩種翻譯方法,因為收盤價和開盤價的比較只存在著三種情況:收盤價大于開盤價,收盤價等于開盤價,收盤價少于開盤價,我們先這樣翻譯:If(CloseOpen)FileAppend(c:a.log,今日收紅陽線);ElseIf(Close=Open)FileAppend(C:a.log,今日收十字線);ElseIf(ClosevOpen)FileAppend(c:a.log,今日收綠陰線);上面的這個語句是很好理解的但是大家想到了嗎?開盤價和收盤價的比較
11、,如果不滿足CloseOpen迪不滿足Close=Open那么肯定的一點就是:ClosevOpen,所以上面的語句可以寫成:If(CloseOpen)FileAppend(c:a.log,今日收紅陽線);ElseIf(Close=Open)FileAppend(C:a.log,今日收十字線);ElseFileAppend(c:a.log,今日收綠陰線);再說For循環(huán)語句.先記下For語句的語法格式:For循環(huán)變量=初始值To結(jié)束值TradeBlazer公式語句;也就是(假如變量i已經(jīng)定義,且循環(huán)5次)Fori=0To4TradeBlazer公式語句;for語句的理解稍微復雜點,我們先看看Fo
12、r語句是如何執(zhí)行的:比如上面的例子首先執(zhí)行i=0,就是給變量i賦值讓i等于0,然后判斷i是不是少于等于4,這里i等于0,所以小于4,于是執(zhí)行里面的TradeBlazer公式語句;執(zhí)行里面的TradeBlazer公式語句后,TB系統(tǒng)會自動給變量i加1,這個時候i就等于1了(上面剛剛開始的時候i等于0,加了1就是等于1了)再判斷i是不是少于等于To后面的4,1當然少于4,于是再執(zhí)行里面的TradeBlazer公式語句;執(zhí)行完里面的TradeBlazer公式語句后,Tb系統(tǒng)又自動給變量i加1,上面i已經(jīng)等于1了,加1,于是這個時候i等于2了,于是再判斷變量i的值2是不是少于To后面的4,當然少于拉,
13、于是再執(zhí)行里面的TradeBlazer公式語句;以此執(zhí)行,當i等于5的時候,再與To后面的4進行比較,當然54了,所以不滿足條件了,于是不再執(zhí)行里面的TradeBlazer公式語句;而開始執(zhí)行下面的語句拉大家再研究下下面的HHV的寫法,就會很明白了的:/簡稱:HHV/名稱:求N周期的最高值/類別:用戶函數(shù)/類型:用戶函數(shù)/輸出:數(shù)值型/ParamsNumericLength(5);VarsNumerichighestValue(O);NumericminDay;Numerici;BeginminDay=Min(CurrentBai;Length-1);fori=0tominDayhighest
14、Value=Max(highestValue,ci);Commentary(最高價+text(highestValue);End現(xiàn)在說說參數(shù)與函數(shù),說完了這個東西,就要進入實踐階段了,就要準備開始實打?qū)嵉莫毩⒕帉懼笜肆耸紫任覀儽仨毭靼?,參?shù)僅僅存在于函數(shù)里面,如果函數(shù)里面存在著參數(shù),那么當你調(diào)用這個函數(shù)的時候必須要先傳遞參數(shù)給這個函數(shù)函數(shù)就是幫助我們完成某一件事情,并且完成這件事情以后會返回個東西給我們的一個方法.比如一個這樣的函數(shù)請注意,這僅僅是個假想的函數(shù),僅為了幫助理解函數(shù)是什么:GetCloseFromTrader我們就很明白,這個函數(shù)就是幫助我們到交易所跑一趟,然后把收盤價返回給我們
15、;有點明白了吧,但是仔細一想,這個東西似乎有點問題,比如返回收盤價,交易所那么多的品種,且每個品種都有那么多的月份,他到底返回的是什么東西的收盤價?。磕敲次覀冞@樣寫:GetCloseFromTrader(Cu0801)現(xiàn)在應該完全明白了,這個函數(shù)就是從交易所返回某個品種的收盤價,到底是什么品種什么月份的收盤價呢?Cu0801就是拉.其實,這里面的Cu0801就是這個函數(shù)所需要的參數(shù)!我們于是就可以這樣理解:函數(shù)是幫助用戶完成某一件事情且返回用戶所需要的數(shù)據(jù)的方法;那么參數(shù)呢?參數(shù)就是參到函數(shù)里面去的數(shù),也就是說必須要傳遞給函數(shù)的數(shù);我們現(xiàn)在不要求一定能夠自己寫函數(shù),但是必須要懂得的是要看懂這個
16、函數(shù)是做什么用的,且知道如何去調(diào)用這個函數(shù)!我們先看看下面的這個函數(shù),這個函數(shù)的名字叫:HHV,是根據(jù)輪回老大的建議改寫的,我們必須要讀懂這個函數(shù),且知道怎么樣去CODE:/簡稱:HHV/名稱:求N周期的最高值/類別:用戶函數(shù)/類型:用戶函數(shù)/輸出:數(shù)值型/ParamsNumericSeriesPrice(O);NumericLength(5);VarsNumerichighestValue(O);NumericminDay;Numerici;BeginminDay=Min(CurrentBar,Length-1);fori=0tominDayhighestValue=Max(highestV
17、alue,Pricei);ReturnhighestValue;End我們一行一行的讀,一行一行的理解;首先我們都知道,后面的代表是注釋,什么是注釋通過注釋我們可以粗略的明白這個函數(shù)是干什么的?代表了什么意思:這個函數(shù)的名字HHV,他的作用是求N周期的最高值,并且會把這個最高值返回給調(diào)用這個函數(shù)的用戶通過此,我們就能夠想到,這個N是個參數(shù),比如5個周期或者10個周期或者其他周期的最高值,再仔細一想,是什么價格的最高值啊?是收盤價的最高值還是開盤價的最高值?或者是最高價的最高值呢?于是我們也就想到了這個函數(shù)的另外個參數(shù):價格,比如5個周期的收盤價的最高值,或者10個周期的最高價的最咼值緊接著,這
18、個函數(shù)開始定義參數(shù)了,Params后面定義的就是參數(shù),一個代表要得到什么價格的最高值,一個代表要得到什么周期的最高值;參數(shù)定義完了,這個函數(shù)就開始定義變量,對于函數(shù),我們首先定義一個變量highestValue,我們這個函數(shù)必須要把這個變量返回給用戶的這個變量highestValue就代表了你想得到的最高值淇他的兩個變量我們先不要理睬,緊接著就是Begin了,前面我們說過,Begin后面,我們的代碼就要開始工作我們先想一想,假設我們求5天的收盤價的最高值,在第一根K線上,我們希望得到的收盤價的最高值就是這天的收盤價;到第二根K線的時候我們希望得到的收盤價的最高值是這兩天的收盤價中價格最高的那個
19、,第三根就是得到這三根K線里面收盤價最大的那個收盤價,第四天同樣如此,第五天同樣如此,第六天開始就取前面5天的收盤價的最高價,第七天第N天同樣如此了;這個時候我們就應該想到,如果當前K線的索引小于你需要的周期數(shù)的時候就取當前K線的前面幾個周期的最高值于是代碼開始寫:minDay=Min(CurrentBar,Length-1);這個大家都很明白吧,如果當前K線索引假設是3,而你要得到的是5個周期的最高值,因為暫時還沒有5個周期,我們我們就取這3個周期來獲得這三個周期的最高值為什么要-1呢?因為K線的索引是從0開始計算的,那么前面的minDay呢?就是個變量,我們用這個變量來代表周期,于是我們再
20、到定義變量的地方去定義這個變量:NumericminDay;再看代碼:CODE:fori=0tominDayhighestValue=Max(highestValue,Pricei);很明顯,這是一個前面我們所說的For循環(huán),在For循環(huán)里面我們必須要先定義一個變量i(可以是其他名字),代表從什么基數(shù)開始循環(huán);于是再到定義變量的地方去定義這個i變量:VarsNumerichighestValue(O);NumericminDay;Numerici;再看這個For循環(huán),當i是0的時候,看這個時候0是不是小于等于最小周期minDay,如果條件成立,就執(zhí)行:CODE:highestValue=Max
21、(highestValue,Pricei);PriceO代表今天的價格,先比較今天的價格和最高值,取最大的那個保存;再把i+1于是這個時候i為1了,再比較是不是小于等于最小周期minDay,如果條件成立,再執(zhí)行:CODE:highestValue=Max(highestValue,Pricei);這個時候Price1就代表了昨天的價格,把昨天的價格和保存的最高值比較,取他們的最高的那個再次保存;依次循環(huán),我們是不是就得到了某個周期某個價格的最高值了呢?最后面,我們用代碼:ReturnhighestValue;把這個得到的最高值返回給用戶,Return就是返回調(diào)用這個函數(shù)的時候就更簡單了,比如求
22、10個周期的收盤價的最高值:HHV(Close,10);求20個周期的最咼價的最咼值:HHV(High,20);大家在看看和分析這個文章里面的函數(shù)就會完全明白了的我們現(xiàn)在來寫一個飛狐的DMA函數(shù)原文出自這里:QUOTE:請編飛狐DMA函數(shù).函數(shù):DMA(X,N)別名:動態(tài)移動平均參數(shù):X為數(shù)組,N為計算周期返回:返回數(shù)組說明:求X的動態(tài)移動平均。算法:若Y=DMA(X,N)則Y=N*X+(1-N)*Y,其中Y表示上一周期Y值川必須小于1。示例:DMA(CLOSE,(HIGH-LOW)/CLOSE)表示求以該周期震幅為平滑因子的平均價很簡單,我們可以看出,如果要寫這個用戶函數(shù),則我們必須要先定義
23、兩個參數(shù),一個是上面的X,代表價格,我們用Price來表示,一個是N,代表動態(tài)因子,我們用Length來表示我們先新建一個用戶函數(shù),簡稱寫DMA,名稱寫:求動態(tài)移動平均,分類選用戶函數(shù),然后確定;出來如下東西:ParamsNumericNum(10);VarsBoolCon1;BeginCon1=CloseNum;ReturnCon1;End我們把那些沒用的東西刪除,僅留下下面的內(nèi)容ParamsVarsBeginEnd在定義參數(shù)的時候我們首先考慮下參數(shù)的數(shù)據(jù)類型我們先看價格參數(shù),很明顯我們應該把它定義為數(shù)值序列型,因為CloseQpen啊,都是數(shù)值序列型的對于動態(tài)因子,同樣簡單,應該是數(shù)值型,
24、于是,我們在Params關(guān)鍵字后面寫定義參數(shù)的代碼,如下:ParamsNumericSeriesPrice(IOO);NumericLength(0.5);VarsBeginEnd我們首先應該明白,我們寫函數(shù)的目的是要他幫我們做點事情并且返回個什么東西給我們,所以我們再定義一個變量ReturnValue代表這個函數(shù)要返回的數(shù)據(jù),到時候當這個函數(shù)執(zhí)行完的時候我們就把這個東西返回給調(diào)用者于是我們再在Vars后面定義一個變量ReturnVlaue,數(shù)據(jù)類型是數(shù)值序列型,因為每根K線上都有的,所以定義成序列型,代碼如下:ParamsNumericSeriesPrice(100);NumericLeng
25、th(0.5);VarsNumericSeriesReturnValue(0);BeginEnd現(xiàn)在我們開始寫這個函數(shù)的工作代碼看看這個函數(shù)的意思,今日的動態(tài)移動平均=昨日的動態(tài)移動平均*(1-動態(tài)因子)+今日的價格*動態(tài)因子;然后再把這個值Return返回就Ok了;于是我們在Begin后面寫代碼:ParamsNumericSeriesPrice(100);NumericLength(0.5);VarsNumericSeriesReturnValue(0);BeginReturnValue=ReturnValue1*(1-Length)+Price*Length;ReturnReturnVal
26、ue;End好了,這個函數(shù)就寫好了但是細心的朋友可能會發(fā)現(xiàn),這個函數(shù)還有點小問題,就是如果是第一根K線,那么這根K線的昨日的動態(tài)移動平均沒有???這樣做是不是會出錯啊?對,非常對,會出錯的啊,所以我們要先判斷一下這根K線是不是第一根K線,用什么來判斷是不是第一根K線呢?請看這個函數(shù):IntegerBarStatus()當前公式應用商品當前Bar的狀態(tài)值,返回值0表示為第一個Bar,返回值為1表示為中間的普通Bar,返回值為2表示最后一個Bar。呵呵,就用BarStatus這個函數(shù),如果他返回0,就代表第一根K線啊于是我們再改寫完善上面的代碼為:/簡稱:DMA/名稱:求動態(tài)移動平均/類別:用戶函數(shù)
27、/類型:用戶函數(shù)/輸出:數(shù)值型/ParamsNumericSeriesPrice(100);NumericLength(0.5);VarsNumericSeriesReturnValue(O);BeginIf(BarStatus=0)ReturnValue=Price;/如果是第一根K線就直接把Price賦值ElseReturnValue=ReturnValue1*(1-Length)+Price*Length;ReturnReturnValue;End我比較喜歡而且非常喜歡把交易模型做成變色的K線,紅色代表買,綠色代表賣,非常的簡單明了,但是一看就又很能明白是什么意思,K線本來就是一位大大的
28、美女,如果把紅色的K線練成一塊,把綠色的K線練成一塊,那是多少爽的一件事情啊!!于是我們就要先學會畫K線,在文華中畫K線是STICKLINE在TB中很簡單,就用PlotNumeric吧.如果你要畫紅色K線,那么就先輸出High,Low,Close,Open,很好理解吧,大家都知道陽線從上到下是最高,收盤,開盤,最低,我們這個也一樣,只是先輸出最高最低,再輸出收盤開盤;如果是要畫綠色K線,那么就按照以下順序輸出那四個價格:最高,最低,開盤,收盤,呵呵下面是畫紅色K線的代碼:PlotNumeric(High,High);PlotNumeric(Low,Low);PlotNumeric(Close,Max(Close,Open);PlotNumeric(Open,Min(Close,Open);大家看到了上面有個Max和Min函數(shù),大家可以想一想為什么咯,下面是畫綠色K線的代碼:PlotNumeric(High,High);PlotNumeric(Low,Low);PlotNumeric(Open,Max(Close,Open);PlotNumeric(Close,Min(CloseQpen);那么就讓我先來解釋下上面的為什么要用Max和Min函數(shù)吧,還是說明白一點好.如果我們要把所有K線畫成紅色K線,那么是要先輸出Hig
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新形勢下工藝品行業(yè)可持續(xù)發(fā)展戰(zhàn)略制定與實施研究報告
- 2025-2030年中國生活性服務行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實施研究報告
- 自動扶梯施工方案
- 中學教學常規(guī)要求
- 測你在床上的真實風格究竟是啥
- 真空采血管使用情況調(diào)研
- 無塵室系統(tǒng)行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 2024-2027年中國超休閑游戲行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報告
- 監(jiān)控器安裝知識培訓課件
- 車輛汽修知識培訓課件
- (八省聯(lián)考)河南省2025年高考綜合改革適應性演練 思想政治試卷(含答案)
- 綜合測試 散文閱讀(多文本)(解析版)-2025年高考語文一輪復習(新高考)
- 鈑金設備操作培訓
- 2024駕校經(jīng)營權(quán)承包合同
- 福建省能化集團筆試題目
- 快遞公司與驛站合作協(xié)議模板 3篇
- 水利工程招標文件樣本
- 品質(zhì)管控培訓質(zhì)量管理與質(zhì)量控制課件
- 小數(shù)加減乘除計算題大全(300題大全)-
- 2023-2024學年小學語文四年級素養(yǎng)檢測復習試題附答案
- 露天礦山全員安全教育培訓
評論
0/150
提交評論