AlgoStars.NET 策略星部落格文章精選1
如何使用StarBridge介接訊號
StarBridge是專門讀取「文字訊號檔案」的介接程式,只要您使用的策略軟體可編輯程式碼產生外部TXT格式檔案,您都可以利用StarBridge來發送訊號。前往下載
Step1. 請先了解「文字檔格式說明」
StarBridge依照判斷「訊號文字檔案」中文字內容的變動,發出下單訊號;為了因應不同商品的交易需求,StarBridge對於證券、期貨及選擇權商品,讀取的文字格式略有差異,請務必確認您的文字格式符合以下各類交易商品的規範。
期貨商品文字格式

*由左至右欄位為:(1)日期 (2)時間 (3)倉位 (4)價格。(請以空格分開)
選擇權商品文字格式

*由左至右欄位為:(1)日期 (2)時間 (3)倉位。(請以空格分開)
證券商品文字格式

*由左至右欄位為:(1)日期 (2)時間 (3)倉位 (4)價格種類 (5)價格。(請以空格分開)
文字檔中各個欄位數值將決定您發出的下單訊號內容,詳細說明如下:
StarBridge透過「日期」欄位判斷是否送出訊號,請務必確認日期欄位為當日(您的電腦的日期),若您產生的「日期」為前一日或更早之前的日期,則StarBridge將不會送出您的策略訊號。
StarBridge透過「倉位」欄位的數字變化,來決定當訊息產生變化時的「買」、「賣」與「交易口(張)數」,舉例來說,當倉位由0變成1時,將發出買1口的訊號。StarBridge會依照您的「倉位」起始值做為運算的標的,請您特別留意每日「倉位」的起始值應該設定為「0」。
期貨:StarBridge依照期貨文字格式中「價格」欄位的數字送出委託,如價格欄位未填時,將自動以市價委託。
選擇權:選擇權文字格式不包含「價格」欄位,一律以市價送出委託。
證券:在證券商品的格式中,必須填入一個「價格種類」欄位,當其數值為0時,StarBridge將依照後方「價格」欄位送出限價委託。當價格種類為其他數字時(1代表平盤價、2代表漲跌價、3代表跌停價),將直接以價格種類送出委託,不會讀取後方「價格」欄位。
Step2.編輯策略程式碼,產生訊號文字檔
請在您的交易策略公式中加上一段程式碼,來產生文字訊號檔,此段程式碼將決定TXT檔案的文字格式<請符合StarBridge文字格式>,當您啟動策略並觸發買賣條件時,買賣訊號將自動寫入您指定的文字訊號檔案中。請您特別留意程式碼正確性,以免造成訊號錯誤。
請依照您使用的策略軟體編輯程式碼:
請您先下載我們提供的增益指令檔StarBridge.dll,將檔案貼至您電腦C:\下。

*請開啟PowerLanguage Editor,編輯您策略填入以下EasyLanguage程式碼。
如您要交易「期貨」商品,請填入:
- DefineDLLFunc: "C:\StarBridge.dll", int, "WriteLimitPosition", int, int ;
-----------------------------------------------------------------
中間請置入您的策略程式碼
-----------------------------------------------------------------
WriteLimitPosition(marketposition,Price); {output file location => 檔案路徑\訊息文字檔案名稱.txt}
如您要交易「選擇權」商品,請填入:
- DefineDLLFunc: "C:\StarBridge.dll", int, "WriteMarketPosition", int ;
-----------------------------------------------------------------
中間請置入您的策略程式碼
-----------------------------------------------------------------
WriteMarketPosition(marketposition); {output file location => 檔案路徑\訊息文字檔案名稱.txt}
如您要交易「證券」商品,請填入:
- DefineDLLFunc: "C:\StarBridge.dll", int, "WriteStockPosition", int, int, double ;
-----------------------------------------------------------------
中間請置入您的策略程式碼
-----------------------------------------------------------------
WriteStockPosition(marketposition,PriceType,Price); {output file location => 檔案路徑\訊息文字檔案名稱.txt}
- *以上程式碼包含未定義字串「PriceType」「Price」,請依照您的策略,在程式碼中自行定義。

*請在您的交易策略按右鍵選擇「編輯公式」開啟交易策略程式碼,填入產生文字訊號的程式碼。
如您要交易「期貨」商品,請填入:
- cur_cmd:=NUMTOSTR(YEAR,0)+'/'+NUMTOSTR(MONTH,0)+'/'+NUMTOSTR(DAY,0)+'
'+NUMTOSTR(HOUR,0)+':'+NUMTOSTR(MINUTE,0)+':'+’00’+' '+Position+' '+Price;
<%
on error resume next
Dimfso,MyFile
cur_cmd=FFL.VarData("cur_cmd")
Set fso=CreateObject("Scripting.FileSystemObject")
Set MyFile=fso.CreateTextFile("檔案路徑\訊息文字檔案名稱.txt",True)
MyFile.WriteLine(cur_cmd)
MyFile.Close
err.clear
%>
如您要交易「選擇權」商品,請填入:
- cur_cmd:=NUMTOSTR(YEAR,0)+'/'+NUMTOSTR(MONTH,0)+'/'+NUMTOSTR(DAY,0)+
'+NUMTOSTR(HOUR,0)+':'+NUMTOSTR(MINUTE,0)+':'+’00’+' '+Position;
<%
on error resume next
Dimfso,MyFile
cur_cmd=FFL.VarData("cur_cmd")
Set fso=CreateObject("Scripting.FileSystemObject")
Set MyFile=fso.CreateTextFile("檔案路徑\訊息文字檔案名稱.txt",True)
MyFile.WriteLine(cur_cmd)
MyFile.Close
err.clear
%>
如您要交易「證券」商品,請填入:
- cur_cmd:=NUMTOSTR(YEAR,0)+'/'+NUMTOSTR(MONTH,0)+'/'+NUMTOSTR(DAY,0)+'
'+NUMTOSTR(HOUR,0)+':'+NUMTOSTR(MINUTE,0)+':'+’00’+' '+Position+' '+PriceType
+' '+Price;
<%
on error resume next
Dimfso,MyFile
cur_cmd=FFL.VarData("cur_cmd")
Set fso=CreateObject("Scripting.FileSystemObject")
Set MyFile=fso.CreateTextFile("檔案路徑\訊息文字檔案名稱.txt",True) MyFile.WriteLine(cur_cmd)
MyFile.Close
err.clear
%> - *以上程式碼包含未定義字串「Position」「PriceType」「Price」,請依照您的策略,在程式碼中自行定義。

