每個提醒都會將同一則訊息傳送到您勾選的每個位置。在預設情況下,訊息會寫明發生了什麼事、當下的價格,以及提醒是否繼續保持啟用。您可以加上交易計畫備註,在打開圖表前就先看到自己原本的規劃。設定提醒與訊息既簡單、快速又準確。您可以直接在編輯器中輸入,或透過語音或文字告訴或請 AI Trading Assistant 為您設定。
如果您使用自己的軟體、Discord 或 Slack,Webhook 也能將每次提醒自動傳送到那裡,完全不需要手動複製。本指南將同時說明這兩項功能。
範例:在 EURUSD 的 5m 圖表上建立一個當價格向上穿越 1.09 時觸發的提醒。
自動訊息的內容
當 Message 欄位留空時,提醒會在觸發時自動產生訊息。以上述範例來說,訊息內容如下:
EURUSD crossed above 1.09
Price 1.0901.
This alert is now off. It was set to fire once.
第一列會以提醒編輯器的語句說明發生了什麼事。第二列提供觸發當下的數值。最後一列則說明提醒是否繼續保持啟用。此範例使用了 Once only,因此提醒現在已關閉。若選擇其他 Trigger 方式,最後一列會顯示「This alert stays on.」。
其他類型的提醒也遵循相同的順序。以下列出幾個第一列的範例,以及各自下方對應的數值列:
觸及線條:「GBPJPY touched 1h Resistance R1」與「Price 210.16, line at 210.20.」
突破線條:「GBPJPY broke above 1h Resistance R1」與「The 1h candle closed at 210.32, above the line at 210.20.」
指標條件:「BTCUSD: 1h RSI(14) crossed above 70」與「RSI(14) was 71.4 when the 1h candle closed at 105240.50.」
預測改變:「GBPJPY: 1h forecast turned bearish」與「Before: bullish above 209.80. Now: bearish below 209.40.」
包含多個條件的提醒會先說明有幾個條件成立,接著為每個成立的條件各列出一列說明:
BTCUSD: both conditions met
• Price crossed above 105000: the 1h candle closed at 105240.50
• 1h RSI(14) is above 55 (now 58.2)
This alert stays on.
如果有更多條件,第一列會顯示例如「all 3 conditions met」或「2 of 3 conditions met」。當只有一個條件成立時(例如使用 or 連接詞),第一列會直接寫出該條件,並在下方列出對應數值。
撰寫自訂訊息
開啟提醒編輯器並前往 Options 頁籤。
點擊 Message 列。留空時它會顯示 Auto。點擊後下方會展開一個文字欄位。
輸入您的訊息。此欄位最多可輸入 400 個字元。
若要加入即時數值,請展開欄位下方的 Available variables。請完整複製變數名稱,包含前後的雙大括號。

