使用策略雷達監控創當日新高/新低

  •   1.1K 
  • 最後發表   Jack  2021 五月 04
Jack 發文於   2018/12/26

大家好,

分享如何使用策略雷達監控創當入新高/新低。

 

大致撰寫邏輯:

1. 使用 input 宣告輸入時間參數,當過此時段(HHMMSS)才開始監控。

2. 使用 IntrabarPersist 宣告記錄創新高/新低的紀錄變數。

3. 使用 getinfo 在即時成交更新資料才開始進行條件判斷。

4. 使用 once 執行一次更新目前的最高/低價。

5. 使用 if 判斷當收盤價創當日新高/當日新低,則觸發警示,並在使用 retmsg 在執行紀錄秀出觸發警示時的相關資料。

 

警示腳本範例程式碼如下:

input:_time(100000, "過此時段(HHMMSS)才開始監控");
variable:IntrabarPersist DHigh(0), IntrabarPersist DLow(0),strDHigh(""),strDLow("");

if currenttime < _time then return;  //在指定時段後才開始判斷。

if getinfo("IsRealTime") <> 1 then return;    //即時成交更新資料才開始判斷。

//只需要執行一次去更新目前的最高價與最低價。
once(true)  begin
    DHigh = high;
    DLow = low;
end;

//用以下 if 判斷當收盤價創當日新高/當日新低,則觸發警示,並在執行紀錄秀出相關資料。
if close > DHigh then begin
    strDHigh = Text("收盤價=",close,"創當日新高。前次新高價為=",DHigh);
    retmsg = strDHigh;
    ret = 1;
    DHigh = close;
end else if close < DLow then begin  
    strDLow = text("收盤價=",close,"創當日新低。前次新低價為=",DLow);
    retmsg = strDLow;
    ret = 1;
    DLow = close;
end;                    

 

範例策略雷達匯出檔如附檔,提供給大家參考,若有問題歡迎大夥一起討論。

附加文件

  • 按讚來自於
  • DARKLYNN
排序方式: 標準 | 最新
chun0712 發文於   2018/12/27

請教JACK大:

  Value2=Highest(high[1],30);//30日內高點之最大值

   condition1=high >= Value2 ;

 

   //今日高點 大於 前30日內最高點

 

如果我使用盤中策略雷達來監控,今天盤中的價格有沒有比前30日內的最高點還高,我在condition1那邊要用high去判斷有沒有 >value2 ,還是我要用close來判斷呢?

Jack 發文於   2018/12/27

chun0712 兄,

若你的策略雷達資料頻率是「日」

那你在 condition1 那邊用 high 去判斷有沒有 > value2 應該即可,

以上個人淺見,供參酌。

 

Leo Chen 發文於   2020/05/29

請教JACK大:
超級新手請益...
Jack大,上面應該要輸入什麼樣的數值嗎~只更改了時間是不是不會作動呢...
問題很蠢但我真不懂QQ

XQ小幫手 發文於   2020/06/03

Hi  Leo Chen

小幫手猜想,如果您是下載了JACK大提供的腳本使用

因為JACK大匯出的已經是策略雷達檔案,您可以在策略雷達的參數介面直接改數值使用

在盤中的時候持續執行,就會到指定時間才開始運作喔~
如JACK提供的範例,就會是早上10:00之後才會開始判斷,以上說明,謝謝。

Tzu-Xuan Lin 發文於   2021/05/02

請問如果5分鐘突破當日新高 腳本也是這樣寫嗎

XQ小幫手 發文於   2021/05/04

Hello Tzu-Xuan Lin,

 

是的,您可以直接使用此函數。

如果您只需要突破新高的部分,那就把突破新低檢驗的部分刪除即可。

刪除後的腳本如下供您參考。

 

input:_time(100000, "過此時段(HHMMSS)才開始監控");

variable:IntrabarPersist DHigh(0), strDHigh("");

 

if currenttime < _time then return;  //在指定時段後才開始判斷。

 

if getinfo("IsRealTime") <> 1 then return;    //即時成交更新資料才開始判斷。

//只需要執行一次去更新目前的最高價。

once(true)  begin

    DHigh = high;

end;

 

//用以下 if 判斷當收盤價創當日新高,則觸發警示,並在執行紀錄秀出相關資料。

if close > DHigh then begin

    strDHigh = Text("收盤價=",close,"創當日新高。前次新高價為=",DHigh);

    retmsg = strDHigh;

    ret = 1;

    DHigh = close;

end;

發表回覆
Close