TradingView 是目前最受歡迎的圖表系統,下單大師在 2023 年 5 月領先業界率先支援 TradingView 自動下單到國內券商,帶您掌握未來趨勢。TradingView詳細介紹請參考(TradingView 自動下單)
本篇教學範圍較廣,分成幾大主題,目錄如下
一. 下單大師串接TradingView的方式介紹
二. 注意事項
1. 使用Webhook URL的必要條件
2. TradingView傳送Webhook URL的注意事項
三. 串接TradingView的前置作業
1. 申請外部固定IP
2. 請將電腦以實體網路線直接連接中華路由器(小烏龜)
3. 電腦的固定IP設定(內部固定 IP)
4. 登入中華電信路由器(小烏龜)
5. 設定外部固定IP
6. NAT設定
7. 下載串接包並安裝相關程式
8. Windows IIS設定
四. TradingView裡的下單大師範例策略使用教學
1. 開啟並登入TradingView
2. 開啟下單大師範例程式碼
3. 圖表加入下單大師串接範例
4. 設定下單大師串接範例參數
5. 建立快訊
6. 檢查文字檔
7. 關閉下單大師價格未跳動偵測
五. 將您的策略程式修改為可供產生文字檔的策略
1. 下單大師範例程式碼簡介
2. 修改您的策略以符合成功傳送快訊的要求
3. 確認Pine Script程式碼檢核無異常
4. 為此策略設定一個不同檔名的文字檔參數並建立快訊
下單大師串接TradingView的方式介紹 #
下單大師無法直接和TradingView溝通,因為TradingView運作在雲端伺服器(對用戶來說就是一個網站),下單大師則是運作在本機電腦,二者不在同一台電腦裡,因此下單大師必需透過TradingView的快訊功能取得進出場訊號
1. TradingView有提供快訊功能,將圖表的買進與賣出利用快訊傳遞出去
2. TradingView提供多種快訊,有app推播通知、發送電子郵件、播放聲音、Webhook URL….等
3. 下單大師就是透過Webhook URL(簡單說就是一種利用網路傳送訊息的技術)的方式來取得TradingView的進出場訊號
4. 本機電腦收到TradingView的Webhook快訊後會轉換成策略文字檔供下單大師讀取
5. 下單大師讀取文字檔取得訊號後,進行下單(這部份和MC或其他自行產生文字檔訊號的方式是一樣的)
請注意:文字檔是否正常產生或更新和TradingView程式、網路環境及IIS有關,和下單大師主程式無關,下單大師主程式不管有沒有運作,都不會影響文字檔產生或更新結果
注意事項 #
1. 使用Webhook URL的必要條件 #
由於是利用 TradingView 的 Webhook 快訊功能,將下單訊號傳送給下單大師下單,所以要準備一台電腦安裝下單大師,並接收 TradingView 傳過來的訊號,收訊電腦必須滿足以下條件:
1. Windows 10/11【專業版】或 Windows【Server 版】:因為電腦上必須安裝 IIS,才能接收到 Webhook 傳過來的訊息。
2. 外部固定 IP:網路環境要有外部的固定 IP(在WAN裡的一個固定地址)。這樣TradingView的Webhook快訊才知道要往哪裡傳送
3. 內部固定 IP:電腦在LAN也需要設定內部固定 IP(在LAN裡的一個固定地址)。這樣在設定NAT(Virtual Servers,Port Forwarding)時,才能知道資料要轉到哪個內部固定 IP所屬的電腦與Port
4. 付費版本:TradingView 的付費版本才能使用 Webhook 快訊功能。
若以上條件無法達成前,請先不要進行安裝設定或測試
WAN:Internet廣域網路(由ISP提供的網路服務,例如:Hinet,Seednet)
LAN:Intranet內部網路(家裡的路由器或基地台管理的網路)
IIS:Microsoft 網站伺服器(Internet Information Service)
2. TradingView傳送Webhook URL的注意事項 #
1. 只接受連接埠為80和443的URL。帶有其他任何埠位的URL的請求會被拒絕。(下單大師教學預設為使用 80 Port,若無特殊需要請勿變更)
2. 若您的電腦放在機房託管,請詢問機房相關人員是否需申請開通相關鎖定(IP與PORT)
目前TradingView的Webhook Post主機列表可參考(關於Webhooks)
3. TradingView各版本的快訊數量也不相同。例如:Essential提供20個快訊,Premium則是提供400個快訊
串接TradingView的前置作業 #
前置作業請務必先完成,這部份和下單大師的主程式都還沒有關係。一定要先把前置作業完成,並確定電腦能夠接收到TradingView的webhook快訊,並且能夠成功的將文字檔產生,再來安裝下單大師。文字檔有沒有產生或更新跟有沒有安裝或設定下單大師主程式沒有任何關係。
測試時請先觀察文字檔是否會隨著每次的快訊而變化才代表整個TradingView串接環境都是正常的。下單大師這裡建議建置環境時先使用下單大師提供的TradingView範例程式碼套用到【台指期一分線】,幾分鐘就會產生一次快訊,用來測試文字檔都正常更新後,再依照範例將您的TradingView策略碼做修改串接。若發現您的策略無法成功產生或更新文字檔,但是範例程式正常,代表您的策略程式在串接的程式碼部份仍然有問題,此時只要專注在您的策略程式碼修正即可
1. 申請外部固定IP #
以中華電信Hinet非固定制為例,若是企業用的固定制則不需要(二者差異可參考光世代固定制)
建議使用中華光世代或是雲端電腦,不建議使用第四台寬頻(或是自行研究,因客服無法通曉每間寬頻的固定IP設定)
1. 登入中華電信會員
2. 進入到【我的服務中心】後點選【服務總覽】
3. 進入到【服務總覽】後點選左側【寬頻】
4. 進入到【寬頻】後點選右側【HiNet非固定固定IP申請】
5. 進入到【HiNet非固定固定IP申請】後選擇需要申請的寬頻網路,並選用【1個固定IP+7個動態IP】
6. 將畫面往下拉,輸入Email並勾選同意條款,執行【送出申請】
7. 確認Email收到中華電信寄來的【Hinet固定IP配發的通知】即申請完成
詳細申請步驟可參考以下網頁(中華電信 HiNet 如何申請、設定固定IP?)
提醒
一般家用的網路都是使用透過PPPoE撥接的非固定制,而不是企業用戶使用的固定制(真正固定IP)。也就是說雖然透過PPPoE撥接的非固定制可以申請1個固定IP,但並不是真的完全固定(在中華電信會員後台申請時也是顯示【HiNet非固定固定IP申請】),若用戶搬家、升速、設備異動、網路異動改接,均可能隨之改變IP,無法保證IP永久固定不變。因此在串接成功後的某天發現無法再接收Webhook快訊時可以檢查IP是否被異動
2. 請將電腦以實體網路線直接連接中華路由器(小烏龜) #
1. 請勿使用wifi,以免造成穩定性不足
2. 請勿將電腦先以網路線連接內部路由器(基地台),再由路由器連接小烏龜
此種方法也不是不行,但設定較為複雜,客服也無法通曉每間路由器的設定方式。建議先以最有把握的方式(電腦直接連接中華路由器)測試正常後,若真的有需要透過內部路由器轉接的用戶再請自行研究(可參考「下單大師 TradingView 串接包」裡的說明文件)
3. 電腦的固定IP設定(內部固定 IP) #
1. 電腦連線到中華路由器後,會由路由器配發一組內部浮動IP,可以透過ipconfig指令查詢目前本機的內部IP
2. 內部IP固定為192.168開頭,中華的路由器一般會配發 「192.168.1.X」或「192.168.0.X」的IP,以ipconfig查到的為主。因為小烏龜可能會接到其他電腦或wifi等設備,建議內部IP設定在110以上,如192.168.1.110、192.168.1.120、192.168.1.130 …
3. 選定好內部固定IP後到windows「設定」中,點選「網路和網際網路」,然後點選「狀態」,接著選擇「變更介面卡選項」將您的網路變更為內部固定IP,下方為設定範例與圖示
3.1 IP位置:即您由ipconfig查到的內部IP,並改成尾數為110~130的那組,前面的部份不可異動(例如:原192.168.1.10,只可將10改成110,前面的192.168.1不可異動
3.2 子網路遮罩:由windows自動帶出,不需更改
3.3 預設閘道:輸入ipconfig查出來的預設閘道,不可變更。若IP為 「192.168.1.X」,則預設閘道為 192.168.1.1;若為「192.168.0.X」,則預設閘道為 192.168.0.1
3.4 慣用DNS伺服器:可使用8.8.8.8(GoogleDNS伺服器)
3.5 其他DNS伺服器:可使用168.95.192.1(中華電信DNS伺服器)

4. 登入中華電信路由器(小烏龜) #
1. 開啟chrome或edge,網址請輸入由ipconfig取得的預設閘道(gateway),此IP即為登入中華電信路由器(小烏龜)的網址(由上一步驟範例即為192.168.1.1)
2. 請使用中華電信工程帳號來登入才有完整的中華電信路由器修改權限。登入帳號為cht,密碼為機型後4碼+mac後4碼,一律小寫,可參考以下網頁(中華電信 HiNet 如何申請、設定固定IP?)
3. 使用中華電信工程帳號登入中華電信路由器成功後,才可以進行後續步驟
5. 設定外部固定IP #
1. 設定使用外部固定IP,只需在中華電信路由器登入後的設定頁面裡找到WAN的設定,並將PPPoE撥接的帳號與密碼更新即可
2. 帳號由中華電信寄來的【Hinet固定IP配發的通知】取得(一般是由XXXXXXXX@hinet.net換成XXXXXXXX@ip.hinet.net即可)
3. 密碼請依中華電信原先發給您的密碼重新輸入一次(路由器出場預設輸入的密碼和當初中華電信發給您的密碼不同)
4. 完成後建議將小烏龜重開確保有使用新的帳密重新撥接
5. 待小烏龜重開完成後,先確認電腦可以上網,若是有問題代表設定有誤,請再檢查看看
6. 可以上網後,再確認目前使用的外部固定IP(可由whatismyip取得)是否與中華電信寄來的【Hinet固定IP配發的通知】內配發的固定IP相同,若相同的話代表完成外部固定IP設定
6. NAT設定 #
NAT:網絡地址轉換(Network Address Translation),是一種可在外部和內部 IP 位址之間進行轉換的功能。簡單來說,NAT功能可將外網IP與Port所接收的資料轉送到內網特定IP與Port。設定後中華電信路由器(小烏龜)才知道要將資料轉送到內網的哪台電腦
1. 這個設定一樣是在中華電信路由器(小烏龜)裡,因此一樣要先登入中華電信路由器(小烏龜)
2. 在登入中華電信路由器後的設定頁面找到下面關鍵字:NAT、Virtual Servers、Port Forwarding與虛擬主機設定。這些關鍵字代表的功能都是相同的,只是因為路由器廠牌不同所以名詞不同
3. 新增二組對應資料(重點在於內部主機與Port,這2個欄位一定要正確)
內部主機:就是您電腦的內部固定IP(本文章的範例為「192.168.1.110」)
Port:http 80(啟點IP與終點IP都輸入80)與https 443(啟點IP與終點IP都輸入443),TradingView可傳送80與443 Port,目前下單大師使用http 80

7. 下載串接包並安裝相關程式 #
1. 請下載「下單大師 TradingView 串接包」
2. 下載後請先解壓縮
3. 分別雙擊串接包裡的「dotnet-hosting-7.0.5-win.exe」和「 VC_redist.x64.exe」兩個微軟官方的安裝程式,依照指示完成安裝

8. Windows IIS設定 #
1. 啟用 IIS:Windows 10/11 專業版或 Windows Server 才有 IIS 功能。以Windows 11專業版為例,開啟【控制台-程式集-解除安裝程式】,點選【開啟或關閉Windows功能】勾選【Internet Information Services 】,按【確定】後依照指示完成啟用


2. 將串接包裡的資料夾【OMSignWebhook】整個複製到【C:\OrderMaster】資料夾之下,若C:\ 之下無OrderMaster資料夾,則需要手動建立

3. 開啟【Internet Information Services (IIS) 管理員】, Windows 10 在【開始-系統管理工具】,Windows 11在【開始-搜尋-IIS】,建議釘選到工作列方便隨時打開

4. 打開後展開左邊,會看到 站台 之下已經有一個預設的網站「Default WebSite」,接下來我們都會在這個站台上設定

5. 點選站台名稱按【F2】或按右鍵【重新命名】,將站台名稱修改為【下單大師 Webhook】

6. 點選站台名稱按右鍵【管理網站-進階設定】,在【實體路徑】中選擇之前複製的資料夾位置C:\OrderMaster\OMSignWebhook」,按確定


7. 點選【應用程式集區】,雙擊【DefaultAppPool】打開設定畫面,將 .NET CLR版本改成【沒有受控碼】,按確定

8. 打開測試網址「http://127.0.0.1/test」,頁面開啟後有出現像這樣的畫面,就代表IIS設定成功了 !

9. 以上步驟都完成後,就可以測試TradingView 能不能從外部連線進來
測試方式為打開這個測試網址「https://www.portcheckers.com」,輸入電腦的外部固定IP位址與80 Port後按Test,出現綠色的Open就代表電腦端全部設定完成了

TradingView裡的下單大師範例策略使用教學 #
1. 開啟並登入TradingView #
若無 TradingView 帳號,點此邀請連結申請帳號
可免費試用付費版本30天,30天後購買時最高享有50% 的折扣 !
2. 開啟下單大師範例程式碼 #
1. TradingView登入成功後,點此連結開啟範例程式碼:下單大師串接範例
2. 將此策略【加入收藏】
3. 這個頁面就可以看到完整的程式碼,但我們【加入收藏】之後會更方便的使用

3. 圖表加入下單大師串接範例 #
打開網頁版或桌面版TradingView,開啟台指期(TXF1!) 1分線的圖表畫面,按上面的技術指標,在【收藏】頁面就會看到我們剛剛加入的範例策略,點擊名稱就會把它加入圖表中
請注意:建議建置環境時先使用下單大師提供的TradingView範例程式碼套用到【台指期一分線】,幾分鐘就會產生一次快訊,用來測試文字檔都正常更新後,再依照範例將您的TradingView策略碼做修改串接

4. 設定下單大師串接範例參數 #
1. 在圖表上雙擊策略名稱開啟設定畫面,輸入文字檔完整路徑和檔名,請特別注意文字檔名絕對不能重覆,每張圖(策略)需使用一個專屬文字檔,不可共用。這裡用預設值「Z:\TV2OM_Current.txt」
2. 沒有Z:\的用戶,可以先改成D:\或是您其他的硬碟代號,也可參考安裝RAMDisk 虛擬硬碟,先產生Z:\
3. 其他參數用預設值即可
請注意:這個輸入參數是由下單大師串接範例所定義,TradingView的每個腳本(Pine Script)參數不相同,在其他腳本沒有輸入文字檔檔名的欄位,必需自行修改加入,後續會有教學

5. 建立快訊 #
1. 點選策略名稱後方的【…】
2. 出現選單後請選擇第一項:為下單大師(0000-0000xxxxxxxxxx)建立快訊

3. 出現【設定】頁面後,第2個條件請選擇【訂單執行和alert()函數調用】
4. 快訊有【到期日】,預設是一個月,可以改成兩個月,若要【無限制快訊】的話,要購買TradingView更高的無限制快訊方案。(每年黑色星期五有最高60%折扣)
5. 快訊名稱輸入「(測試) Test」, 訊息欄
6. 內容輸入以下:{{strategy.position_size}}|{{strategy.order.price}}|{{strategy.order.alert_message}}

7. 切換到【通知】頁籤
8. 勾選【Webhook URL】的通知方式,下方網址欄設定為:http://您的外部固定IP/OrderMaster
例如:http://12.65.46.88/OrderMaster
9. 執行Create

6. 檢查文字檔 #
等待TradingView範例下單訊號出現之後,到電腦端查看是否有收到訊號並成功輸出文字檔,如果有收到的話代表TradingView的相關環境設置(外部固定IP、內部固定IP、IIS、小烏龜……等)已經成功。這時就可以安裝下單大師並完成下單大師相關設定後開始進行模擬下單。可每日比對圖表訊號的文字檔 log 記錄與下單大師的送單記錄,跑個幾天都正確就沒問題了

7. 關閉下單大師價格未跳動偵測 #
因為目前範例只有在下單訊號出現時才會輸出文字檔,平常文字檔不會變動,因此在【策略管理】要把價格未跳動偵測時間設為0,也就是不要偵測

將您的策略程式修改為可供產生文字檔的策略 #
TradingView 的策略和MultiCharts 的策略有個重大的不同:在TradingView裡沒有像MultiCharts 的 i_MarketPosition * i_CurrentContracts 代表【圖表總倉位】的語法;TradingView的語法strategy.position_size 代表的是【單一策略】的總倉位,
例如一個圖表掛三個策略,在 MC 只要再多掛一個輸出文字檔的訊號即可;而TradingView 則要把這三個策略都輸出快訊,輸出成三個文字檔再用比例下單合併起來
因此TradingView沒有辦法像MC一樣做一個大家通用輸出訊號的策略/指標掛在圖表上把總倉位輸出給下單大師,所以我們只能寫一個範例策略,必須依照下面的教學把範例策略的部份程式碼複製到自己的策略上,並建立快訊才能把策略總倉位傳出去
請注意:
1. 加入收藏的範例程式碼不能修改,以便隨時能查看最新的版本
2. 請先使用下單大師提供的TradingView範例程式碼套用到【台指期一分線】,幾分鐘就會產生一次快訊,用來測試文字檔都正常更新後,再依照範例將您的TradingView策略碼做修改串接
1. 下單大師範例程式碼簡介 #
範例程式碼共區分為三大塊
1. 上半部:定義strategy、相關輸入參數(包含快訊會用到的文字檔路徑與檔名)、範例策略參數(這是範例策略專用的參數)、附加訊息….等,一些會用到的參數
2. 中間區塊:測試下單用的策略,這部份是專門用來測試的策略程式碼
3. 下半部:處理在圖表上顯示總倉位與首次掛上策略時輸出文字檔
請注意:目前範例使用「Current總倉位法」。「Order下單方式」和「由訊號決定」這二個功能的範例程式碼在最新版本已刪除,若要用這二個功能,請參考v5.0版本的範例程式碼
2. 修改您的策略以符合成功傳送快訊的要求 #
程式碼每一行都有詳細的註解說明,用不到的程式碼請自行移除(例如:範例策略參數為範例策略專用,您的策略若用不到就可以刪除)
共區分為三大塊,中間是【測試用下單訊號】,也就是說把中間區塊以外的上下兩塊複製到你的策略上就可以了
1. 範例策略的 上半部 複製到您的策略的 最上方
2. 中間區塊為您原本的策略,請將所有 進出場語法(strategy.order)後面加上:, alert_message=addMessage)
3. 範例策略的 下半部 複製到您的策略的 最下方
請注意:目前範例的Pine Script版本為5(@version=5),若是和您所使用的Pine Scrip版本不同,請參考Pine Script®語言參考手冊自行修改為該版本的語法


