14# 大泡泡
又学了一招, 谢谢! 看到版主给钻了,就不能在懒了, 加了些option. 现在可以自己选EMA和MA的period, 以及计算return的方法: "0" - Arithmatic Return; "1" - Expressing geometric relative return.
//------------------------------------------------------------------------------
//
// Formula Name: Sector Tracking
//
// Tracks normalized sector performance
// Performance is tracked by a 13 day exp moving average
// and finally the sum of 9 days to smooth out the data.
//
// CAUTION: You may need to edit the symbol for SP 500 index if different
// for your data source
//------------------------------------------------------------------------------
// Plot the 13 week EMA of incremental differences
// This is useful for finding strengthening sectors / industries
// Normalize data
/*
Backtest performance by selectig top sector to buy
Buy when rel performance above 0 and slope maximum
Sell when slope decreass relative to another sector
Always be in the market
*/
//Title = "Sectors: Energy(BrightBlue)-Tech(White)-Finance(Red)-Materials(BrightGreen)-Health(Yellow)-Utility(Pink)-Gold(DSS)-Purple(Staples)-Brick(Industry)-DarkGreen(HomeBuilding)-Grey(Retail)";
SetChartOptions(0, chartShowDates);
EMA_Period = Param("EMA Period", 13, 1, 50);
MA_Period = Param("MA Period", 9, 1, 20);
Method = Param("Return Calculation Method", 0, 0, 1);
// "0" - Arithmatic Return; "1" - Expressing geometric relative return;
Energy = Foreign("XLE","Close",fixup=1);
Tech = Foreign("XLK","Close",fixup=1);
Finance = Foreign("XLF","Close",fixup=1);
Materials = Foreign("XLB","Close",fixup=1);
Health = Foreign("XLV","Close",fixup=1);
Utility = Foreign("XLU","Close",fixup=1);
ConsumerDSS = Foreign("XLY","Close",fixup=1);
Industry = Foreign("XLI","Close",fixup=1);
ConsumerStaples = Foreign("XLP","Close",fixup=1);
HomeBuilding = Foreign("XHB","Close",fixup=1);
Retail = Foreign("XRT","Close",fixup=1);
SP500 = Foreign("^GSPC","close");
Energy_Perf = EMA(ROC(Energy,1), EMA_Period);
Tech_Perf = EMA(ROC(Tech,1), EMA_Period);
Finance_Perf = EMA(ROC(Finance,1), EMA_Period);
Materials_Perf = EMA(ROC(Materials,1),EMA_Period);
Health_Perf = EMA(ROC(Health,1),EMA_Period);
Utility_Perf = EMA(ROC(Utility,1),EMA_Period);
ConsumerDSS_Perf = EMA(ROC(ConsumerDSS,1),EMA_Period);
Industry_Perf = EMA(ROC(Industry,1),EMA_Period);
ConsumerStaples_Perf = EMA(ROC(ConsumerStaples,1),EMA_Period);
HomeBuilding_Perf = EMA(ROC(HomeBuilding,1),EMA_Period);
Retail_Perf = EMA(ROC(Retail,1),EMA_Period);
SP500_Perf = EMA(ROC(SP500,1),EMA_Period);
SP500_ref = MA(SP500_Perf,MA_Period);
if (Method == 0)
{Energy_Sum = MA(Energy_Perf,MA_Period)- SP500_ref;
Tech_Sum = MA(Tech_Perf,MA_Period) - SP500_ref;
Finance_Sum = MA(Finance_Perf,MA_Period) - SP500_ref;
Materials_Sum = MA(Materials_Perf,MA_Period) - SP500_ref;
Health_Sum = MA(Health_Perf,MA_Period) - SP500_ref;
Utility_Sum = MA(Utility_Perf,MA_Period) - SP500_ref;
ConsumerDSS_Sum = MA(ConsumerDSS_Perf,MA_Period) - SP500_ref;
ConsumerStaples_Sum = MA(ConsumerStaples_Perf,MA_Period) - SP500_ref;
Industry_Sum = MA(Industry_Perf,MA_Period) - SP500_ref;
HomeBuilding_Sum = MA(HomeBuilding_Perf,MA_Period) - SP500_ref;
Retail_Sum = MA(Retail_Perf,MA_Period) - SP500_ref;}
else
{Energy_Sum = (1 + MA(Energy_Perf,MA_Period))/(1 + SP500_ref)-1;
Tech_Sum = (1 + MA(Tech_Perf,MA_Period))/(1 + SP500_ref)-1;
Finance_Sum = (1 + MA(Finance_Perf,MA_Period))/(1 + SP500_ref)-1;
Materials_Sum = (1 + MA(Materials_Perf,MA_Period))/(1 + SP500_ref)-1;
Health_Sum = (1 + MA(Health_Perf,MA_Period))/(1 + SP500_ref)-1;
Utility_Sum = (1 + MA(Utility_Perf,MA_Period))/(1 + SP500_ref)-1;
ConsumerDSS_Sum = (1 + MA(ConsumerDSS_Perf,MA_Period))/(1 + SP500_ref)-1;
ConsumerStaples_Sum = (1 + MA(ConsumerStaples_Perf,MA_Period))/(1 + SP500_ref)-1;
Industry_Sum = (1 + MA(Industry_Perf,MA_Period))/(1 + SP500_ref)-1;
HomeBuilding_Sum = (1 + MA(HomeBuilding_Perf,MA_Period))/(1 + SP500_ref)-1;
Retail_Sum = (1 + MA(Retail_Perf,MA_Period))/(1 + SP500_ref)-1;}
Plot(Energy_Sum, "Energy", 10,4);
Plot(Tech_Sum, "Tech", 2,4);
Plot(Finance_Sum, "Finance", 4,4);
Plot(Materials_Sum, "Materials", 5,4);
Plot(Health_Sum, "Health", 7,4);
Plot(Utility_Sum, "Utility", 11,4);
Plot(ConsumerDSS_Sum, "DSS", 9,4);
Plot(ConsumerStaples_Sum, "Staples", 12,4);
Plot(Industry_Sum, "Industry", 15,4);
Plot(HomeBuilding_Sum, "HomeBuilding", 19,4);
Plot(Retail_Sum, "Retail", 39,4);
Plot(0,"",colorWhite,4); |