請問期貨的買進與買進出場雙雷達 收盤可print資料!!??

  •   96 
  • 最後發表   jazzcarr  2020 六月 18
jazzcarr 發文於   2020/06/15

程式碼如下  1400收盤執行 可以print資料 請問是甚麼原因呢?

我的腳本是1分鐘

 

 

input:BorS(0) , typeX(0) , priceX(0) ;
variable: PositonL(0) , PositonLx(0) , xBorS(0) , xIni(0) ; 
SetTotalBar(2) ;
SetInputName(1, "目前部位 1有多單 -1有空單 (暫無用)");
SetInputName(2, "雷達類型 1表做多 -1表作空");
SetInputName(3, "目前部位成本 (暫無用)");

if xIni= 0 and BorS <> 0 and xBorS =0 then xBorS = BorS; //輸入值不能更改  xs numericRef化

////////////////////////////////////////////////////////////

variable: LowRec(99999) ; //低點記錄
variable: LowGo (10)    ; //追漲點數 LowRec<> LowRec[1]  and 

if xBorS <> 1 then LowRec = minlist(l,LowRec[1]);  //沒多單時 計算進場條件

if c - LowRec > LowGo and xBorS <> 1 then  //多單條件
begin xBorS = 1 ; LowRec =99999 ; xIni =1 ;
      if typeX = 1 then ret = 1 ;     end ;

////////////////////////////////////////////////////////// 公司電腦防火牆擋住??還是效能不夠??

variable: HighRec(0) ; //高點記錄
variable: HighGo(10) ; //追跌點數 HighRec <> HighRec[1] and

if xBorS <> -1 then HighRec = maxlist(h,HighRec[1]); //沒空單時 計算進場條件

if  HighRec - c > HighGo and xBorS <> -1 then  //空單條件
begin  xBorS = -1  ;  HighRec = 0  ; xIni =1 ;
       if typeX = -1 then ret = 1 ;      end ;

/////////////////////////////////////////////////////
if LowRec <> LowRec[1] or HighRec <> HighRec[1] then
print(" 時間 = ", getfield("時間","tick") ," , xBorS = ",xBorS," , 低點 = ",LowRec," , 高點 = " ,HighRec ," 低[1] = ",LowRec[1]," , 高[1] = " ,HighRec[1]  );

 

 

排序方式: 標準 | 最新
jazzcarr 發文於   2020/06/15

 

print 如下

 

  時間 =  114959  , xBorS =  1  , 低點 =  99999  , 高點 =  11397 

 中間省略

 時間 =  134459  , xBorS =  0  , 低點 =  11389  , 高點 =  11398 

 時間 =  150059  , xBorS =  -1  , 低點 =  11367  , 高點 =  0 

中間省略

 時間 =  234859  , xBorS =  -1  , 低點 =  99999  , 高點 =  0 

  時間 =  59  , xBorS =  1  , 低點 =  99999  , 高點 =  11437 

 中間省略

 時間 =  44851  , xBorS =  1  , 低點 =  99999  , 高點 =  11427 

 時間 =  84559  , xBorS =  -1  , 低點 =  99999  , 高點 =  0 

 中間省略

 時間 =  134459  , xBorS =  0  , 低點 =  11389  , 高點 =  11398 

 時間 =  150059  , xBorS =  -1  , 低點 =  11367  , 高點 =  0 

 中間省略

 時間 =  235959  , xBorS =  1  , 低點 =  99999  , 高點 =  11435 

 中間省略

  時間 =  44851  , xBorS =  1  , 低點 =  99999  , 高點 =  11427 

 時間 =  84559  , xBorS =  -1  , 低點 =  99999  , 高點 =  0 

 中間省略

 時間 =  134259  , xBorS =  -1  , 低點 =  11216  , 高點 =  0 

 

 

 而且 每次執行時 最後1筆資料 未必是134259 有時最遠會到 134459 !!?? 又是甚麼原因呢?

 

jazzcarr 發文於   2020/06/15

簡易邏輯說明

距離最近低點反彈達10點 做多

距離最近高點落下達10點 做空

jazzcarr 發文於   2020/06/15

不好意思 第一次寫期貨的雷達

是否有些改寫建議 可以增進系統效能?

jazzcarr 發文於   2020/06/15

觀察盤中 print狀況

通常只有一開始 很順暢 

之後會卡住

然後過1~5鐘 一次print所有資料

這樣是正常嗎?

CPU是 i5 6600

看系統資訊 cpu與記憶體都只用30%左右而已

應該跑得動吧?

jazzcarr 發文於   2020/06/15

四個雷達 使用同一個腳本

分別用來 多單進場 多單出場 空單進場 空單出場

觀察四個腳本的print 最後更新時間會落差1~2分鐘

請問print很吃資源嗎?

四個雷達print的資料應該要一樣 對吧?

XQ小幫手 發文於   2020/06/16

HI jazzcarr,

1400收盤執行 可以print資料 請問是甚麼原因呢?

每次執行時 最後1筆資料 未必是134259 有時最遠會到 134459 !!?? 又是甚麼原因呢?

您好,猜想您的資料讀取筆數應該是預設 200 筆,則任何時間點執行雷達,都會先跑過往前 200 筆設定之K線頻率資料直到現在,

跑資料的過程中,若在 if LowRec <> LowRec[1] or HighRec <> HighRec[1] then print ... 此判斷成立的狀況下,就會 Print 資料出來,


 

 

 

觀察四個腳本的print 最後更新時間會落差1~2分鐘

if LowRec <> LowRec[1] or HighRec <> HighRec[1] then print ...

感覺是因為判斷式沒有通過,所以沒有Print,所以Print更新時間會不一致,

若仍有問題,請您提供策略雷達匯出檔案(*.DSRX)至此,記得勾選「包含自訂腳本」以利小幫手釐清問題的原因,謝謝。

 

jazzcarr 發文於   2020/06/16

我的腳本內有

SetTotalBar(2) ;

這樣應該就不會讀取兩百筆嗎?

還是語法要怎麼寫才對?

jazzcarr 發文於   2020/06/16

if LowRec <> LowRec[1] or HighRec <> HighRec[1] 拿掉了

還是一樣喔! 四個雷達卡住的時候 不一致 而且超過3分鐘沒有print資料

XQ小幫手 發文於   2020/06/18

Hi jazzcarr:

我的腳本內有 SetTotalBar(2) ; 這樣應該就不會讀取兩百筆嗎?

在以下此篇文章有回覆:

關於雷達的靈魂 警示腳本的一堆小問題 懇請解惑 !?

 


 

if LowRec <> LowRec[1] or HighRec <> HighRec[1] 拿掉了

還是一樣喔! 四個雷達卡住的時候 不一致 而且超過3分鐘沒有print資料

請您提供這四個策略雷達匯出檔案(*.DSRX)至此,記得勾選「包含自訂腳本」以利小幫手釐清問題的原因,謝謝。

 

發表回覆
Close