Automatic message:空白的輸入欄位。您可以在這裡輸入自己的文字,或將它留空。
欄位下方的說明文字:“Leave it blank and the alert says what happened and at what price. A message of your own is sent first, with that under it.”(留空時,提醒會說明發生的事件與當下價格;若輸入自訂訊息,您的文字會排在最前面,自動訊息則列在下方。)
Available variables:您可以加入訊息中的即時數值變數。
您輸入的文字會成為第一列,自動產生的文字則緊接在下方。以上述範例來說,這段訊息:
{{symbol}} on {{timeframe}}: check the 1h trend before entering.
送達時會顯示如下:
EURUSD on 5m: check the 1h trend before entering.
EURUSD crossed above 1.09. Price 1.0901.
This alert is now off. It was set to fire once.
價格與條件已經包含在您文字下方的列中。請將自訂訊息用來記錄自動訊息無法呈現的內容,例如您的交易計畫。
您輸入的訊息同時也會成為該提醒在 Alerts 清單中的名稱。如果沒有輸入訊息,清單會顯示由條件組合而成的名稱。單純的價位條件名稱很短,例如「EURUSD crossing up 1.09」;線條或多條件提醒則會按照編輯器的語句顯示,例如「GBPJPY: 1h Price touches 1h Resistance R1」。當您修改條件時,這個名稱也會隨之更新。當您再次開啟該提醒時,Message 欄位依然會是空白的。您先前未輸入訊息而儲存的提醒,也會以這種形式顯示名稱。
各個接收位置的顯示方式
每個接收位置都會收到相同的訊息,並依該位置的版面進行排列:
| 接收位置 | 顯示內容 |
|---|---|
| 應用程式內的通知 | 第一列以粗體顯示,下方列出數值。 |
| Notify my devices | 第一列作為標題,下方列出其餘各列。 |
| Send to MetaTrader | 第一列作為標題,下方列出其餘各列。MetaTrader 會在訊息旁顯示它自己的時間。 |
| Telegram | 訊息內容、您所在時區的時間,以及前往圖表的連結。 |
| Send email | 訊息內容,以及您所在時區的日期與時間。 |
| Webhook URL | Discord 與 Slack 會收到訊息以及 UTC 時間。若選擇 Raw JSON,您的軟體會收到下方的變數資料。 |
Telegram 會以這種格式顯示時間:「24 Sep, 11:02 London time」。如果時區不正確,請前往 Your profile 頁面的 Timezone 下方選擇您的時區。當 ForecastCity 無法得知您的時區時,時間會以 UTC 顯示。
Telegram 訊息、電子郵件、手機通知或 MetaTrader 彈出式視窗中的連結,會直接開啟該商品的圖表並打開 Alerts 面板。對於大多數 4CM-AI 提醒,連結會開啟圖表並顯示該次觸發的 Alert observation。
使用變數加入即時數值
當提醒觸發時,變數會被替換為當下的實際數值。以下是 Available variables 中的所有變數:
| 變數 | 輸出的內容 | 範例 |
|---|---|---|
{{symbol}} |
商品名稱 | EURUSD |
{{price}} 與 {{close}} |
提醒觸發時的價格 | 1.0901 |
{{condition_text}} |
發生的事件(不含商品名稱) | Price crossed above 1.09 |
{{condition}} |
條件的簡短代碼 | CROSSING_UP 1.09 |
{{timeframe}} |
提醒的時間週期 | 5m |
{{time_iso}} |
UTC 日期與時間 | 2026-09-24 10:02 UTC |
{{time}} |
以秒數表示的相同時間,供軟體使用 | 1790244120 |
{{time_now}} |
訊息送出當下的秒數時間 | 1790244121 |
{{exchange}} |
報價資料來源 | TwelveData |
{{status}} |
提醒是否繼續保持啟用 | This alert stays on. |
{{alert_url}} |
開啟該商品圖表與提醒清單的連結 | 網址 |
{{name}} |
將各變數替換為實際數值後的自訂訊息,或 Alerts 清單顯示的名稱 | EURUSD crossing up 1.09 |
對於線條提醒,{{condition_text}} 會顯示如「Price touched 1h Resistance R1」。若包含多個條件,它會用英文的 and 將所有成立的條件連接起來。當 Once only 提醒觸發後,{{status}} 會顯示「This alert is now off. It was set to fire once.」。對於包含多個條件、線條或指標的提醒,{{condition}} 會顯示 TREE。這個變數是專供軟體判讀的代碼。
對於 4CM-AI 提醒,{{forecast_summary}} 會摘述預測發生的變化,而 {{forecast_symbol}} 則會輸出預測的商品名稱。{{forecast_cycle}} 是一個計數器,每當提醒重新開始待命時就會加一。包含 {{forecast_summary}} 的訊息下方不會再附上自動訊息列,因為該摘要已經說明了發生的事件。
大多數 4CM-AI 提醒沒有單一觸發價格,因此 {{price}} 與 {{close}} 會保持空白。{{time_iso}} 使用 UTC 時區,因此可能與您螢幕上的時鐘不同。不存在的變數會原封不動地保留您輸入的文字:例如拼錯的 {{prices}} 送達時仍會顯示為 {{prices}}。
將提醒傳送到 Webhook
Webhook 會將每次提醒傳送到指定的網址,讓您自己的軟體、Discord 頻道或 Slack 頻道接收。您的訂閱方案必須包含 Webhook 功能。
在 Options 頁籤的 Notifications 下方,勾選 Webhook URL。畫面會出現網址欄位、Format 選項以及內容主體欄位。
貼上您的接收端所監聽的網址。網址開頭必須是
http://或https://。將 Format 設為 Raw JSON,並將內容主體欄位留空。
按下 Create 按鈕;若是編輯現有的提醒,請按下 Save 按鈕。

