資源描述:
《期貨程序化自動交易教程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、自動化交易教程歷經(jīng)16年金融風(fēng)雨,經(jīng)歷了全球市場所有商品的真實磨練準確、迅速、無所不能是投資家的目標自動化交易教程11.把交易思路告訴計算機---交易公式的創(chuàng)造12.讓公式跑起來---組裝交易策略53.多種入倉方式---靈活使用先進的武器10入倉11出倉134.各取所需---價位驅(qū)動和時間驅(qū)動145.不可或缺的所見所得的創(chuàng)作手段---仿真測試156.圖形化交易---手工和自動的完美結(jié)合,讓機器完成團隊的工作167.附錄一博雅語言教材19Boya說明19變量、數(shù)組與序列變量19系統(tǒng)關(guān)鍵詞、注釋和說明20輸入數(shù)據(jù)21運算符、表達式和賦值22控制語句23系統(tǒng)函數(shù)24子程序
2、25隱含執(zhí)行過程和自控循環(huán)26DLL方式26舉例278.附錄二多周期共振公式代碼441.把交易思路告訴計算機---交易公式的創(chuàng)造交易者一般都有自己一套完備的交易思路,這套思路包括什么條件下開倉、什么條件下加倉、什么條件下平倉、什么條件下止盈止損等等。如果要想把這套思路讓計算機自動執(zhí)行,必須得描述給計算機。這個描述的手段有不少,最主要的手段就是創(chuàng)造交易公式。創(chuàng)造好了交易公式,自動化的工作就完成的大部分。本小節(jié)我們就以一個例子為代表,描述一下交易公式的創(chuàng)作過程,具體的語法大家參考附錄一。假設(shè)一個期貨交易者,交易思路如下:開多倉的條件:1分鐘5分鐘15分鐘的MACD的DI
3、FF都高于MEA平多倉的條件:1分鐘MACD的DIFF低于MEA開空倉的條件:1分鐘5分鐘15分鐘的MACD的DIFF都低于MEA平空倉的條件:1分鐘MACD的DIFF高于MEA止盈的條件:無止損的條件:5個步長動態(tài)止損鑒于商品期貨和大盤指數(shù)的對應(yīng)關(guān)系,還希望平倉條件加入大盤的因素,比如,大盤1分鐘、5分鐘均線向上也作為平空單的條件,1分鐘、5分鐘均線向下也作為平多單的條件。這個公式怎么創(chuàng)作呢?為了高效,我們先創(chuàng)作兩個子公式,一個MACD的公式,一個是大盤均線方向的描述的公式。當(dāng)然,MACD這個公式系統(tǒng)里有,我們不需再創(chuàng)作,只是展示出來讓大家看一下。MACD的子公式
4、://MACD的算法DIFF=對數(shù)平均(收盤價,P1)-對數(shù)平均(收盤價,P2);DEA=對數(shù)平均(DIFF,P3);MACDV=2*(DIFF-DEA);//三個輸出連線(DIFF,0);#outportdef("DIFF",0xff8040,1,1,1,0,0)連線(DEA,0);#outportdef("DEA",0xff0080,1,1,1,0,0)色棒線(MACDV,0);#outportdef("MACD",0x8080ff,1,1,1,0,0,2)大盤方向的子公式,我們命名它叫”大盤方向”://加載上證指數(shù)的收盤價a=加載數(shù)據(jù)(0,1,收盤價);//求
5、5周期均線b=算術(shù)平均(a,5);//判斷均線的方向d=0;if(a>b&&b>前面的值(b,1))d=1;if(a
6、;#period(MIN1)//引用5分鐘MACD的輸出DIF5=MACD(12,26,9).DIFF;#period(MIN5)DEA5=MACD(12,26,9).DEA;#period(MIN5)//引用15分鐘MACD的輸出DIF15=MACD(12,26,9).DIFF;#period(MIN15)DEA15=MACD(12,26,9).DEA;#period(MIN15)//引用大盤方向DP1=大盤方向.Dir;#period(MIN1)DP5=大盤方向.Dir;#period(MIN5)大家看,MACD公式被引用了3次,大盤方向被引用了2次。那現(xiàn)在我們
7、就把上面那個交易者的操盤思路描述一下://開多倉條件bOcnd=DIF1>DEA1&&DIF5>DEA5&&DIF15>DEA15;//平多倉條件sCcnd=DIF18、
9、(DP1<0&&DP5<0);//開空倉條件sOcnd=DIF1DEA1
10、
11、(DP1>0&&DP5>0);//買開倉,使用系統(tǒng)隱含數(shù)量和價位策略買開倉(bOcnd,0,0,1,0,0);//賣開倉,使用系統(tǒng)隱含數(shù)量和價位策略賣開倉(sOcnd,0,0,1,0,0);if(bCcnd){//得