2014年1月22日 星期三

外資成本預估 - Excel 樞紐分析表(3) [程式碼]

EasyTrader ArtNo 103
舊文 從外資持倉成本談交易策略提到了當外資持倉成本與期貨之間的差異可以作為策略元素的參考,那麼外資成本可以從那兒估算呢 ? 如果讀者有注意每日期交所下載的資料內容有契約金額的資料,透過公式的計算可以約略估算外資手中籌碼的成本,下表是我們練習作樞紐分析表所得到的近一個月資料!接下來要加入幾個公式


公式內容如下表



依下圖1、2、3方式加入欄位名稱及公式



再將所建立的新欄位依需求加入配置




紅框框內容就是我們所估算的外資成本與多空成本差距,同樣的我們可以將計算的成本利用新商品建立方式作為策略的參考元素或指標

指標程式碼(利用外資成本為中心 加上 n 倍 ATR 作成上下通道指標 -如下圖)


input:Up1(4),Up2(2),Dn1(4),Dn2(2) ;
vars:cdp(0),ah(0),nh(0),nl(0),al(0);

if date<>date[1] then begin
   Value1 = Close of Data3 ;
   Value2 = Close of Data4 ;
   cdp = (Value1+Value2)/2;
   Value3 = Average(TrueRange,3) ;
   {Value3 = Volatility(3) ;}

   ah = cdp + Value3 * Up1;
   nh = cdp + Value3 * Up2;
   nl = cdp - Value3 * Dn2;
   al = cdp - Value3 * Dn1;
end ;

plot1(ah,"ah") ;
plot2(nh,"nh") ;
plot3(nl,"nl");
plot4(al,"al");

策略程式碼
input:Tradestoploss(0.035),TimeEntry(905),TimeExit(1255),TimeFlat(1335),tradeprofit(0.03),HLrange(21),RangeBar(5);
vars:cdp(0),ah(0),nh(0),nl(0),al(0),HL(0);
vars: MP(0),IsBalanceDay(false),PF(0),PL(0),DayHigh(99999),DayLow(0) ;

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

if date<>date[1] then begin

   { ******** for QFII ***********}
   input:Up1(4),Up2(2),Dn1(4),Dn2(2),BarLen(3) ;
   Vars:OI_data1(0),OI_data2(0) ;

   { Data3 多單留倉成本 data4 空單留倉成本 }

   OI_data1 = Close of Data3 ;
   OI_data2 = Close of Data4 ;
   cdp = (OI_data1+OI_data2)/2;
   Value3 = AvgTrueRange(BarLen) ;

   ah = cdp + Value3 * Up1;
   nh = cdp + Value3 * Up2;
   nl = cdp - Value3 * Dn2;
   al = cdp - Value3 * Dn1;

  {******************************}
end ;

PF = AvgPrice*TradeProfit ;
PL = AvgPrice*TradeStopLoss ;
if DataCompression {BarType} < 2 then Begin
   if Close > OpenD(0) and OpenD(0) > CloseD(1) then Condition98 = true
      else if Close < OpenD(0) and OpenD(0) < CloseD(1) then Condition98 = false;
end else if DataCompression {BarType} >= 2 then
   if Close > Open and Open > Close[1] then Condition98 = true
       else if Close < Open and Open < Close[1] then Condition98 = false ;

   if time > TimeEntry and time < TimeExit and Highest(Close,RangeBar)-Lowest(Close,RangeBar) >        HLRange then Begin

     if Condition98 {and High > DayHigh} and Close - Cdp > Up1 then Buy next bar at nh stop ;
     if Condition98 = false {and Low < DayLow} and Close - Cdp < Dn1 then Sell next bar at nl stop ;
end;

SetProfitTarget(PF*BigPointValue) ;
setstoploss(PL*BigPointValue) ;

if IsBalanceDay then SetExitonClose ;

基本設定 台指期 5分K 留倉 回測週期 2010/2/22 ~2013/12/31 交易成本 1200



調整為新濾網後,改善如下圖



公式內容的多空交易價指的是當日市場的外資成交的價格預估,也就是在市場中的買賣的力道,讀者也可以拿來作策略元素的參考喔!
MagicQS029

沒有留言:

張貼留言