2009年9月14日 星期一

CDP當沖進階程式碼

上一篇的easylanguage的講解,用的是當沖懶人包一文中的程式,再加上高低點的濾網,總獲利增加了約四十萬,而maxdrawdown從15萬大幅下降到6萬9,而所用的參數只有3個。



以下為每年的獲利,心動了嗎?程式真的不難,難的是要持續執行。



附上程式碼,方便大家使用

input:stoploss(0.01),LengthL(30),LengthS(30);
variables:cdp(0),ah(0),nh(0),nl(0),al(0),longcount(0),shortcount(0);

if time = 0850 then
begin
cdp = (highD(1)+LowD(1)+2*CloseD(1))/4;
ah = cdp + (highD(1) - LowD(1));
nh = cdp*2 - LowD(1);
nl = 2*cdp - highD(1);
al = cdp - (highD(1) - LowD(1));
longcount = 0;
shortcount = 0;
end;

condition1 = time > 0850 and time < 1340 and Close > Highest(high,LengthL)[1] and Longcount = 0;
condition2 = time > 0850 and time < 1340 and Close < lowest(low,LengthS)[1] and shortcount = 0; if condition1 then begin Buy("CDP_B") 1 contracts next bar at ah stop; end; if condition2 then begin Sell("CDP_S") 1 contracts next bar at al stop; end; if marketposition = 1 then begin longcount = 1; end; if marketposition = -1 then begin shortcount = -1; end; if marketposition = 1 then begin exitlong("SlL") 1 contracts next bar at entryprice*(1 -stoploss) stop; end; if marketposition = -1 then begin exitshort("SlS") 1 contracts next bar at entryprice*(1 + stoploss) stop; end; if time = 1340 then begin exitlong("exitL") 1 contracts this bar at close; exitshort("exitS") 1 contracts this bar at close; cdp = 0; ah = 0; nh = 0; nl = 0; al = 0; end;

