黃唯碩 濁酒 期億 羅威 stockliao 大帥哥 jaway 皮皮pipi12157 洋神 麥門 大帆 白茶 林梵心 御風一朗 Almany 一氣化900
聚財網 wearn.com 首頁
 
 查閱主題:指標:績效創新高後拉回的提示 短網址
[閱文紀錄]3683 次讀取 本主題只有一頁
曾永政:指標:績效創新高後拉回的提示   將本主題只顯示我的回覆 僅顯示作者   將本主題加入我的收藏 加入收藏 解除分類鎖定 加黑名單

 聲望:4.4萬
 個人著作


請  
收通知

  發表時間  發送悄悄話 傳悄悄話  引用 引用回覆  檢舉主題 檢舉 
原創
0

昨天分享的「績效曲線指標化:新高新低標示」的程式碼是 HTS 中 STS 的,而現在的這一篇是基於相同的原理再加以變化,不過這是 MultiCharts 的:把已平倉權益的資料拿來記錄,當平倉權益創新高之後,平倉權益拉回多少程度之後...做個提醒的標示。做什麼用?不管你要要用來給自己提醒從績效創新高後回吐了多少績效當做一個部位提高的時機,或是策略可能有失效風險的警告,就隨你了。

指標的程式碼如下:
Vars:PositionExtend(200000);
Vars:NT(1),NewHigh(False),Equity(0),EquOpen(0),EquityHigh(0),EquityTrailing(0);

Equity= i_ClosedEquity;
EquOpen= i_OpenEquity;
EquityHigh= iff(Equity>=EquityHigh,Equity,EquityHigh);
EquityTrailing= EquityHigh-Equity;
PositionExtend= StdDev(Equity,66*300/Barinterval);

if Equity>=EquityHigh then NewHigh= True;

if NewHigh and EquityTrailing>PositionExtend then begin
 NT=NT+1;
 NewHigh= False;
end;

Value1= iff(NT<>NT[1],RGB(255,0,0),RGB(255,255,255));
Value2= iff(NT<>NT[1],15,3);

if NT<>NT[1] then
 plot1(EquOpen,"Extend",Value1,default,Value2);

plot2(EquOpen,"PositionExtend");


在以上的這一個指標中,我以計算66天內每一根的平倉損益的標準差當做創新高後拉回幅度的門檻(藍字部分),至於你自己想用固定的金額、一段期間的平均什麼的,或是其他什麼數值就各人自己的巧心巧思了。我自己是想做一個績效創新高後拉回的部位水準提高時機的提示。這個指標的效果畫面如下:
另開

至於這樣的程式碼可否引用回"買賣訊號"內,讓下單口數的部位提高或者是調降成為策略的一部分,目前...我思考上感覺會有問題,因為口數的提昇或是減少直接會影響後續損益的權益變化金額,這會回頭影響上面計算"拉回程度"的數值,所以∼我現在沒有這樣做。我自己是很想讓部位的提高或是降低也自動化啦。

   
0
程式交易小學堂:http://www.facebook.com/trading.yct



在這刊登您的廣告


 
期指預測哥
 聲望:1140
 個人著作

  回覆時間 2011/10/02 09:56:35 發送悄悄話 傳悄悄話  回覆並引用原文 引用回覆  檢舉回覆 檢舉

個人經驗~績效降低是一定會減碼部位~績效創新高則不具參考~我是採用總績效獲利到某程度才將多餘盈餘拿出來做增加部位使用~一旦不進步就又退回原來位置~所以知道個人部位的極限差不多就那樣




優雅平衡
 聲望:2088
 個人著作

  回覆時間 2011/10/02 12:21:07 發送悄悄話 傳悄悄話  回覆並引用原文 引用回覆  檢舉回覆 檢舉

如果想對Equity Curve 本身做交易,為了避免交易指令影響到Curve本身
,幾種績效模擬方法參考看看

1. 把Net Profit每日淨值Dump出來變成一個ASCII文字檔,做為一個新的標的再次匯入
到QuoteServer,當作新的時間序列來用,如此對此曲線Buy and hold就代表不干涉,
Buy 1 contracts就是進場,Sell就是暫停,buy 2 contracts 變成兩倍錢加碼,以此類推

2. 直接在 Signal 當中,自己維護和模擬運算一個 Equity Curve,然後根據該Curve
  去算。

如果程式邏輯不複雜,可以考慮2,而1是通用的做法,只是繁瑣一點。

警 語 : 本文僅作為私人日誌紀錄,不得做為投資依據,作者對內容之正確性不做任何擔保

順勢而為,該停利就收手,該停損不要猶豫,獨立批判性思考,能常保盈泰,版主看錯是正常,看對是矇到,真正高手是在螢幕前微笑的人




曾永政
 聲望:4.4萬
 個人著作

  回覆時間 2011/10/02 16:00:17 發送悄悄話 傳悄悄話  回覆並引用原文 引用回覆  檢舉回覆 檢舉

似乎也沒有想像中的難,如果是單口交易的話會容易一點,口數動態的策略比較難。

創新高後拉回500點就加1口或是多加1單位,這個方式應該可以支援原本是單口交易或是口數動態,但是還原成以單口交易做計算的:
Vars:Extend(-500);
Vars:Equity(0),EquityHigh(0),LastSize(0),ProfitSum(0),HighReturn(0),NewHigh(False);


Equity= i_ClosedEquity;
LastSize= iff(currentcontracts=0, 1, currentcontracts);
EquityHigh= iff(Equity>=EquityHigh, Equity, EquityHigh);

if Equity<>Equity[1] then
ProfitSum= ((Equity-Equity[1])/pointvalue)/LastSize[1] ;

if Equity>=EquityHigh then begin
 NewHigh= True;
 HighReturn=0;
end ;

if NewHigh and Equity<>Equity[1] then
 HighReturn= HighReturn + ProfitSum ;

if NewHigh and HighReturn < Extend then begin
 ExtendTimes= ExtendTimes+1;
 NewHigh= False;
end;

//N=N*ExtendTimes
//Buy/SellShort N share next bar ....

程式交易小學堂:http://www.facebook.com/trading.yct



本主題只有一頁。
作者上一篇主題作者上一篇 作者下一篇作者下一篇主題

回上一頁回上一頁

回頁頂 回頁頂

短網址

聚財資訊股份有限公司 版權所有© wearn.com All Rights Reserved. TEL:02-82287755 客服時間:台北週一至週五9:00~12:00、13:00~18:00 [ 網站信箱 ]