MultiCharts初體驗-指標撰寫

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

在軟體工程中強調架構的延展性、維護性及重用性,將運算邏輯先寫成函式就是為了提高重用及維護,軟體界在這樣的發展下,開發出許多通用的套件,使得許多程式開發者可以利用套件來提升開發速度及穩定度,就如同現在的微波食品,想要煮一桌菜,不用自己從買食材開始、處理食材、料理食物、擺盤上桌⋯⋯等步驟,只需將買來的調理包弄熱,擺盤就可上桌了,在前篇寫的函式就可想像類似製作這類的調理包,日後只要拿來搭配使用,就可以寫出各式的指標或策略。

接下來就來將連續過高點或連續過低點的指標寫出來,讓MC的圖表視窗可以拿來使用,首先在PowerLanguage Editor中新增一個指標類型的空白文件,新增的方式與函式類似,只是在類型的視窗選擇「指標」。

新增指標

新增指標

指標名稱就取名為「_ContinueBreakOut」。

為指標命名

為指標命名

在指標的部份,也可以設定輸入的參數,與函式不同點在於函式是指定參數名及參數型態,而在指標是指定參數名及參數值,為了讓指標的使用情境可以更多元,在輸入參數的部份設計成三個參數,說明如下:

  1. BarCount:
    指定連續創高點或連續創低點的K棒數,使用者在日後使用時,可以依據自己的習慣改變後,觀察行情。
  2. Direction:
    要標示的方向,1為標示創高、-1為標示創低、0為二者都標示,讀者可以回想上一篇的參數,在撰寫時,就先預留了Direction的參數,在同一個函式中,就可以指定要判斷高點還是低點。
  3. Offset:
    當連續創高時,可指定標示的位置是在該根K棒高點往上加多少點數,連續創低時,可指定標示的位置是在該根K棒低點往下減多少點數,這樣的設計可以避免標示圓點剛好標示在最高價或最低價而影響到K線的觀察。
Inputs:BarCount(3), Direction(0), Offset(3);
輸入參數

輸入參數

接下來在指標的程式中,也需要使用到幾個變數,其說明如下:

  1. NeedDraw:
    用來存放此根K棒是否需要標示,當有連續創高點或連續創低點時,就可將此值改變成True,讓指標將其標示在K線圖上。
  2. Color:
    用來存放標示圓點的顏色,在程式中判斷連續創高點或連續創低點時,將標示點用不同顏色來標示。
  3. PlotValue:
    在計算過程中,創高點則往上加Offset的點數,創低點則往下減Offset的點數,為了讓程式的可讀性提高,則利用此變數來統一存放要標示的位置。
  4. UpColor:
    指定創高點的標示顏色。
  5. DownColor:
    指定創低點的標示顏色。
Variables:NeedDraw(False), Color(White), PlotValue(0), UpColor(Red), DownColor(Green);
程式中使用的變數

程式中使用的變數

調理包熱好了,餐具也準備好了,接下來進行擺盤後,就可以上桌了,讀者在剛接觸到程式設計時,也許無法一次就將這些變數完整設計出來,可以在用到時,再宣告就好,隨著寫作的次數增加,就會越來越熟練。

NeedDraw = False;

If Direction >= 0 And _ContinueBreakOut(BarCount, 1) Then
Begin
Color = UpColor;
PlotValue = High + Offset;
NeedDraw = True;
End;

If Direction <= 0 And _ContinueBreakOut(BarCount, -1) Then
Begin
Color = DownColor;
PlotValue = Low - Offset;
NeedDraw = True;
End;

If NeedDraw Then
Plot1(PlotValue, "", Color);
標示指標標示點

標示指標標示點

在指標撰寫時,先將NeedDraw設為False(即預設為沒有創高或創低),接下來,就要使用買來的調理包來上菜(誤,是已寫好的判斷函式),首先,先判斷是否有連續創高點,在此要有二個判斷式都成立,才會標示,Direction >= 0,用來決定是否要判斷行情連續創高點,在這裹使用個小技巧,使用Direction >= 0,讓使用者可以使用0或1來畫創高點(可參閱輸入參數說明,1表示只畫創高、0表示創高與創低均畫),另外使用我們已寫好的判斷函式_ContinueBreakOut,若回傳True即代表本根K棒是創新高。當二者都成立時,就將要標示的顏色(Color = UpColor)、標示的位置(PlotValue = High + Offset)並將此根K標示為需要標示(NeedDraw = True);連續創低點的邏輯與此類似,只是將其反過來,讓顏色及位置符合標示低點的設定。

最後使用Plot1這個內建函式來將標示點畫出,在這使用了NeedDraw來判斷是否需要畫出標示點,至此已將指標撰寫好,可以加入圖表視窗中使用。

