MultiCharts初體驗-函式撰寫

閱讀時間約 4 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。

廣告常說:「男人過了四十歲,只剩一張嘴。」,連續二天的話當年後,當然不能只剩一張嘴話當年,本文要開始進入程式交易的主題,雖然前文描述是使用TradeStation為開發平台,但後來TS已轉為美國國內券商使用,在台灣MultiCharts(以下簡稱MC)已成為主流的平台,雖然在使用上還是有許多雷區要避開,但平心而論,這平台算是程式初學者很好上手的平台之一。

MC的程式類型主要分為三大類:

  • 函式
    是一組預定義的、可重複使用的程式碼。在程式中,函數用於執行特定的任務或操作,它可以接受參數(輸入)並返回一個值(輸出)。函數的主要目的是為了模組化程式,使得程式更易於維護和理解。
  • 指標
    是一種用於圖表上的視覺化工具,通常是以圖形或數值的形式表示的技術分析工具。指標通常基於歷史價格資料進行計算,用於説明交易者分析市場趨勢、波動性和交易信號。
  • 訊號
    是指基於特定條件和邏輯判斷而產生的交易指令。這些條件可以是價格穿越特定水準、指標的交叉、趨勢線的突破等。信號通常用於確定何時買入、賣出、開倉或平倉。

這樣的分類方式,很適合非資訊出身的初學者使用,筆者的開發習慣是會將計算的邏輯寫成函式,再利用指標將函式的值畫在行情圖上,以利觀察,觀察出進出場邏輯後,再將進出場邏輯寫成訊號,讓MC可以依這些訊號進行自動交易。

這樣的寫法最大的好處是提高程式的維護性及重用度,很多人貪圖方便,直接把計算邏輯或寫在指標上去觀察,等到要寫成訊號時,再把這段邏輯複製到訊號的程式碼中使用,這樣做雖然很直覺,但萬一修改指標的邏輯時,就必須記得更新訊號的程式,不然會造成二邊不一致的現象出現。

以下就以MC的PowerLanguage Editor手把手地來寫一個簡單的函式讓指標來使用。

計算邏輯如下:

「計算K棒是否連續N根創新高或連續N根創新低」。

首先在PowerLanguage新增一個函式,命名為:_ContinueBreakOut(筆者習慣在程式的命名以底線開頭,這樣的好處是在列表中很容易找到自行開發程式)。

點選左上角紅色框的地方,即可新增程式(函式、指標或訊號)

點選左上角紅色框的地方,即可新增程式(函式、指標或訊號)

此函式判斷是否連續創高或創低,因此回傳的種類選擇布林值(TrueFalse)

輸入程式的名稱,選擇回傳TrueFalse

輸入程式的名稱,選擇回傳TrueFalse

點選確認後,會出現空白的程式編輯區,我們可以在這個空白區域撰寫程式。

空白的程式編輯區

空白的程式編輯區

接下來要思考我們傳入那些參數來讓程式判斷:

  • 連續N根
    需要一個輸入參數來表示根數,命名為BarCount,簡單數字型態即可。
  • 創新高或創新低
    需要一個輸入參數來判斷要計算創新高或創新低,命名為Direction,簡單數字型態即可。
Inputs:BarCount(NumericSimple), Direction(NumericSimple);
傳入的參數名稱及型別

傳入的參數名稱及型別

接下來,我們來思考程式的邏輯

  • 由目前的K棒往前判斷,直到指定的K棒數為止,因此我們需要一個Counter的變數來進行迴圈判斷。
  • 在判斷過程中,若判斷到一組不符合要求(未創新高或未創新低),則可以結束迴圈,以減少計算資源,因此再增加一個Result來存放回傳值。
Varibles:Counter(0), Result(True);
程式計算使用的變數

程式計算使用的變數

在這裹使用一個小技巧,我們把回傳結果先設為True(即假設為真),在判斷過程中,若有相鄰的兩根K棒不符合條件時,將此結果設為False(即未創高或低)後,中斷迴圈,然後回傳結果值,這種方式可以節省計算時間,不用完全判斷完所有的迴圈數。

Result = True;

If Direction = 0 Then
Begin
Result = False;
End​
Else
Begin
For Counter = 0 To BarCount - 1
Begin
If (Direction > 0) And (High[Counter] <= High[Counter + 1]) Then
Begin
Result = False;
Break;
End
Else If (Direction < 0) And (Low[Counter] >= Low[Counter + 1]) Then
Begin
Result = False;
Break;
End;
End;
End;

_ContinueBreakOut = Result;
判斷是否連續創新高或創新低

判斷是否連續創新高或創新低

程式最後以函式的名稱來回傳結果,當Result為True時,代表連續創新高或創新低。

讀者可以自行多加練習,增加自己可用的函式庫,方便日後指標及訊號的開發速度。











