XQ 提供了能夠在線圖上指定區域填色的功能,例如 KD 指標的超買超賣區間,讓使用者能夠更簡單的辨識指標間的範圍。
以下是文章目錄:
一、函數語法
二、函數說明
三、函數的運作方式
四、簡單範例:KD 的超買超賣區塊填色
一、函數語法
PlotFill(序列編號, vFrom, vTo) PlotFill(序列編號, vFrom, vTo, "序列名稱")end;
二、函數說明
第一個參數是設定序列編號,會是 1~999 的數值,與目前 Plot 的序列編號相同。 第二個和第三個參數分別是當根 K 棒要填色的開始和結束點。 第四個參數是設定序列的名稱,為選填的參數。若沒有設定的話預設會是 " Plot "+序列編號。三、函數的運作方式
在第一次執行 (K棒X1) PlotFill(1, Y1_U, Y1_D) 時,此函數會在 Y1_U 到 Y1_D 間畫出一條垂直的直線,此時並不會有填色的效果。 在第二次執行 (K棒X2) PlotFill(1, Y2_U, Y2_D) 時,且與兩次執行間沒有使用 NoPlot(1) 的狀況下,此時系統會將上次 (X1) 與此次 (X2) 的開始點 (Y1_U和Y2_U) 以及結束點 (Y1_D和Y2_D) 之間用直線連起來,搭配上 Y1_U, Y1_D 和 Y2_U, Y2_D 兩條垂直線,四條線連起來的區塊A填色。 在第三次執行 (K棒X3) PlotFill(1, Y3_U, Y3_D) 時,且與第二次執行間沒有使用 NoPlot(1) 的狀況下,系統會將 Y2_U, Y3_U 和 Y2_D, Y3_D 連接,搭配上 Y2_U, Y2_D 和 Y3_U, Y3_D 兩條垂直線的區塊B填色。 如果兩次呼叫此函數間有希望不塗色的部份的話,可以在區間內呼叫 NoPlot 函數來取消填色。 需注意開始點和結束點的順序,會影響畫出的區塊。 舉例來說: 左圖第一次執行是 PlotFill(1, 100, 200),第二次執行是 PlotFill(1, 100, 200)。 右圖第一次執行是是 PlotFill(1, 100, 200),第二次執行是 PlotFill(1, 200, 100)。 可以看到因為第二次的開始結束點交換了,導致填塞區塊也跟著交錯。 此外 PlotFill 在查價視窗中不會顯示任何數值,只有單純的填色效果。 若需要知道填色區塊邊緣的數值的話,可以搭配其他的繪圖函數來做使用。四、簡單範例:KD 的超買超賣區塊填色
//計算KD指標,並將KD的超買超賣區間填色 input: Length(9, "天數"), RSVt(3, "RSVt權數"), Kt(3, "Kt權數"); input: OverBought(80, "超買"), OverSold(20, "超賣"); variable: rsv(0), k(0), _d(0); Stochastic(Length, RSVt, Kt, rsv, k, _d); Plot1(k, "K(%)"); Plot2(_d, "D(%)"); //當K值在超買線以上時 if k > OverBought then begin //將由超買線開始到K值結束的區間填色 PlotFill(3, OverBought, k); NoPlot(4); //當K值在超賣線以下時 end else if k < OverSold then begin //將由超賣線開始到K值結束的區間填色 PlotFill(4, OverSold, k); NoPlot(3); end else begin //當K值位於中間時,不要填色 NoPlot(3); NoPlot(4); end;