AMIBROKER使用文字檔+下單大師自動下單語法
日前Ashell大分享了一篇用API的方式傳送訊號給下單大師自動下單我也來分享我已經運作一段時間的作法
我的作法是利用 fopen()和fputs()函數來產生文字檔讓下單大師來偵測倉位
首先在下單大師的設定 策略種類選excel 訊號來源選文字檔 然後你可以用旁邊的按鈕來瀏覽指定你的文字檔
格式我是用印鈔機2
建議安裝虛擬硬碟Ramdisk的軟體 因為下單大師會一直去偵測這個文字檔的倉位
如果文字檔放在普通硬碟當中 會損耗的比較快
以下是程式碼說明
Tflag就是代表你目前的倉位數量 如果這個數字有變動的話下單大師就會下單
0變成1的話就會買一口多單 1便0就是多單平倉 1變成-1是多翻空 -1變成1是空翻多
Cum(Buy+Cover-Short-Sell)是我的特殊用法 可以依據你的訊號計算出目前倉位
如果出現多個buy和short訊號 而你又沒有用exrem()函數來過濾的話 就會建立多個倉位
有需要修改的是紅色字的部份 修改成你的文字檔存放的位置 (不可加反斜線)最後只要把下面這段程式碼放到 你的程式碼最後面再作必要的修改就OK了
另外有兩點需要說明
1如果同時多個程式都用到下面這段程式碼 請務必把變數名稱改掉 例如Tflag要改成TAflag 、TBflag
不可兩支程式使用相同的變數名稱 變數名稱一樣會有問題
2 Cum(Buy+Cover-Short-Sell)的結果有時候 會多一口少一口
原因是在於你第一次的訊號如果是cover,計算的結果就會比原本多1 所以要手動-1回來變成Cum(Buy+Cover-Short-Sell)-1
你第一次的訊號如果是sell,計算的結果就會比原本少1 就要要手動+1回來變成Cum(Buy+Cover-Short-Sell)+1
Tflag=Cum(Buy+Cover-Short-Sell);
ES=StrFormat("%02.0f/%02.0f/%02.0f %02.0f:%02.0f:%02.0f,%.0f,%g",Year(),Month(),Day(),Hour(),Minute(),Second(),tflag,C);
EH = fopen( "r:current.txt", "w");
if( eH )
{
fputs( eS, eH );
fclose( eH );
}
else
{
printf("Error opening file");
} 回復 9# ashell
阿 真的很抱歉 我弄錯人了下單大師 FOR AMIBROKER的API語法的作者 應該是ahell才對
ORZ
{:4_161:} 很棒的分享心得 謝謝!! 請問自動下單機很難自己寫嗎?
使用他人的下單機有無資安的問題? 本帖最後由 eclife 於 10-11-16 09:35 PM 編輯
回復 4# leo
理論上來說 當然能自己設計比較好
如果有程式設計的底子應該是不難可是我在這方面能力不足 只能用別人的
下單機其實也只是一個仲介 把策略產生的訊號 透過API下單給期貨商 謝謝分享!
要好好研究一下{:5_272:} 回復 5# eclife
這下單機有點奇怪,啟動很慢,每次都會連線到它的Server,不知道在搞甚麼東西.
上面的文字是別的使用者的看法
不是有人用AUTOIT自動下單嗎?
聽說AUTOIT比較簡單,自己是還沒碰這塊,
不過資安問題蠻重要的. 回復 7# leo
下單大師 好像蠻多人在用的我是還沒聽說過 它有資安問題 eclife大,別這樣嘛,讓amibroker可以用api下單到下單大師的範例雖然寫的不是很好,
但小弟也是費了一番心力才寫出來的,不要說是別人寫的,這樣我會哭哭的。 回復 8# eclife
我也是還沒聽說過 它有資安問題 謝謝分享!要好好研究一下 很棒很棒很棒 下單大師很多人很多人用
頁:
[1]