2013年11月15日 星期五

Larry Williams 短線交易秘訣 (程式碼)

EasyTrader ArtNo 051
拉瑞·威廉姆斯是威廉指標(W&R)的創始人,當今美國著名的期貨交易員、作家、專欄編輯和資產管理經紀。他是羅賓斯杯期貨交易冠軍賽的總冠軍。在不到十二個月的時間裏使1萬美金變成了110萬美金。他就職於美國國家期貨協會理事會,並曾在蒙大拿州兩次競選國會議員。在過去的25年裏,他是始終被公眾追隨的優秀投資顧問之一,曾多次被《巴倫斯》雜誌、《華爾街日報》、《福布斯》雜誌和《財富》雜誌專訪過。著有《短線交易秘訣》一書。

本策略為其另一種價格波動策略(開盤價+ 前三日最大波動區間的百分比)

原文的邏輯比較為:
1.當日低點與前三日高點價差(動能)
2.前一日高點與三日前低點價差 ,兩者取其大作為波動範圍的參考,再乘上一百分比加上隔日開盤價就成為買賣訊號上下通道

{原作為日線交易 ,改為 15分/30分/60分K 留倉 ,來回成本 1200 ,回測期間 2001~2013/10/31}
{15min K}
inputs: LongEntryR(1.2),LongExitR(1.3),ShortEntryR(0.6),ShortExitR(0.3),HLRange(100) ;

{30min K}
{inputs: LongEntryR(1.2),LongExitR(1.3),ShortEntryR(0.6),ShortExitR(0.3),HLRange(70) ;}

{60min K}
{inputs: LongEntryR(1.2),LongExitR(1.3),ShortEntryR(0.6),ShortExitR(0.3),HLRange(70) ;}

Vars: VE(0),MP(0),isBalanceDay(false);

MP = MarketPosition ;

if DAYofMonth(Date) > 14 and DAYofMonth(Date) < 22 and DAYofWeek(Date)= 3 then isBalanceDay = True else isBalanceDay =False ;

if date <> date[1] then Begin
   if DataCompression > 1 then Begin
      Value1 = AbsValue(High[4]-Low[1]) ;
      Value2 = AbsValue(High[2]-Low[4]) ;
   end else Begin
      Value1 = AbsValue(HighD(4)-LowD(1)) ;
      Value2 = AbsValue(HighD(2)-LowD(4)) ;
   end;
end;

VE = MaxList(Value1,Value2) ;

if VE >= HLRange and VE < 240 then Begin
   {if Open + VE*LongEntryR > MinList(HighW(1),HighW(0)) then}
   Buy at Open + VE*LongEntryR stop ;

  {exitlong} 
   Sell at Open - VE*LongExitR stop ;

   {if Open -VE*ShortEntryR < MaxList(LowW(1),LowW(0)) then} 
   Sell at Open-VE*ShortEntryR stop ;

   {exitshort}
   Buy at Open + VE*ShortExitR stop;
end;

if IsBalanceDay then SetExitonClose ;






果然是高手交易員,簡單的策略經得起長期考驗,重點是在這本書裡看到他作非常多的觀察與研究,這是值得我們學習的地方,後續針對書中內容可以轉成策略部份再與讀者分享

MagicQS014

7 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 請教,Buy at Open + VE*LongEntryR stop<=是不是要改成 buy at open of next bar+VE*LongEntryR stop才對ㄚ???

    回覆刪除
  3. 這個跟平均振幅文章的寫法是不同
    Buy at Open + VE*LongEntryR stop (這根 K棒 Open Price )
    buy at open of next bar+VE*LongEntryR stop (下一根 K棒 Open price)

    回覆刪除
  4. 請問 Buy at Open + VE*LongEntryR stop 在mc中會編譯錯誤
    是不是要改成Buy next bar at Open + VE*LongEntryR stop

    回覆刪除
  5. 簡單卻可以經得起長期考驗的策略 真棒

    回覆刪除