3. 確認Pine Script程式碼檢核無異常 #
在有問題的程式碼下方會有一個紅色標記,請參考Pine Script®語言參考手冊自行修正
4. 為此策略設定一個不同檔名的文字檔參數並建立快訊 #
1. 以上都完成後即可為這個策略設定一個不同檔名的文字檔參數,並建立一個新的Webhook快訊,測試看看是否正常相關設定與快訊建立方式和先前範例策略使用教學一樣
2. 【快訊】是 TradingView 和 MultiCharts 另一個重大的不同:TradingView的快訊就是【快照】的意思,一旦在圖表上把某個策略建立快訊之後:商品、週期、策略版本及策略參數就像快照一樣固定住了,傳送到TradingView 的雲端主機計算訊號並發出快訊,換句話說:一旦建立快訊,不論是修改商品、更換週期、修改程式碼、修改策略參數,都完全不會影響原來建立的快訊 !
舉個例子比較清楚:在MultiCharts開始輸出文字檔之後,如果我把圖表週期從台指60K改成小台指5K,文字檔就立刻變成小台指5K的訊號輸出;而在TradingView 建立台指60K的快訊之後,就算把圖表週期改成小台指 5K,或修改策略參數或甚至把策略移除,都不會影響已建立的快訊,它一樣繼續用台指60K及建立快訊當時的策略版本與參數設定,持續不斷的計算並輸出訊號,直到手動把快訊停止或移除為止