您的接收端所監聽的網址。請使用標準通訊埠 80 或 443。
Format:您自己的軟體請選 Raw JSON;若要傳送到 Discord 或 Slack,請選擇對應的服務名稱。
當內容主體欄位留空時,您的接收端會收到一個包含上表所有變數的 JSON 物件,外加 alertId 與 triggerId 兩個欄位,分別用來識別該提醒以及這一次觸發。在開發依賴這些欄位的程式之前,請先實際查看一次真實送達的資料內容。
在欄位下方,編輯器會列出我們發送請求的伺服器位址。如果您的接收端只接受已知位址的連線,請將該位址加入您的允許清單。
網址必須符合的條件
使用標準通訊埠的公開網址:http 為 80,https 為 443。系統不會傳送訊息至其他通訊埠、localhost 或私有網路位址。
網址內不得包含使用者名稱或密碼。
該網址本身必須在 3 秒內回應。重新導向(redirect)至其他網址會被視為傳送失敗。
編輯器只會檢查網址開頭是否為 http:// 或 https://。其餘條件會在訊息實際送出時才進行檢查,因此請務必以真實的提醒測試您的網址。對於價格與技術指標提醒,如果您的接收端發生暫時性錯誤,系統最多會再重試傳送兩次。4CM-AI 提醒的訊息在發生逾時或伺服器錯誤後不會重複傳送,因為您的接收端可能已經根據該訊息執行了動作。
撰寫自訂 Webhook 內容主體
內容主體欄位可以填入範本,並使用與訊息相同的變數。此欄位最多可容納 2000 個字元。雖然欄位允許您輸入更多字元,但在儲存時超過長度的內容主體會被拒絕。
若選擇 Raw JSON,需要精簡 JSON 物件的接收端可以使用如下的內容主體:
{"symbol":"{{symbol}}","condition":"{{condition_text}}","time":"{{time_iso}}","source":"ForecastCity"}
變數會以純文字填入。如果替換後的數值包含引號或換行符號,可能會破壞您的 JSON 結構。不符合有效 JSON 格式的內容主體會改以純文字傳送。
若要傳送到 Discord 頻道,請將 Format 設為 Discord,並填入該頻道的 Webhook 網址。接著在內容主體欄位中寫入簡短的一列文字,例如:
{{symbol}}: {{condition_text}}. Open your alerts: {{alert_url}}
若要傳送到 Slack,請選擇 Slack 並以相同方式撰寫。ForecastCity 會自動將您的文字包裝成該服務要求的格式。如果將內容主體欄位留空,這兩項服務都會收到如上所示的提醒訊息,並在最後一列附上 UTC 時間。
檢查傳送結果
等待提醒觸發,然後開啟 Alerts 面板的 Log 頁籤。
比對您的接收端收到的內容與 Log 中的觸發記錄:發生的事件、商品名稱以及時間。
Log 頁籤會顯示提醒已觸發,但不會顯示您的接收端是否成功收下訊息,因此請同時檢查接收端自己的記錄。如果您看到像 {{prices}} 這樣未被替換的大括號,代表變數名稱拼錯了。如果您的接收端拒絕該內容主體,請檢查 JSON 格式是否正確。
實用須知
自訂訊息會傳送到您勾選的每個位置;Webhook 內容主體則只會傳送到 Webhook。
Discord 最多顯示 1900 個字元,Slack 最多顯示 3000 個字元,超過的部分會被截斷。