*請您在「系統交易>買賣信號」中選擇您要編輯的策略,點兩下開啟策略程式碼,並填入產生文字訊號的程式碼。
如您要交易「期貨」商品,請填入:
- FileDelete("檔案路徑\訊息文字檔案名稱.txt")
FileAppend("檔案路徑\訊息文字檔案名稱.txt",(cdate(date) +" "+ ctime(time)+" "+Position+" "+Price
如您要交易「選擇權」商品,請填入:
- FileDelete("檔案路徑\訊息文字檔案名稱.txt")
FileAppend("檔案路徑\訊息文字檔案名稱.txt",(cdate(date) +" "+ ctime(time)+" "+Position
如您要交易「證券」商品,請填入:
- FileDelete("檔案路徑\訊息文字檔案名稱.txt")
FileAppend("檔案路徑\訊息文字檔案名稱.txt",(cdate(date) +" "+ ctime(time)+" "+Position+" "+PriceType+" "+Price - *以上程式碼包含未定義字串「Position」「PriceType」「Price」,請依照您的策略,在程式碼中自行定義。

*請您在「開發人員>Visul Basic」編輯您的Visul Basic程式碼,填入產生文字訊號的程式碼。
如您要交易「期貨」商品,請填入:
- Private Sub Worksheet_Change(ByVal Target As Range)
Open "檔案路徑\訊息文字檔案名稱.txt" For Output As #1"
Print #1, Format(Date, "yyyy/mm/dd") + " " + Format(Time(), "hh:mm:ss") + " " + Str(Range("倉位欄位").Value)+ " " +Str(Range("價格欄位").Value)
Close #1
End Sub
如您要交易「選擇權」商品,請填入:
- Private Sub Worksheet_Change(ByVal Target As Range)
Open "檔案路徑\訊息文字檔案名稱.txt" For Output As #1"
Print #1, Format(Date, "yyyy/mm/dd") + " " + Format(Time(), "hh:mm:ss") + " " + Str(Range("倉位欄位").Value)
Close #1
End Sub
如您要交易「證券」商品,請填入:
- Private Sub Worksheet_Change(ByVal Target As Range)
Open "檔案路徑\訊息文字檔案名稱.txt" For Output As #1"
Print #1, Format(Date, "yyyy/mm/dd") + " " + Format(Time(), "hh:mm:ss") + " " + Str(Range("倉位欄位").Value)+ " " + Str(Range("價格種類欄位").Value)+ " " + Str(Range("價格欄位").Value)
Close #1
End Sub
- *請依照您的策略在VBA程式碼中自行定義各數值讀取欄位的表格位置。
Step3. 自策略軟體開始發送訊號
開啟您的策略軟體主程式,建立一個「報價」與「策略」組合,當策略判斷報價符合策略訂定的買賣條件時(請務必確認報價接收系統),即發出買賣訊號。
以奇狐、飛狐策略軟體為例:

*選擇一個交易商品,並開啟該商品的報價視窗,您的策略會以這個商品的即時報價進行運算。

*加入一個「交易系統指標」(請選擇您在STEP2已填入”產生文字檔的程式碼”的策略)。

*請確認您已「啟動接收系統」接收交易商品的即時報價。

*完成後,當觸動策略的買賣條件時,買賣訊號將出現在線圖中。
Step4. 開啟StarBridge,將文字訊號發送至AlgoStars
請您先下載StarBridge並進行安裝。
安裝完畢後,請您開啟StarBridge主程式,進行「文字訊號檔」與「AlgoStars策略」的對應;完成後,StarBridge將透過讀取您的文字訊號檔發送訊號至AlgoStars。

*請輸入您在AlgoStars註冊的「Email帳號」及「登入密碼」登入StarBridge程式。

*請您針對「AlgoStars交易策略」,選擇您要下單的「策略交易商品」,並指定的對應的「文字訊號檔」;請務必選擇您在STEP2產生的文字訊號檔案(檔案路徑\訊息文字檔案名稱.txt)

*當您「開啟」監控檔案時,表示StarBridge已開始讀取您指定的文字訊號檔案,當您的策略發出買賣訊號時,將自動發送訊號至您指定的AlgoStars策略。

*您可在StarBridge委託記錄中,檢視自您策略「文字訊號檔」讀取到的所有買賣訊號。

*建議請您回到AlgoStars網站,核對該策略的「訊號紀錄」是否與您在StarBridge的委託記錄相同。