[TS懶人包] [保險服務]

2009年6月21日 星期日

HTS、TradeStation 基本判斷、迴圈語法

算是為我自己記錄一下…因為 HTS 和 TradeStation 兩邊在語法使用上有一些差異…常常搞混掉…HTS 有的判斷要加上 then 、有的卻不用…TradeStation 有的要加上 begin 有的卻不用…果然是很容易搞混掉…所以就直接拿一些程式碼的例子來記錄一下…也許我自己也會常來翻這一篇文章。

先記錄一下 TradeStation 的各種使用方法:

基本 IF 的用法:

If xxx then begin
YYY;
end;


IF ... else 用法:

If xxx then begin
YYY;
end
else begin
ZZZ;
end;


For 迴圈用法:(不需要 then)

For xxx begin
YYY;
end;


While 迴圈用法:(不需要 then)

While xxx begin
YYY;
end;



接下來是 HTS 的情況:

If 用法:

If xxx then
YYY
end if


If ... else 用法:

If xxx then
YYY
else
ZZZ
end if



For 迴圈用法:

For xxx then
YYY
end for


While 迴圈用法:

Do While(XXX)
YYY
Loop


可以看到 While 迴圈的差異最大…不過 While 大概很少人會用到吧。

15 則留言:

  1. DK大大您好:

    透過朋友介紹來到您的網站,發現真的內容多樣又豐富,可以清楚感受到您的用心!

    因為個人只有交易的概念,但是不懂程式語法,想到以下兩個想法,不知道該如何用TS表達,還請DK大能夠幫忙指導,感恩^^

    1.簡單的加碼程式...

    a.固定點位~建倉後(在還沒停損平倉前),可以指定順向第X點(例如第40點,60點,80點...)符合時,各市價加碼1口...

    b.訊號重複~建倉後(在還沒停損平倉前),當同方向的買or賣訊號再出現時就市價加碼1口,或者指定第X個訊號(例如第1,3,5個訊號...)出現時各市價加碼1口...

    2.簡單的停損程式

    一般停損有很多種寫法,聽說SAR的趨勢跟隨特性很好,若多單收在sar下緣或者空單收在sar上緣則趨勢結束的準確度很高,而且比較經的起震盪,不會隨便被洗出去...

    因此,請問如何運用sar來做停損(利)呢?

    以上,懇請DK大能撥冗指導,感恩^^

    回覆刪除
  2. 幫你補充一下......

    在TS裡的 基本IF 用法

    若IF內只有一個敘述句
    只要簡寫成這樣就可以
    IF XXX THEN YYY; (YYY是敘述句)

    若是有兩個以上..就必須要有BEGIN了
    IF XXX THEN BEGIN
    YYY;
    ZZZ;
    END;

    回覆刪除
  3. 請問大大
    如果要寫一個當天只交易一次的策略
    要用什麼函數呢
    謝謝

    回覆刪除
  4. 皮皮小金鋼:用一個變數來作判斷就行了…當天有進場的話把變數改變…進場前先檢查這個變數

    回覆刪除
  5. 隨緣的風:嗯…你這個問題還滿大的…有機會我再慢慢回答你吧。

    回覆刪除
  6. 您好,上次來這邊詢問的Data2問題,還在研究中,謝謝您給的網址,對我很有幫助!
    目前還在試著寫我的交易策略,現在又有新的問題了。當我insert strategy後,視窗顯示要我【increase the MaxBarsBack setting】,不曉得您了解這是什麼狀況嗎?
    謝謝您!

    回覆刪除
  7. 您好:

    我不是DK,所以您可能問錯人了XD...

    但是您的問題我大概知道原因,舉例來說您的策略是用均線(60均線)來做進出依據,但是您在Symbol的某個設定(請找找和xx bar有關的字眼...)可能是50(一般的預設值)
    因為50<60,所以程式無法正確套用您的策略,此時需要將該值50"增加"為60或更多,例如設定為100,才能正確套用您的策略^^

    已上提供參考,詳細或較難的問題還是要請您詢問DK大大^^

    祝 順心愉快!

    回覆刪除
  8. Bill: 如隨緣的風所說..這是你在 insert strategy 時會有一個視窗…切換到 properties 分頁後就會在下方看到這個設定了…把這個數字調大一點就行了

    回覆刪除
  9. DK您好!首先我真的覺得您的BLOG很讚,對我們有非常大的幫助,真的謝謝您的用心!

    有個問題想請教您,不知道是不是我用了For迴圈,當我用最佳化時,會有一個視窗跳出來,上面寫著Entries\Exits exceed max allowed(65536) in one test. Please modify strategy to generate fewer trades.
    為什麼我一定要設定65536以上呢?如果我設定65536以上,我就沒辦法獲得前面的回測,請問您有遇過這個問題嗎?

    回覆刪除
  10. 彼鳴:這應該是回測時間內交易次數太多的關係。

    回覆刪除
  11. DK大你好:

    我想要請問一下如果我想要寫一個策略是參數大於90之後再跌破75就放空 這樣應該要怎麼寫呢? 我是用HTS,這個問題困擾我好久,可以請你指導一下嗎? 感激不盡

    回覆刪除
  12. 小菜鳥:最近的教學文章有這方面的運用耶…參考一下吧。就是用變數記錄狀態。

    回覆刪除
  13. 感謝D.K大 我有寫出來了 不過他條件一符合後會不斷的買進耶,可以請你幫我看看是哪裡寫錯了嗎?

    parameter:length(20)
    var:lala(0)
    value1= percentR(length)
    if value1<-90 then
    lala=1
    end if
    if lala=1 and value1>-75 then
    buy("買進") this bar at close
    end if
    if CurrentContracts = 1 and low<=EntryPrice(0)-30 then
    exitlong next bar at market
    end if

    感謝D.K大的耐心指點

    回覆刪除
  14. 給樓上:你在進場後沒有把flag"lala"給設定其他值,所以只要"if lala=1 and value1>-75 then"一滿足就會不斷買

    回覆刪除
  15. sorry0920: 是的…就跟 Tokukawa 說的一樣…你在買進後應該要把 lala 設回來的。

    if lala=1 and value1>-75 then
    buy("買進") this bar at close
    lala = 0
    end if

    回覆刪除

請留下您的大名…匿名者恕不回應…

Related Posts Plugin for WordPress, Blogger...