累加的問題

  •   204 
  • 最後發表   無情卻慈悲  2022 三月 04
無情卻慈悲 發文於   2022/03/03

你好,

我想寫一個外、內盤成交累加口數,日盤與夜盤要分開算的指標

我寫了如下的code,但發現夜盤是從下午3點開始,下午3點第一根5分K這呈現出來的數值好像也延續了日盤?

可以請小幫手指教一下嗎?

settotalBar(920);

//外盤成交口數 - 內盤成交口數

var:OutTick(0), InTick(0), Subtract(0);

 

//當交易日更新時,初始化每天紀錄的變數

if getfieldDate("date") <> getfieldDate("date")[1] then begin

OutTick = 0;

InTick = 0;

end;

if   SymbolType = 3  

 

//and CurrentBar >= 1 

then begin

 

OutTick= GetField("TotalOutTicks"); //外盤

OutTick = OutTick[1] + OutTick;

 

InTick = GetField("TotalInTicks"); //內盤

InTick = InTick[1] +InTick;

Subtract=  OutTick - InTick ;

 

plot1(OutTick,"外盤累成交口數");

plot2(InTick,"內盤累成交口數");

plot3(Subtract,"外內差(口數)");

end;

 

 

 

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/03/04

Hello 無情卻慈悲,

 

因為您重置變數時只有在交易日換日的時候。

if getfieldDate("date") <> getfieldDate("date")[1] then begin

    OutTick = 0;

    InTick = 0;

    end;

如果要日夜盤分開計算的話,兩者開始的時間變數都要重置:

if time = 150000 or time = 084500 then begin

    OutTick = 0;

    InTick = 0;

    end;

這樣就會在對應的時間重置變數。

 

另外您累加的寫法也有問題。

OutTick = OutTick[1] + OutTick;

這樣的話您重置就變得沒有意義,因為您直接把當根 OutTick 又加回前一根 (上個日/夜盤) 的資訊。

應該是這樣才不會累加到上個區間的資訊:

OutTick += GetField("TotalOutTicks");

InTick += GetField("TotalInTicks");

附上指標腳本供您參考。

附加文件

無情卻慈悲 發文於   2022/03/04

有關我OutTick = OutTick[1] + OutTick的寫法,我是參考之前這邊有人發問過而小幫忙回覆,可能情況不太一樣,所以這樣寫是有誤的,我再思考一下,感謝小幫手的幫忙,辛苦了。

發表回覆
Close