相差幾個tick的寫法

  •   552 
  • 最後發表   無情卻慈悲  2022 四月 13
無情卻慈悲 發文於   2022/03/31

請問是否有涵數可以直接表達出一根5分K的開盤與收盤相差幾個tick呢?

或是小幫手有什麼想法可以引導一下嗎?謝

排序方式: 標準 | 最新
貓老大 發文於   2022/04/02

以下是我之前的一段 code, 試算個股目前價格的跳動 Tick 單位, 你參考看看, 若高低價沒有跨越 Tick單位的邊界, 可直接用價差除TickUnit, 若有跨越, 就要分段計算

TickUnit = iff (trySellPrice <   10, 0.01,
           iff (trySellPrice <   50, 0.05, 
           iff (trySellPrice <  100, 0.10,
           iff (trySellPrice <  500, 0.50,
           iff (trySellPrice < 1000, 1.00, 5.00)))));

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

非常感謝您的分享,我利用假日好好研究看看,感恩!

另請教「iff」這是if嗎?還是另一種我不知的涵數呢?

小木可 發文於   2022/04/02

可以 google 一下,或直接在 XSHELP 查詢

IFF -  (系統函數)

 

小弟也長知識了~ 感謝貓老大!

 

 

---

2025年最新XQ全球贏家優惠碼 推薦碼:7377WZB

 

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

好的,也謝謝你

musashi 發文於   2022/04/05

試試這個!如果常在使用, 可以試著改成自己的函數,只要帶入開盤與收盤,然後帶出多少tick價差。

value1=o-c;                                 //開盤收盤價差
value2=addSpread(open,1)-addSpread(open,0); //判斷一個tick價錢
value3=value1/value2;                       //開盤收盤差多少tick
value4=BarsLast(IsSessionFirstBar)+1;       //當天頻率第N根K棒
if value4=1 then plot1(value3);             //第1根K棒畫出tick差

 

貓老大 發文於   2022/04/05

試試這個!如果常在使用, 可以試著改成自己的函數,只要帶入開盤與收盤,然後帶出多少tick價差。

value1=o-c;                                 //開盤收盤價差
value2=addSpread(open,1)-addSpread(open,0); //判斷一個tick價錢
value3=value1/value2;                       //開盤收盤差多少tick
value4=BarsLast(IsSessionFirstBar)+1;       //當天頻率第N根K棒
if value4=1 then plot1(value3);             //第1根K棒畫出tick差

 要考慮 Tick 跳動單位的邊界喔

musashi 發文於   2022/04/05

謝謝貓老大提醒,我來研究研究~

musashi 發文於   2022/04/06

好囉!跳動單位的邊界解決!

var:price_1(0),price_2(0);
var:tick_unit_1(0),tick_unit_2(0);
var:intraBarPersist tick_times(0);
value1=BarsLast(IsSessionFirstBar)+1;       //當天頻率第N根K棒
price_1=open;
price_2=close;
tick_times=0;
if price_1<price_2 then value2=1 else value2=0;  //判斷正負tick方向
while price_1<>price_2
begin
    tick_unit_1=iff (price_1 <   10, 0.01,
                iff (price_1 <   50, 0.05, 
                iff (price_1 <  100, 0.10,
                iff (price_1 <  500, 0.50,
                iff (price_1 < 1000, 1.00,5.00)))));
    tick_unit_2=iff (price_2 <   10, 0.01,
                iff (price_2 <   50, 0.05, 
                iff (price_2 <  100, 0.10,
                iff (price_2 <  500, 0.50,
                iff (price_2 < 1000, 1.00,5.00)))));
    if   price_1<price_2 
    then price_1=price_1+tick_unit_1 
    else price_2=price_2+tick_unit_2; 
         tick_times+=1;
end;
if value1=1 and value2=1 then plot1(tick_times, "相差tick次數");
if value1=1 and value2=0 then plot1(-tick_times,"相差tick次數");

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

好利害耶,我拜讀一下,看能否看的懂!

XQ小幫手 發文於   2022/04/13

Hello 無情卻慈悲,

 

您可以參考上面其他用戶提供的做法。

另外補充,關於Tick的計算您可以參考 AddSpread 函數。

不過此函數是交易函數,所以只能使用在交易腳本之中。

 

感謝 貓老大、小木可 及 musashi 的熱心回覆。

發表回覆
Close