開盤5分K的比較及選股中心欄位新增欄位

  •   508 
  • 最後發表   涵43  2024 七月 18
涵43 發文於   2024/07/11

您好

1.

該如何寫出當今日開盤第一根5分K(0900~0905)成交量低於昨日開盤第一分5分K成交量之2倍

觸發警示

比如昨日500今日999這樣

 

2.

我想在選股中心新增振幅欄位

條件是成交量大於1500的情況下

漲跌幅各超過6%

程式:

OutputField1(GetField("振幅","D"),"振幅%");

 

var: price_change(0);

price_change = 100 * ((close - GetField("參考價", "D")) / GetField("參考價", "D"));

 

if volume > 1500 

AND price_change > 6

or price_change < -6

 

then ret = 1;

但是結果跟用設定選股條件跑出來的不太一樣

有成交量低於1500只有幾百張的

也有應符合條件但卻不在裡面的

請問該如何編寫

謝謝

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/07/11

(1)試試看下列交易腳本是否符合預期。

setTotalBar(55);

if barfreq<>"Min" or barinterval<>5 then raiseRunTimeError("限用5分鐘");

var: myMax(0);

if getInfo("isRealTime")=0 then

      if date<>date[1] and v>myMax then myMax=v

else

      if date<>date[1] then

            if v>myMax*2 then Alert("量大於前一天第一根5分K的量!");

(2)振幅與漲跌幅的定義不同。你題目是振幅,但程式計算用的是漲跌幅。此外,邏輯運算式的AND運算子優先於OR運算子,你的條件要改為:

if volume > 1500 AND (price_change > 6 or price_change < -6) then

  • 按讚來自於
  • ham0043
涵43 發文於   2024/07/11

感謝教授

(2)沒問題了

(1)想再請教 若我想把這個程式改到策略雷達用

是否把最後的then Alert改成then ret=1

謝謝

 

虎科大許教授 發文於   2024/07/11

在策略雷達改成ret=1;

  • 按讚來自於
  • ham0043
涵43 發文於   2024/07/13

謝謝教授

XS小編 發文於   2024/07/18

Hello 涵43,

 

小編補充,1. 的部分您可以透過在指定時間用變數保存K棒數值來比較。

舉例來說:

var: _preV(0);

if time = 090000 then begin

    if _preV <> 0 then begin

        if volume < _preV * 2 then ret = 1;  //今日第一根小於前一工作日第一根成交量的兩倍

        _preV = volume;

        end

    else begin

        _preV = volume;

        end;

    end;            

 

感謝 虎科大許教授 的熱心回覆。

發表回覆
Close