avatar-img
26會員
55內容數
金融市場入門新手所必知的基本知識
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
股市觀察家的沙龍 的其他內容
安裝好券商版的MultiCharts(以下簡稱MC)後,可在桌面上看到四個ICON,在筆者依初學者使用的頻率,由左至右排列,分別是MC主程式(MultiCharts 64)、MC程式編輯器(MultiCharts64 PowerLanguage Editor)、MC最佳化結果檢視器(Mult
在工作室成立之初,簡直像神農嘗百草般地把各式各樣的技術指標拿來組合回測,試圖找出最佳的技標組合,後再進行策略參數的最佳化,這方式雖然可以找出回測期間很好的策略,但是一放入回測區間外的資料後,策略的績效絕大部份都是往下掉的,每個策略都是花費了一天以上的最佳化時間,好不容易找到奇妙的賺錢參數,可以上線自
最近因好奇目前程式交易的市場發展到什麼程度而報名了期貨工會開的程式交易課程,上課時看到一群積極想要加入程式交易領域的同學們,讓筆者回想到2008年筆者與一群志同道合的朋友,組成了一個程式交易工作室,一群人在三房二廳的公寓佈置了程式交易的辦公室,每天早上看盤、監控程式執行、寫交易訊號,下午
安裝好券商版的MultiCharts(以下簡稱MC)後,可在桌面上看到四個ICON,在筆者依初學者使用的頻率,由左至右排列,分別是MC主程式(MultiCharts 64)、MC程式編輯器(MultiCharts64 PowerLanguage Editor)、MC最佳化結果檢視器(Mult
在工作室成立之初,簡直像神農嘗百草般地把各式各樣的技術指標拿來組合回測,試圖找出最佳的技標組合,後再進行策略參數的最佳化,這方式雖然可以找出回測期間很好的策略,但是一放入回測區間外的資料後,策略的績效絕大部份都是往下掉的,每個策略都是花費了一天以上的最佳化時間,好不容易找到奇妙的賺錢參數,可以上線自
最近因好奇目前程式交易的市場發展到什麼程度而報名了期貨工會開的程式交易課程,上課時看到一群積極想要加入程式交易領域的同學們,讓筆者回想到2008年筆者與一群志同道合的朋友,組成了一個程式交易工作室,一群人在三房二廳的公寓佈置了程式交易的辦公室,每天早上看盤、監控程式執行、寫交易訊號,下午
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
  會執行程式交易通常都有自己手單交易過的人,容易陷入自己主觀判斷進而影響量化交易,是因為來自於自己相信自己的判斷而非程式的進出場依據所造成,所以當有經驗的操作者要切入量化交易很容易犯這方面的問題,反而是從未進行交易過的,直接進行量化交易的小白是最適合,因為只能相信系統的買賣進出交易,反而可以有紀律
Thumbnail
本策略採用5、30分K的支撐與壓力進行突破買進與跌破賣出策略,透過盤中的量能變化進行買賣操作策略,該指標能夠真實地反映出價格的波動情況,並且可以靈活地調整參數進行進出場操作。 此策略主要是針對看盤的經驗,將策略轉化為程式進行自動化交易,減少人為的操作
Thumbnail
這篇是給初學技術分析者的建議,覺得去蕪存菁,最簡潔有效的東西。 1.認識什麼是K線,開高低收,成交量。 2.知道均線與均量的數學意義。 3.學習簡單的走勢型態,比如W底M頭,切線,跳空缺口。 以上3點就足夠了,不管基於什麼說法想法理由,都不要花時間去學任何其他指標。
Thumbnail
前幾個篇章已大致講完技術分析的原理,本篇是前篇的延伸,當我們觀察趨勢中的壓力與支撐時,如果出現特定結構的型態,此時是技術線型發出的強烈訊號,必須好好重視。有哪三種型態是.......
Thumbnail
這篇文章將分享作者在量化交易中的一些心得和經驗,包括使用線性表示商品未來合理價格、避免以單一指標決定交易等。透過這些觀點,讀者可以獲得更多對量化交易的理解。
Thumbnail
股市交易中,若能透過程式來輔助進出場的訊號,當手上的持股或者股池數量較多時,可以提供投資人較有效率的判斷,因此非常建議投資人花費一點時間了解程式交易的邏輯,比較常見的就是XQ全球贏家的"盤中量化模組(1000NT/月)" 或者比較簡易型的量化積木模組(500NT/月)。 每個投資者會因學習的過
Thumbnail
一般常見的時間架構分成三個:趨勢級別、分析級別、進場級別。 趨勢級別 週線 or 日線,目的是為了確認整體市場的方向,以及關鍵流動性區域(支撐、壓力位) 分析級別 4H or 1H,目的是確認市場當前方向、公允價值缺口、訂單塊、流動性區域、高期望值交易區域,需要花較多時間來分析。 進場級別
技術指標是建立交易規則的重要元素,以趨勢與震盪指標作為基礎。然而,在執行交易時,盤中價格的急遽變動可能導致技術指標的消失,造成交易失效。此篇文章提出瞭解決此問題的方法,包括對回測結果重新巡視、容忍短期超額虧損等。同時也提醒讀者,交易中的損失是普遍存在的,應保持有條理的應對,降低恐慌。
Thumbnail
學習K線圖的好處是能夠在這項技能當中研判各國股市、匯率或個股的趨勢脈動,因K棒的形成是真金白銀打出來的型態,就是最真實的市場的反映,若將K棒及成交量結合,就能掌握大部分市場的走向,未來您可以做波段或是當沖交易都適用,就不需要再聽任何消息能夠自己做判斷。
Thumbnail
這篇來淺談Multicharts和XQ的基本差異 基本知識 在講差異前,先讓大家知道,程式交易或是量化分析的軟體,其實是有很多選擇的。 當然,每種選擇會有不同的上手難度,以及費用。 通常越底層的語言,上手難度會越難,相對的,靈活性也會比較高。 反之,越高階的語言,上手難度越低,但靈活度
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
  會執行程式交易通常都有自己手單交易過的人,容易陷入自己主觀判斷進而影響量化交易,是因為來自於自己相信自己的判斷而非程式的進出場依據所造成,所以當有經驗的操作者要切入量化交易很容易犯這方面的問題,反而是從未進行交易過的,直接進行量化交易的小白是最適合,因為只能相信系統的買賣進出交易,反而可以有紀律
Thumbnail
本策略採用5、30分K的支撐與壓力進行突破買進與跌破賣出策略,透過盤中的量能變化進行買賣操作策略,該指標能夠真實地反映出價格的波動情況,並且可以靈活地調整參數進行進出場操作。 此策略主要是針對看盤的經驗,將策略轉化為程式進行自動化交易,減少人為的操作
Thumbnail
這篇是給初學技術分析者的建議,覺得去蕪存菁,最簡潔有效的東西。 1.認識什麼是K線,開高低收,成交量。 2.知道均線與均量的數學意義。 3.學習簡單的走勢型態,比如W底M頭,切線,跳空缺口。 以上3點就足夠了,不管基於什麼說法想法理由,都不要花時間去學任何其他指標。
Thumbnail
前幾個篇章已大致講完技術分析的原理,本篇是前篇的延伸,當我們觀察趨勢中的壓力與支撐時,如果出現特定結構的型態,此時是技術線型發出的強烈訊號,必須好好重視。有哪三種型態是.......
Thumbnail
這篇文章將分享作者在量化交易中的一些心得和經驗,包括使用線性表示商品未來合理價格、避免以單一指標決定交易等。透過這些觀點,讀者可以獲得更多對量化交易的理解。
Thumbnail
股市交易中,若能透過程式來輔助進出場的訊號,當手上的持股或者股池數量較多時,可以提供投資人較有效率的判斷,因此非常建議投資人花費一點時間了解程式交易的邏輯,比較常見的就是XQ全球贏家的"盤中量化模組(1000NT/月)" 或者比較簡易型的量化積木模組(500NT/月)。 每個投資者會因學習的過
Thumbnail
一般常見的時間架構分成三個:趨勢級別、分析級別、進場級別。 趨勢級別 週線 or 日線,目的是為了確認整體市場的方向,以及關鍵流動性區域(支撐、壓力位) 分析級別 4H or 1H,目的是確認市場當前方向、公允價值缺口、訂單塊、流動性區域、高期望值交易區域,需要花較多時間來分析。 進場級別
技術指標是建立交易規則的重要元素,以趨勢與震盪指標作為基礎。然而,在執行交易時,盤中價格的急遽變動可能導致技術指標的消失,造成交易失效。此篇文章提出瞭解決此問題的方法,包括對回測結果重新巡視、容忍短期超額虧損等。同時也提醒讀者,交易中的損失是普遍存在的,應保持有條理的應對,降低恐慌。
Thumbnail
學習K線圖的好處是能夠在這項技能當中研判各國股市、匯率或個股的趨勢脈動,因K棒的形成是真金白銀打出來的型態,就是最真實的市場的反映,若將K棒及成交量結合,就能掌握大部分市場的走向,未來您可以做波段或是當沖交易都適用,就不需要再聽任何消息能夠自己做判斷。
Thumbnail
這篇來淺談Multicharts和XQ的基本差異 基本知識 在講差異前,先讓大家知道,程式交易或是量化分析的軟體,其實是有很多選擇的。 當然,每種選擇會有不同的上手難度,以及費用。 通常越底層的語言,上手難度會越難,相對的,靈活性也會比較高。 反之,越高階的語言,上手難度越低,但靈活度