|
日前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");
} |
|