自動下單 逐筆,程式重複執行。 即使依靠變數也無法避開。

  •   189 
  • 最後發表   SteveLo  2022 八月 23
SteveLo 發文於   2022/08/15

版本編號3.08.09

程式碼會在當日第一筆 做起始化 並將condition1 設為true避免重複執行。
但是實際log缺非這樣。只有在換CurrentBar程式才起作用。

if Date<>Date[1] and condition1 = False Then Begin
    condition1 = true;//已經起始化
    if getinfo("IsRealTime") = 1 then begin
        print(file(DevLogLoc),"RT CD=",CurrentDate,"CT=",CurrentTime,"CB=",CurrentBar,
        "TV=",TickVolume,"RefPrice=",RefPrice,"YPCR=",YPriceChangeRatio,"PCR=",PriceChangeRatio,"DAvgPrice=",DAvgPrice,"InSize=",InSize,"OutSize=",OutSize);
    End;
end else begin
    print(file(DevLogLoc),"CD=",CurrentDate,"CT=",CurrentTime,"CB=",CurrentBar);
End;

 

Logs呈現

RT CD= 20220815.000000 CT= 90019.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90019.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90027.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90028.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90031.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90031.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90033.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90034.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90035.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90037.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90038.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90040.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90041.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90044.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90045.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90046.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90048.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90049.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90050.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90054.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90055.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90059.000000 CB= 101.000000 
RT CD= 20220815.000000 CT= 90100.000000 CB= 101.000000
CD= 20220815.000000 CT= 90201.000000 CB= 103.000000 
CD= 20220815.000000 CT= 90201.000000 CB= 103.000000 
CD= 20220815.000000 CT= 90201.000000 CB= 103.000000 
CD= 20220815.000000 CT= 90202.000000 CB= 103.000000 
CD= 20220815.000000 CT= 90203.000000 CB= 103.000000 

 

log

https://drive.google.com/file/d/1R4nIKjzZudIaFmT5t03Hr8loEM9vXi6Q/view?usp=sharing

排序方式: 標準 | 最新
musashi 發文於   2022/08/16

試試把condition1換成自訂的布林值,並讓它即時更新。

var:intraBarPersist _condition1(false);

SteveLo 發文於   2022/08/17

感謝回覆目前測試中!

XQ小幫手 發文於   2022/08/18

Hello SteveLo,

 

小幫手補充,您可以參考 intrabarpersist 函數的說明。

若要在保存同根Bar內逐筆洗價運算的結果,變數就需要使用 intrabarpersist 來宣告。

SteveLo 發文於   2022/08/18

請問是每個變數都要加入?

vars: intraBarPersist _aaa(false),intraBarPersist _bbb(false),intraBarPersist _ccc(false);

還是開頭即可?

vars: intraBarPersist _aaa(false), _bbb(false), _ccc(false);

XQ小幫手 發文於   2022/08/23

Hello SteveLo,

 

是要使用此功能的每個變數前面都加入宣告。

如果只有開頭寫的話,只有第一個變數是 intrabarpersist 其他不是。

發表回覆
Close