變數問題

  •   11 
  • 最後發表   麥叔  11 小時前
麥叔 發文於   2026/03/26

我有一個變數bOnTrading,在程式還沒進入即時洗價前就被設定了,但是我是希望進入即時洗價後經過下面程式才被設定,請問這要怎麼修改?

if isFirstCall("Bar") then begin
    MACD(WeightedClose[1],12,26,9,Value4,Value5,Value6);
    if (NOT bOnTrading) and Value6<Value6[1] and Value6[1]<Value6[2] and Value6[2]<Value6[3] then begin
        bOscDown=True;
        P_Uplimit=close-Mod(close,10)+300;
        P_Dnlimit=P_Uplimit-600;
        grid_gap=(P_Uplimit-P_Dnlimit)/P_grid;  //網格間距
        dir_gap=grid_gap/2;
        stop_loss=P_UpLimit+grid_gap;
        //print("---",close,P_Uplimit,P_Dnlimit);
        end
    else
        bOscDown=False;
end;

 

再來,問一個笨問題,程式啟動,程式會跑一段,直到出現開始即時洗價,才是正式開始執行,對嗎?

截圖圖片

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2026/03/26

(1)變數會在商品第一次洗價就被設定,不受程式流程控制。

(2)程式執行時,會按照讀取資料筆數先逐一跑歷史K棒,直到開始即時洗價後,才會根據洗價方式依即時Tick或K棒結束進行洗價。

麥叔 發文於   2026/03/26

謝謝許教授,我的程式變數,在跑歷史K棒的時候就被那時候的請況設定,但我希望在後面正是跑的時候再依後面的情況設定。這要怎麼更改? 

虎科大許教授 發文於   2026/03/26

避免跑歷史K棒!

if Date=CurrentDate then ...

if getInfo("isRealTime")=0 then return;

排除歷史K棒。

 

  • 按讚來自於
  • TAC214
發表回覆
Close