XS語法請教~

  •   394 
  • 最後發表   qoo681kai  2021 十二月 15
qoo681kai 發文於   2021/12/06

請教一下小編以及各位前輩 ,目前想寫一個盤中量縮後在一定的時間內又出量的警示

例如 

If  成交量<= 量縮

and

  限時內(比如10鐘)

and

成交量>=出量

then ret=1;

 

所以想請問一下 時間內的語法因該要麼寫

 

 

如果這樣寫可以嗎?

 

        Value99 = TimeAdd(currenttime, "M", 30);//限時30分鐘  

 

 

 

if    Value4 <= Value88 then

begin

      

   if   currenttime = Value99 and Value4 >= Value77 then ret=1;

end;

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/12/09

Hello qoo681kai,

 

您計算時間的部分應該要放在量縮判斷內,這樣時間才不會一直改變。

舉例來說,您可以這樣寫:

if getfielddate("Date") <> getfielddate("Date")[1] then value1 = 0;  //換日時將量縮紀錄歸0

if 量縮條件... then begin 

    value99 = TimeAdd(currenttime, "M", 30);

    value1 = 1;   //紀錄量縮條件有達成

    end;

if 量增條件 and currenttime <= value99 and value1 = 1 then begin

    ret = 1;

    value1 = 0;   //將量縮紀錄歸0

    end;

這樣每個量縮紀錄只會對到一個量增並觸發。

qoo681kai 發文於   2021/12/11

謝謝小幫手師傅 幫我解答 , 不過經過測試好像還有點小問題,還請麻煩小幫手師傅 幫我解惑一下 哈~

我把 腳本分別做成 指標 與 警示 來做對比 發現以下問題

警示腳本:(3分K下執行)

ㄑif getfielddate("Date") <> getfielddate("Date")[1] then value5 = 0;  //換日時將量縮紀錄歸0

if    Value4 <= Value88 then begin//量縮標準

      Value99 = TimeAdd(CurrentTime, "M",30 );//限時30分鐘

      value5  = 1; 

    end;

iF   Value4 >= Value77 and CurrentTime<= Value99 and value5  = 1 then begin  // 限時30分鐘內出現量增   

  ret=1; 

  value5=0;

 

end;

 

 

指標腳本:(3分K下執行)

if getfielddate("Date") <> getfielddate("Date")[1] then value5 = 0;

if    Value4 <= Value88 then begin//成交量小於等於量縮標準

      Value99 = TimeAdd(CurrentTime, "M",30 );//限時30分鐘

      value5  = 1; 

      plot6(value88, "量縮");//標記量縮

end;

if    Value4 >= Value77 and CurrentTime<= Value99 and value5  = 1 then begin         

  value5=0;

      plot7(value77, "出量");//標記出量

end;

 

 

問提1:

指在12 :30標示了綠色下三角形的量縮標記, 到了13:12的時候出現了紅色上三角形的量增訊號 ,為什麼以經超出腳本設定的30分鐘內 指標 與 警示 還會執行 請問是哪裡有寫錯 還是漏寫了麼??

 

 

問題2:

指標在12:30出現了綠色下三角形的量縮標記,假設在12:39又出現了綠色下三角形的量縮標記,那腳本是不是重12;39開始重新算30分鐘?如果是那因該如何取消12:39前出現的量縮標記??

問題3:

如何讓指標不要重疊,圖中 綠色三角形跟圓形  重疊在一起了,如何壤他們依序排列?

 

 

問題4:

目前想寫一個新指標 在3分K下執行

以每天早上的一根K的成交量為基準,假設09:03分的第一跟K的成交量是1000張, 如果在09:12分成交量大於1000(假設是1200) ,我想在09:12這跟K棒的最高點 與最低點 各畫一條平行的線,如果又在09:18成交量又大於09:12 我想在09:18的K棒上再畫一次線並且把先前09:12畫的線取消掉 ,請問因該麼寫??

 以上有勞小幫手師傅幫我解惑了~謝謝!!

XQ小幫手 發文於   2021/12/15

Hello qoo681kai,

 

1.您可以把指標中的currenttime改為time應該就可以了。

  currenttime 如果是使用在指標上取得的將會是指標掛上去的時間。

  若還有問題的話,需要麻煩您提供完整的指標腳本,並告知錯誤發生的商品與時間讓小幫手研究。

 

2.是,會從 12:39 重新計算30分鐘。

  無法取消之前標記的記號,XQ無法修改過去畫過的圖。

 

3.您可以在指標設定中的繪圖樣式裡作調整,將座標軸改為高點(或低點)即可。 (參考附圖)

 

4.如同問題2所說,無法將先前畫的線取消掉。

附加文件

發表回覆
Close