29 則留言:

  1. 網誌管理員已經移除這則留言。

    回覆刪除
  2. 報告TSTS星人!
    condition1 = time > 0850 and time <> Highest(high,LengthL)[1] and Longcount = 0;
    應為
    condition1 = time > 0850 and time <1340 and Close> Highest(high,LengthL)[1] and Longcount = 0;

    回覆刪除
  3. 請問TSTS大
    我把程式碼丟到TS裡頭跑台指期回測(2001.01-2009.09 5分K)
    來回交易成本1200

    結果的EXCEL長這樣
    http://webhd.xuite.net/_oops/seri/xh3

    交易次數只有三百多次?獲利不到100W
    是不是有哪邊設定錯了

    回覆刪除
  4. 不好意思我是程式交易的新手
    問一個蠢問題
    高低點的濾網是什麼??

    回覆刪除
  5. 你的參數要跑一下最佳化,我有跑最佳化,預設的參數不是最佳參數,麻煩參考TS最佳化教學。

    回覆刪除
  6. to robin
    Close > Highest(high,LengthL)[1],收盤價大於過去幾根K線的高點,才會進場。

    回覆刪除
  7. 版大您好...

    謝謝您的熱心分享~不過我好奇的是
    CDP又稱作逆勢操作指標,但是進場條件設定為收盤大於N日最高點,這樣似乎就變成是順勢了,如果再加入盤整盤時的用法呢?

    回覆刪除
  8. 指標是中性的,順勢逆勢都是人加上去的。盤整盤的用法我可能不大會,我對盤整盤不大行哩

    回覆刪除
  9. 版主你好,想請問一下你在回測時,cost選項裡
    commission及slippage會設多少呢?(另外,是以per unit還是per transaction為單位呢?)
    謝謝

    回覆刪除
  10. commission我設...aumount 1000 per unit,slippage我就沒設了,成本加滑價就是1000

    回覆刪除
  11. 請教ts星大人,要如何加入停利程式啊?
    我試了好久都有問題,
    我加了進去,可是verify卻在停利程式出現("S1L") 問題?
    singal name already used

    我只有在input加profittarget(0.01),
    input:stoploss(0.01),profittarget(0.01),lengthl(30),lengths(30);

    以及停損程式後面加停利程式而已,如下
    if marketposition =1 then begin
    exitlong("S1L") 1 contracts next bar at entryprice*(1+profittarget)stop;
    end;

    if marketposition =-1 then begin
    exitshort("S1S") 1 contracts next bar at entryprice*(1-profittarget)stop;
    end;

    請問要怎麼寫才正確啊?我是菜鳥請救救我阿ts星大人~

    回覆刪除
  12. exitlong("S1L"),你把S1L改掉,改成你自己想要的名字,不能一樣的名字用在不同的出場點

    回覆刪除
  13. Dear TSTS,

    I am a new beginner in tai wan futures as well as easylanguage. Is the code TSM1C or EWT1C in Tradestation?

    Moreover, for the system source code that you have placed above, what is the charts setting for the programme?

    A million thanks. I found your blog very inspiring and useful for me.

    Jusmin

    回覆刪除
  14. Hello

    我用您的程式碼回測的結果和您po的回測結差粉大
    不知是哪裡的設定有問題 已做最佳化
    我用的環境為TS2000i
    回測期間為2001/01/01~2009/07/31

    Best Regards,
    Robin

    回覆刪除
  15. 請問TSTS星人,這策略套用在台指上,因為記得台指似乎不接受stop單,因此
    Buy("CDP_B") 1 contracts next bar at ah stop;
    實際到自動下單機到券商應該會變成市價單,這樣來看,計算ah,CDP這些值就變得沒有意義,因為進出場的依據是看突破多少天的高低價,和CDP這些值一點關係也沒有...請問我的理解有誤嗎?

    謝謝~~

    回覆刪除
  16. 也許星人用的是TS8的IntrabarOrderGeneration?
    不然next bar進出就變成隔天了

    回覆刪除
  17. 上面二位的理解都有誤,進出點是在CDP值且過高點或低點,不會在隔天進出唷

    回覆刪除
  18. 我已經懂了~感謝TSTS星人!
    沒想到TS功能遠比我想像的強大阿~^^

    回覆刪除
  19. ts大不好意思,小弟試ts新手,請較您一下
    1.Close > Highest(high,LengthL)[1]理面[1]是什
    麼意思呢?

    2.請問ts大的當沖策略進出點會考慮前天的k棒嗎?為什麼我
    的跑出來會考慮前天的呢?比如今天跳空開高~他就判斷買
    進~這樣不是很怪嗎?應該是以當天的k線唯依據吧?
    有請ts大不吝為小弟姐答呢~謝謝

    回覆刪除
  20. 我附的程式碼,完全是以當天為依據唷。

    回覆刪除
  21. "提到...
    指標是中性的,順勢逆勢都是人加上去的。盤整盤的用法我可能不大會,我對盤整盤不大行" 請問T大 台股像我門這種程式單越來越多 也越來越沒趨勢 也許不用多久 台股就會變成向美股一樣的難TRADE 一樣的沒趨勢 您的應變是什麼 想要發展盤整策略 OR 在沒有趨勢的盤(類似美股) 去尋找不多見的趨勢 請T大指導指導 W.N.

    回覆刪除
  22. to W.N:
    要找出有趨勢的東西,不光是期貨,股票也可以,就是要不斷的找不斷的找,而不是不斷的去開發程式。

    回覆刪除
  23. TS大 很驚訝這是你的答案 不過從ㄧ個高手口中說出來 必定有他的意義 謝謝TS大 W.N.

    回覆刪除
  24. TS大您好
    可否請您用中文字面解釋
    這套CDP當沖進階程式
    買進.賣出.空進.空出.的四個條件式
    以供參考學習
    謝謝

    回覆刪除
  25. to:以利亞
    請參看當沖懶人包一文,解說滿詳細了

    回覆刪除
  26. 星人大您好
    小弟是程式交易初學者
    請問您這隻程式的進出點(觸價進出)
    在進出場時應該要用哪種委託單才對呢?
    IOC, FOK, ROD?

    不好意思這麼初階的問題還麻煩您,感謝感謝~

    回覆刪除
  27. 期交所沒有觸價進出的單子,可以訊號出來後,下市價或限價單

    回覆刪除