先記錄一下 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 大概很少人會用到吧。
DK大大您好:
回覆刪除透過朋友介紹來到您的網站,發現真的內容多樣又豐富,可以清楚感受到您的用心!
因為個人只有交易的概念,但是不懂程式語法,想到以下兩個想法,不知道該如何用TS表達,還請DK大能夠幫忙指導,感恩^^
1.簡單的加碼程式...
a.固定點位~建倉後(在還沒停損平倉前),可以指定順向第X點(例如第40點,60點,80點...)符合時,各市價加碼1口...
b.訊號重複~建倉後(在還沒停損平倉前),當同方向的買or賣訊號再出現時就市價加碼1口,或者指定第X個訊號(例如第1,3,5個訊號...)出現時各市價加碼1口...
2.簡單的停損程式
一般停損有很多種寫法,聽說SAR的趨勢跟隨特性很好,若多單收在sar下緣或者空單收在sar上緣則趨勢結束的準確度很高,而且比較經的起震盪,不會隨便被洗出去...
因此,請問如何運用sar來做停損(利)呢?
以上,懇請DK大能撥冗指導,感恩^^
幫你補充一下......
回覆刪除在TS裡的 基本IF 用法
若IF內只有一個敘述句
只要簡寫成這樣就可以
IF XXX THEN YYY; (YYY是敘述句)
若是有兩個以上..就必須要有BEGIN了
IF XXX THEN BEGIN
YYY;
ZZZ;
END;
請問大大
回覆刪除如果要寫一個當天只交易一次的策略
要用什麼函數呢
謝謝
皮皮小金鋼:用一個變數來作判斷就行了…當天有進場的話把變數改變…進場前先檢查這個變數
回覆刪除隨緣的風:嗯…你這個問題還滿大的…有機會我再慢慢回答你吧。
回覆刪除您好,上次來這邊詢問的Data2問題,還在研究中,謝謝您給的網址,對我很有幫助!
回覆刪除目前還在試著寫我的交易策略,現在又有新的問題了。當我insert strategy後,視窗顯示要我【increase the MaxBarsBack setting】,不曉得您了解這是什麼狀況嗎?
謝謝您!
您好:
回覆刪除我不是DK,所以您可能問錯人了XD...
但是您的問題我大概知道原因,舉例來說您的策略是用均線(60均線)來做進出依據,但是您在Symbol的某個設定(請找找和xx bar有關的字眼...)可能是50(一般的預設值)
因為50<60,所以程式無法正確套用您的策略,此時需要將該值50"增加"為60或更多,例如設定為100,才能正確套用您的策略^^
已上提供參考,詳細或較難的問題還是要請您詢問DK大大^^
祝 順心愉快!
Bill: 如隨緣的風所說..這是你在 insert strategy 時會有一個視窗…切換到 properties 分頁後就會在下方看到這個設定了…把這個數字調大一點就行了
回覆刪除DK您好!首先我真的覺得您的BLOG很讚,對我們有非常大的幫助,真的謝謝您的用心!
回覆刪除有個問題想請教您,不知道是不是我用了For迴圈,當我用最佳化時,會有一個視窗跳出來,上面寫著Entries\Exits exceed max allowed(65536) in one test. Please modify strategy to generate fewer trades.
為什麼我一定要設定65536以上呢?如果我設定65536以上,我就沒辦法獲得前面的回測,請問您有遇過這個問題嗎?
彼鳴:這應該是回測時間內交易次數太多的關係。
回覆刪除DK大你好:
回覆刪除我想要請問一下如果我想要寫一個策略是參數大於90之後再跌破75就放空 這樣應該要怎麼寫呢? 我是用HTS,這個問題困擾我好久,可以請你指導一下嗎? 感激不盡
小菜鳥:最近的教學文章有這方面的運用耶…參考一下吧。就是用變數記錄狀態。
回覆刪除感謝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大的耐心指點
給樓上:你在進場後沒有把flag"lala"給設定其他值,所以只要"if lala=1 and value1>-75 then"一滿足就會不斷買
回覆刪除sorry0920: 是的…就跟 Tokukawa 說的一樣…你在買進後應該要把 lala 設回來的。
回覆刪除if lala=1 and value1>-75 then
buy("買進") this bar at close
lala = 0
end if