看懂市場,做好交易
專業教學 & 一對一開戶服務

0917-113-167

歡迎來電詢問

MultiCharts 新手入門教學:PowerLanguage 基礎語法、指標撰寫與策略訊號設定

分享至社群平台

一分鐘精華摘要

MultiCharts(簡稱 MC)使用的「PowerLanguage」是一種高度貼近英文自然語言的量化腳本語法。初學者踏入 MultiCharts 策略開發時,首先需釐清「指標(Indicator,僅負責繪圖呈現)」與「訊號(Signal,負責產生進出場買賣單)」的核心差異。掌握變數宣告、K 線引數(Open, High, Low, Close)以及 Buy 與 SellShort 的委託邏輯,就能快速建立標準化的技術分析策略。


在期貨與外匯的量化交易領域中,MultiCharts 一直是市佔率極高且生態成熟的專業平台。相較於需要處理大量底層環境設定的通用語言(如 Python 或 C++),MultiCharts 內建了完整的圖表回測引擎、即時撮合模組與績效報告系統。

其專屬的腳本語言「PowerLanguage(相容於 TradeStation 的 EasyLanguage)」,讓沒有深厚資訊工程背景的交易者,也能以極具直觀性的英文語句寫出交易邏輯。

究竟 PowerLanguage 的基礎語法架構是什麼?「指標」和「訊號」有什麼不同?如何寫出第一支均線突破策略並套入圖表進行回測?今天這篇實戰教學將帶你一步步拆解上手。

💡 相關文章推薦:


一、 指標(Indicator)vs 訊號(Signal):核心差異解析

在 MultiCharts 的架構中,腳本主要分為兩大類別,兩者的執行目的完全不同:

類別主要功能與目的能否執行買賣委託?常見範例
指標(Indicator)在圖表上繪製線條、點狀或數值,輔助視覺判斷盤勢。否(純視覺輔助,不觸發交易)移動平均線(MA)、KD 指標、布林通道
訊號(Signal)根據邏輯判斷送出進出場指令,計算帳面損益與回測報表。是(可於圖表模擬撮合或串接 API 實盤下單)均線黃金交叉買進、突破高點追價、固定點數停損

📌 核心觀念:策略開發時,我們通常先透過「指標」將想法可視化在圖表上,確認數值無誤後,再將判斷條件轉寫為「訊號」以進行回測與下單。


二、 PowerLanguage 基礎語法與三大核心元素

PowerLanguage 語法結構清晰,其核心基礎包含以下三個面向:

1. 內建 K 線常數與歷史引數

PowerLanguage 以單根 K 棒(Bar)為運算單位,內建了代表當根 K 棒開高低收的保留字:

  • Open 或 O:開盤價
  • High 或 H:最高價
  • Low 或 L:最低價
  • Close 或 C:收盤價
  • Volume 或 V:成交量

若要引用前幾根 K 棒的數值,只需使用中括號 [N]:

  • Close[1]:前 1 根 K 棒的收盤價
  • High[2]:前 2 根 K 棒的最高價

2. 參數(Inputs)與變數(Variables)宣告

  • Inputs: 用於宣告策略中需要常態微調或進行最佳化測試的參數。
  • Variables:(或 Vars:)用於儲存在運算過程中動態計算的數值。

Inputs:
FastLength(10), // 宣告快線週期為 10
SlowLength(30); // 宣告慢線週期為 30

Variables:
FastMA(0), // 宣告快線變數,初始值為 0
SlowMA(0); // 宣告慢線變數,初始值為 0

3. 指標繪圖指令(Plot)

在指標腳本中,計算完成後使用 Plot 指令即可將線條輸出至圖表:

FastMA = Average(Close, FastLength);
SlowMA = Average(Close, SlowLength);

Plot1(FastMA, "快線");
Plot2(SlowMA, "慢線");

💡 相關文章推薦:

三、 實戰範例:撰寫第一支「均線突破交易訊號」

在訊號(Signal)腳本中,進出場使用 Buy、Sell、SellShort 與 BuyToCover 四個核心指令:

  • Buy:多頭買進開倉
  • Sell:多單賣出平倉
  • SellShort:空頭賣出開倉
  • BuyToCover:空單買回平倉

以下展示一個標準的雙均線交叉策略訊號腳本:

[LegacyColorValue = true];

Inputs: 
    FastLen(10),     // 短天期均線天數
    SlowLen(30),     // 長天期均線天數
    StopLossPts(30); // 固定點數停損點數

Variables: 
    FastMA(0), 
    SlowMA(0);

// 計算均線數值
FastMA = Average(Close, FastLen);
SlowMA = Average(Close, SlowLen);

// 1. 多單進場邏輯:黃金交叉且目前無多單
If FastMA Crosses Over SlowMA Then 
    Buy ("MA_Buy") next bar at market;

// 2. 空單進場邏輯:死亡交叉且目前無空單
If FastMA Crosses Under SlowMA Then 
    SellShort ("MA_Short") next bar at market;

// 3. 固定點數停損機制(風控防護)
SetStopLoss(StopLossPts * BigPointValue);

💡 關鍵語法拆解

  • Crosses Over / Under:PowerLanguage 內建的黃金交叉與死亡交叉語法,能自動比對當前與前一根 K 棒的穿越狀態。
  • next bar at market:代表「當條件在當根 K 棒收盤確認成立後,在下一根 K 棒開盤以市價送出委託」。
  • SetStopLoss:內建的部位防護指令,以金額或跳動點乘上合約大點價值(BigPointValue)進行硬性停損。

四、 MultiCharts 新手策略開發的三大避坑重點

  1. 避免在圖表上套用過度複雜的參數: 新手常透過「參數最佳化」功能將勝率調到 90% 以上,這往往是「過度擬合(Overfitting)」的陷阱。參數越少、邏輯越簡潔的策略,未來的泛化適應力通常越強。
  2. 務必設定滑價與交易手續費: 在 MultiCharts 圖表設定中(策略屬性),必須確實填入每筆交易的「手續費」與「滑價點數(Slippage)」,否則未扣除摩擦成本的回測曲線完全失真。
  3. 區分「次根 K 棒市價」與「當根 K 棒觸價」: at market 是次根開盤執行,而 Stop(停損委託)與 Limit(限價委託)可以在次根 K 棒盤中碰觸特定價格時立即觸發,撰寫時需確認邏輯是否符合真實下單預期。

💡 相關文章推薦:

結論

MultiCharts 與 PowerLanguage 將繁複的底層串接與圖表繪製包裝成簡潔易讀的模組,是進入期貨量化回測與自動化交易的高效捷徑。掌握指標與訊號的分工、熟悉常用 K 棒引數與進出場指令,並在策略中始終維持停損風控機制,你就能自信地構建出客觀、有統計期望值支撐的交易策略。

分享至社群平台
群益期貨
群益期貨
文章: 47