用1分K計算紅K量是正的,黑K量是負的,然後相加當日累積,但畫出來的圖都是把前幾天的值再累加上去,請問要加什麼條件才可以限定從當日第一根K棒的量開始計算?謝謝

要怎麼計算日內的當日累積量(從第一根K棒開始計算)
- 393
- 最後發表 andrew1234 2024 四月 16
andrew1234
發文於
2024/04/12
bowen
發文於
2024/04/13
if date <> date[1] then 歸零
andrew1234
發文於
2024/04/13
hi bowen感謝指導
我修改後還是會加到前一天的量,還在練習都是拼拼湊湊哈
我寫的如下想再請教以下問題
1. 還是會加到前一天的紅黑K的量
2. 當天紅黑K的量要怎麼寫才能從第一根一直累加到收盤?
3.如果股票或期貨日盤用if date <> date[1] then 應該可以解決,如果是期貨夜盤從15:00開始到隔天早上是不是會有問題?
謝謝
inputs:
bfreq("Min"),
isrealtime(1);
vars:
v1(0),
v2(0),
v3(0),
v4(0),
v5(0);
if bfreq <> "Min" then
RaiseRuntimeError("僅支援分鐘");
if isrealtime <> 1 then
return;
if C>O then v1=volume else v1=0;
if C<O then v2=volume*(-1) else v2=0;
if C=O then v3=0;
if C <> O then
v4= v1+v2+v3
else
v4= v1+v2+v3;
If date <> date[1] and CurrentBar =1 then
value1= v4
else
value1= v4+v4[1];
plot1(value1,"紅黑K累積量");
bowen
發文於
2024/04/14
給你參考,不知道是不是你要的
if barfreq <> "min" or barInterval <> 1 then raiseRunTimeError("本腳本只適用1分K"); var:red_k(0),black_k(0),sum_V(0); if symbolType = 2 and date <> date[1] then begin red_k = 0; black_k = 0; sum_V = 0; end; if symbolType = 3 or symbolType = 5 then begin if time = 150000 then begin red_k = 0; black_k = 0; sum_V = 0; end; if time = 084500 and timeDiff(time,time[1],"H") < 0 then begin // 沒夜盤 8 - 13 會 < 0 有夜盤: 8 - 4 會 > 0 red_k = 0; black_k = 0; sum_V = 0; end; end; if close > open then red_k = red_k + volume; if close < open then black_k = black_k + volume; sum_V = red_k - black_k; plot1(sum_V);
可能邏輯要再清楚一些,
先歸零再計算,所以if date <> date[1] 擺前面,當天第1根bar不等於1,plot出來你就明白。
andrew1234
發文於
2024/04/14
hi bowen
真的很厲害!感謝指導!
5 評論