在桌角遇到MultiCharts文寫到如何新增指標,讀者現在就可將指標顯示在K線圖上。

在指標的預設類型為「線條圖」,讀者可以將此類型變更為「點狀圖」這可以讓指標將標示點標示為點狀而非如均線般的線條,選完後,可勾選左下角的「設成預設值」即可將此指標的預設值設定為「點狀圖」,下次再使用時,就不需再手動調整。

設為點狀圖,並勾選設為預設值

設為點狀圖,並勾選設為預設值

按下確定後,即可將指標標示在行情上,但讀者會發現,為什麼不是如同均線一般標示在K線的圖表中,而是如成交量一樣,新增在下方成為一個新圖表,這是因MC的預設都是新增一個副圖。

標示在獨立的圖表區

標示在獨立的圖表區

此時,可以透過設定指標的方式,將圖移至K線圖,在設定的「屬性」頁籤可看到「副圖」的選項,將此指標的副圖選至「副圖#1」,然後一樣勾選「設成預設值」即可將其移至K線圖的位置。


將指標移至K線圖

將指標移至K線圖

raw-image

雖然已移至K線圖所在的區塊,但標示圖太小,不容易看,此時可以再透過設定的方式,增加其寬度,就可讓標示的點變大。

增加點狀圖寬度

增加點狀圖寬度

至此,讀者有沒有覺得自己突然得到神丹,功力立馬大增數萬年,已經可以開發自己的指標並且標示在線圖上,指標是交易訊號寫作靈感的來源,透過圖表的判斷,歸納出自己的交易訊號。




