如何使用XS指標腳本撰寫移動停損線?

  •   4.3K 
  • 最後發表   Jack  2019 六月 26
Jack 發文於   2016/10/26

移動停損線類似下方網頁介紹

http://www.chiefox.com.tw/bbs/showthread.php?threadid=16992 

 

相關說明:

在多方趨勢下(20MA及50MA黃金交叉)買進部位後,

根據當根K線及其前一天K線兩者之最低價中取其低,做為初始停損點,

當價格出現創新高之『收盤價』時,以創新高之K線最低點及其前一天K線最低點比較,取其低者,

將初始停損位置移動至此,直到有一天的K棒收盤價跌破最後的停損點才停止劃移動停損線。 

 

創新高的天期沒有一定,視整理時間長短,且創新高是以收盤價來看,需要過前面所有的高點價,如以下的附圖

 

在編號2買進,其初始停損價位在1的低點,期間經過編號3、4、5因收盤未站上編號2的高點,

所以要等到編號6才是創新高的K棒,

因編號6的收盤有過編號2的高點,且也站上編號3、4、5所有的高點,

此時將停損價位移至編號5的最低點(將編號6及5的低點相比較取其最低價為最新的停損價)

 

範例程式碼如下:

input:SLength(20, "MA短天期"),LLength(50, "MA長天期"),StartDay(20160501, "資料起始日");

variable: StopL(0), i(0);

if  getbaroffset(StartDay) > 0 then 
begin

    //if currentbar > 1 then
    i = i + 1;

    //  在多方趨勢下(20MA及50MA黃金交叉)買進部位後;value1 為 買進的Flag。
    //  根據當根K線及其前一天K線兩者之最低價中取其低,做為初始停損點
    if average(close, SLength) crosses above average(close, LLength) and value1 = 0 then 
    begin
        plot1(Low * 0.98, "買進");
        StopL = lowest(low, 2);
        value1 = 1;
        value2 = 0;
    end;

    //  當價格出現創新高之『收盤價』時
    //  以創新高之K線最低點及其前一天K線最低點比較,取其低者,
    //  將初始停損位置移動至此,
    if close > highest(close[1],i) then StopL = lowest(low, 2);


    //  直到有一天的K棒收盤價跌破最後的停損點才停止劃移動停損線。
    if close crosses below StopL and value1 = 1 and value2 = 0 then 
    begin
        value1 = 0;
        value2 = 1;
        plot2(high * 1.02, "賣出");
    end;

    plot3(StopL, "初始停損點");

    //  修飾線條區
    //if value1 = 0 or value2 = 1 then noplot(3); 
    if value1 = 0 then noplot(3);

end;

 

Jack 有使用一個資料起始日輸入參數,方便使用者 輸入資料開始的期間,

 

加入主圖疊圖後的畫面如下:

 

以上,提供參考。

 

  • 按讚來自於
  • weizilla
排序方式: 標準 | 最新
MK 發文於   2016/10/28

請問這個指標

可以改成『最近100支K棒』嗎?

Jack 發文於   2016/10/31

您好:

最近100枝K棒,

可以從【資料起始日】去做設定,

以上報告,謝謝。

Jack 發文於   2016/11/07

補充:

以下程式碼是依據最低價碰到布林軌道下軌的第一根K棒的低點為基準劃一條移動線,

若往後的K棒的收盤價跌破此基準點,就向下調整移動線。

 

程式碼範例如下:

input:StartDay(20160307),Length(20), UpperBand(2), LowerBand(2);

variable: entry_price(0),up_price(0),down_price(0), i(0);

value1 = bollingerband(close, Length, UpperBand);
value2 = bollingerband(close, Length, -1 * LowerBand);

if  getbaroffset(StartDay) > 0 then 
begin
    if down_price <> 0 then i=i+1;

    if low[1]>value2[1] and low<value2 and value3 = 0 then 
    begin
        plot1(low * 0.98, "下軌買進");
        entry_price=C;
        down_price=low;
        value3 = 1;
        value4 = 0;
    end;

    if close<lowest(down_price,i) and value3 = 1 and value4 = 0 then 
    begin
        value3 = 0;
        value4 = 1;
        plot2(high * 1.02, "下軌賣出");
    end;

        plot3(down_price, "下通道");

    if value4 = 1 then i = 0;


    //  修飾線條區
    //if value1 = 0 or value2 = 1 then noplot(3); 
    if value3 = 0 then 
    begin 
        noplot(3); 
    end;
end;

 

繪製出來的主圖疊圖如下:

 

以上,提供參考。

 

阿維 發文於   2019/06/26

可以麻煩把這段程式寫成警示讓我參考嗎..
新手感謝捷克大大..

發表回覆
Close