聯系我們::(掃碼) | :(掃碼) |
返回列表 發帖

從一無所知開始學習交易開拓者(TB)期貨程序化交易編程1

從一無所知開始學習交易開拓者(TB)期貨程序化交易編程1

經常會看到很多朋友問:幫我寫個公式怎么樣啊?幫我把某個公式改成TB的怎么樣啊?
我想出現這種情況的原因有兩種:
一是真的不會,畢竟做期貨的會編程的不多;
二是自己如果多花點時間的話是弄的出來,但是有點懶;

我想無論是哪種原因,都應該好好的學習下TB,因為真正的你的交易思路只有你自己才清楚
而且也只有你自己去把你的交易思路用TB表現出來你才能更清楚的知道你的交易思維中有何缺點

但是編程不是一件很容易的事情,當然,如果您入門了,你會發覺TB編程其實和泡妞一樣的簡單,就看你敢不敢下手了
所以本文僅是寫給完全不懂編程的朋友的,僅是最基本的入門資料,如果您是高手,請忽略此文,以免耽誤您的時間.

我先不說那些專業術語,什么變量,函數和語法的,我們先不管他,以免看的頭暈.
我想先說說在TB中代碼的執行順序,也就是說在TB的K線圖(TB把K線叫做Bar)里面你寫的公式或者指標是如何得到執行的;
我想這個東西是最重要而且也是最好理解的.
在其他的期貨軟件比如文華飛狐一類,我們是無法知道你寫的公式是如何執行的,甚至我們不知道我們寫出來的公式是不是真的
就體現出了我們的思想,因為你寫的公式或者指標是被這些軟件在幕后進行處理的,是黑箱操作!
而TB不同,我們能夠清楚的看到你寫的代碼在任意一根K線上是如何得到執行的!!!!
好了,先說說在TB里面代碼是如何得到執行的.
1,代碼從第一根K線開始執行,一直到最后一根K線;
2,在每一根K線上,代碼都是從第一行開始執行,一直到最后一行;

明白了吧,是不是很簡單,我們先看一個小例子,如果您還不明白,那只能說我完全沒有任何能力寫這文章,您就板磚吧
我們就寫個輸出每日的收盤價的例子;
打開TB,在左邊的TB公式里面,點擊新建技術指標,新建其他的也沒有關系,然后在出來的對話框的簡稱里面填入名字,記住,這個名字只能是E文哦
在名字里面填入你喜歡的名字,點確定就OK了啊
然后在出來的公式編輯器里面輸入
Begin
End
注意,除了參數和變量定義外,所有的代碼都必須包含在Begin和End之間
意思很簡單
就是Begin后,你的代碼就開始執行了,End了,你的代碼就執行完畢拉
呵呵
我們再在Begin和End之間輸入一些代碼,完整的就是:
Begin


FileAppend("c:\\a.log",Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盤價等于");


FileAppend("C:\\a.log",Text(Close));
End
我們再說說這兩行代碼是什么意思
File就是文件,Append就是添加,現在明白了吧
FileAppend就是添加一個文件,文件名是什么呢?就是你后面寫的a.log,這個文件的路徑在哪里呢?就是c:\\a.log里面的C盤,且在這個文件里面添加一行東西,
這行東西的內容就是你后面所寫的Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盤價等于"
當然,如果這個文件已經存在,他就不會添加文件了,僅僅在這個文件的后面添加一行上面你寫的內容
好了,再看看Text,Text的意思就是把那些不是字符串的東西如數字啊,等變成字符串.而Year,Month,Day就代表了
正在執行你寫的代碼的那一根K線的年,月,日,年月日是數字,我們當然要用Text把它搞成字符串,不然Windows會告訴你你犯了錯誤的
Close的意思我不說大家也明白了吧,就是代表了當前正在執行你的代碼的那根K線的收盤價啊,呵呵,如果代碼執行到最后的那根K線
且行情正在走動的時候Close代表的就是現在的最新價了咯.
好了
我們點公式編輯器上面的工具欄的第五個按鈕(打勾的那個東西),校驗保存公式,稍微等一下,就OK了
我們在回到K線圖里面,TB把K線圖叫做超級圖表,呵呵,有點不習慣
在K線圖里面右鍵,選擇商品設置,然后吧里面的樣本數由默認的300改成5,意思是讓在超級圖表里面僅僅顯示5條K線,當然,你可以搞成任意你喜歡的數字
你甚至可以從任意一個你喜歡的時間開始顯示K線,我們選擇5跟K線僅僅是為了測試的方便
點確定后,你就看到在K線圖里面只顯示了5跟K線,所以我們的代碼也僅僅只在這5跟K線上執行了
當然現在代碼還不能被執行,因為我們現在還需要把我們剛剛所寫的那個指標加到K線圖上面才能被執行的
先發表,以免再次停電
我們再在超級圖表里面右鍵,選擇插入技術分析,在出來的列表里面選擇我們剛剛所寫的技術指標,然后確定就OKl餓
暈死,現在怎么在K線圖上沒有任何變化啊?
呵呵
我們上面說了,我們這個例子僅僅是把每日的收盤價寫到文件里面去啊,那么我們找一找文件在什么地方咯?
FileAppend("c:\\a.log",很明顯,文件是在c盤的,文件的名字是a.log
好了,我們到c盤找到a.log文件,雙擊打開,我們就會看到下面的內容:

2007年9月24日的收盤價等于
67280
2007年9月25日的收盤價等于
67800
2007年9月26日的收盤價等于
67160
2007年9月27日的收盤價等于
67300
2007年9月28日的收盤價等于
68020

我們現在來分析下:
首先你寫的代碼在第一根K線上執行,先執行第一行代碼:
FileAppend("c:\\a.log",Text(Year)+"年"+Text(Month)+"月"+Text(Day)+"日的收盤價等于");
這行代碼就輸出了第一根K線的年,月,日,就在a.log文件里輸出成"2007年9月24日的收盤價等于"
然后執行第二行代碼:
FileAppend("C:\\a.log",Text(Close));
折行代碼把第一根K線的收盤價輸出到a.log文件里面,于是就輸出了"67280"
好了,代碼在第一根K線上執行完畢,于是再轉到第二根K線,再執行第一行代碼,再執行第二行代碼
.........
好了,現在代碼在第二根,第三根,第四根K線上執行完畢,于是轉到第五根也就是最后一根K線上執行第一行代碼
再執行第二行代碼
到此為止,所有的代碼在所有的K線上執行完畢了,圓滿的完成了黨和祖國賦予他的神圣使命,于是也就有了我們上面所看到的結果:

2007年9月24日的收盤價等于
67280
2007年9月25日的收盤價等于
67800
2007年9月26日的收盤價等于
67160
2007年9月27日的收盤價等于
67300
2007年9月28日的收盤價等于
68020

OK,下回繼續

轉自TB交易論壇http://bbs.tb18.net/forum.php?mod=viewthread&tid=588&page=1&authorid=390
如何訪問權限為100,255貼子:/thread-37840-1-1.html;注冊時會員名非法、需邀請碼,注冊后仍不能回復,找不到回復按鈕:/thread-23-1-1.html;開立低傭金期貨賬戶:/thread-25049-1-1.html;量化公開課:/forum-878-1.html

返回列表
百人牛牛图标