avatar-img
26會員
55內容數
金融市場入門新手所必知的基本知識
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
股市觀察家的沙龍 的其他內容
廣告常說:「男人過了四十歲,只剩一張嘴。」,連續二天的話當年後,要開始進入程式交易的主題,雖然前文描述是使用TradeStation為開發平台,但後來TS已轉為美國國內券商使用,在台灣MultiChart(以下簡稱MC)已成為主流的平台,雖然在使用上還是有許多雷區要避開,但平心而論,這平台算是程式初
安裝好券商版的MultiCharts(以下簡稱MC)後,可在桌面上看到四個ICON,在筆者依初學者使用的頻率,由左至右排列,分別是MC主程式(MultiCharts 64)、MC程式編輯器(MultiCharts64 PowerLanguage Editor)、MC最佳化結果檢視器(Mult
在工作室成立之初,簡直像神農嘗百草般地把各式各樣的技術指標拿來組合回測,試圖找出最佳的技標組合,後再進行策略參數的最佳化,這方式雖然可以找出回測期間很好的策略,但是一放入回測區間外的資料後,策略的績效絕大部份都是往下掉的,每個策略都是花費了一天以上的最佳化時間,好不容易找到奇妙的賺錢參數,可以上線自
最近因好奇目前程式交易的市場發展到什麼程度而報名了期貨工會開的程式交易課程,上課時看到一群積極想要加入程式交易領域的同學們,讓筆者回想到2008年筆者與一群志同道合的朋友,組成了一個程式交易工作室,一群人在三房二廳的公寓佈置了程式交易的辦公室,每天早上看盤、監控程式執行、寫交易訊號,下午
廣告常說:「男人過了四十歲,只剩一張嘴。」,連續二天的話當年後,要開始進入程式交易的主題,雖然前文描述是使用TradeStation為開發平台,但後來TS已轉為美國國內券商使用,在台灣MultiChart(以下簡稱MC)已成為主流的平台,雖然在使用上還是有許多雷區要避開,但平心而論,這平台算是程式初
安裝好券商版的MultiCharts(以下簡稱MC)後,可在桌面上看到四個ICON,在筆者依初學者使用的頻率,由左至右排列,分別是MC主程式(MultiCharts 64)、MC程式編輯器(MultiCharts64 PowerLanguage Editor)、MC最佳化結果檢視器(Mult
在工作室成立之初,簡直像神農嘗百草般地把各式各樣的技術指標拿來組合回測,試圖找出最佳的技標組合,後再進行策略參數的最佳化,這方式雖然可以找出回測期間很好的策略,但是一放入回測區間外的資料後,策略的績效絕大部份都是往下掉的,每個策略都是花費了一天以上的最佳化時間,好不容易找到奇妙的賺錢參數,可以上線自
最近因好奇目前程式交易的市場發展到什麼程度而報名了期貨工會開的程式交易課程,上課時看到一群積極想要加入程式交易領域的同學們,讓筆者回想到2008年筆者與一群志同道合的朋友,組成了一個程式交易工作室,一群人在三房二廳的公寓佈置了程式交易的辦公室,每天早上看盤、監控程式執行、寫交易訊號,下午
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
船槳用力插入水中激濺起嘩啦、嘩啦、嘩啦的破水聲!一聲聲地劃破清晨的寧靜,夏季五點多,天早已透亮,連著我十位槳手正在推動龍舟在碧潭的水面高速前進!船首傳來教練聲:手打直、身體要彎、腳要蹬讓船身飛起來,大家加油! 腦中的思敘回到出發前……
Thumbnail
玩具租借服務介紹及心得分享,由公司根據不同階段寄送玩具,讓孩子盡情嘗試後再決定是否續租。透過觀察孩子興趣可減少買錯玩具的機會,也讓孩子擁有的玩具更多樣性,提供瞭解玩具種類的參考。服務便利又貼心,可以有效減少玩具被閒置的情況。期待未來更多人一起加入。
Thumbnail
這篇來淺談Multicharts和XQ的基本差異 基本知識 在講差異前,先讓大家知道,程式交易或是量化分析的軟體,其實是有很多選擇的。 當然,每種選擇會有不同的上手難度,以及費用。 通常越底層的語言,上手難度會越難,相對的,靈活性也會比較高。 反之,越高階的語言,上手難度越低,但靈活度
Thumbnail
交易訊不會無中生有、憑空想像而出現,通常會將想要觀察的指標疊加在線圖上,再由圖上去找買賣規則的靈感,此篇就以前二篇開發連續創高或連續創低的指標來開發交易訊號。
Thumbnail
在軟體工程中強調架構的延展性、維護性及重用性,將運算邏輯先寫成函式就是為了提高重用及維護,軟體界在這樣的發展下,開發出許多通用的套件,使得許多程式開發者可以利用套件來提升開發速度及穩定度,就如同現在的微波食品,想要煮一桌菜,不用自己從買食材開始、處理食材、料理食物、擺盤上桌⋯⋯等步驟,只需將買來的調
Thumbnail
投資股市,所要面臨的人性考驗 在投資股市的過程中,有經驗的投資人,一定會經歷,人性的考驗 例如:帳面賠錢時,是否該停損;股票賺錢時,是否該獲利了結 然而,現實的狀況是,大部份的人,過度被 情緒 所主導,以致於在投資的過程中,容易發生,股票賣在阿呆谷,事後卻看著股票揚長狂飆,大嘆三聲無奈 另一個場
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
船槳用力插入水中激濺起嘩啦、嘩啦、嘩啦的破水聲!一聲聲地劃破清晨的寧靜,夏季五點多,天早已透亮,連著我十位槳手正在推動龍舟在碧潭的水面高速前進!船首傳來教練聲:手打直、身體要彎、腳要蹬讓船身飛起來,大家加油! 腦中的思敘回到出發前……
Thumbnail
玩具租借服務介紹及心得分享,由公司根據不同階段寄送玩具,讓孩子盡情嘗試後再決定是否續租。透過觀察孩子興趣可減少買錯玩具的機會,也讓孩子擁有的玩具更多樣性,提供瞭解玩具種類的參考。服務便利又貼心,可以有效減少玩具被閒置的情況。期待未來更多人一起加入。
Thumbnail
這篇來淺談Multicharts和XQ的基本差異 基本知識 在講差異前,先讓大家知道,程式交易或是量化分析的軟體,其實是有很多選擇的。 當然,每種選擇會有不同的上手難度,以及費用。 通常越底層的語言,上手難度會越難,相對的,靈活性也會比較高。 反之,越高階的語言,上手難度越低,但靈活度
Thumbnail
交易訊不會無中生有、憑空想像而出現,通常會將想要觀察的指標疊加在線圖上,再由圖上去找買賣規則的靈感,此篇就以前二篇開發連續創高或連續創低的指標來開發交易訊號。
Thumbnail
在軟體工程中強調架構的延展性、維護性及重用性,將運算邏輯先寫成函式就是為了提高重用及維護,軟體界在這樣的發展下,開發出許多通用的套件,使得許多程式開發者可以利用套件來提升開發速度及穩定度,就如同現在的微波食品,想要煮一桌菜,不用自己從買食材開始、處理食材、料理食物、擺盤上桌⋯⋯等步驟,只需將買來的調
Thumbnail
投資股市,所要面臨的人性考驗 在投資股市的過程中,有經驗的投資人,一定會經歷,人性的考驗 例如:帳面賠錢時,是否該停損;股票賺錢時,是否該獲利了結 然而,現實的狀況是,大部份的人,過度被 情緒 所主導,以致於在投資的過程中,容易發生,股票賣在阿呆谷,事後卻看著股票揚長狂飆,大嘆三聲無奈 另一個場