public static MarketDataSet GetBaseMarketData(StrategyBaseInput input) { List<MarketData> l = new List<MarketData>(); MarketData mdKospiFuture = LoadDataAndAddToList("KM1 R:00_0_R Index", input.StartDate, input.EndDate, l); MarketData mdBond = LoadDataAndAddToList("KE1 R:00_0_R Comdty", input.ReadStartDate, input.EndDate, l); MarketData mdDollar = LoadDataAndAddToList("KU1 R:00_0_R Curncy", input.ReadStartDate, input.EndDate, l); MarketData mdKrxCreditDepositRate = LoadDataAndAddToList("KrxCreditDepositRate", input.ReadStartDate, input.EndDate, l); MarketData mdUsdKrwCurncy = LoadDataAndAddToList("USDKRW Curncy", input.ReadStartDate, input.EndDate, l); MarketData mdBokRate = LoadDataAndAddToList("KORP7D Index", input.ReadStartDate, input.EndDate, l); MarketData mdKospiIndex = LoadDataAndAddToList("KOSPI Index", input.ReadStartDate, input.EndDate, l); MarketData mdKtbSpotRate = LoadDataAndAddToList("KWNDF3 CMPN CURNCY", input.ReadStartDate, input.EndDate, l); List<MarketData> alignedData = DataUtil.FillByPivotData(mdKospiFuture, l); Boolean arranged = DataUtil.IsArrangedDateAndIndex(alignedData); Trace.Assert(arranged); //Set data MarketDataSet data = new MarketDataSet(); data.Add(MarketDataSetKey.KospiFuture, alignedData[0]); data.Add(MarketDataSetKey.KtbFuture, alignedData[1]); data.Add(MarketDataSetKey.DollarFuture, alignedData[2]); data.Add(MarketDataSetKey.KrxCreditDepositRate, alignedData[3]); data.Add(MarketDataSetKey.DollarSpot, alignedData[4]); data.Add(MarketDataSetKey.BokRate, alignedData[5]); data.Add(MarketDataSetKey.KospiSpot, alignedData[6]); data.Add(MarketDataSetKey.KtbSpot, alignedData[7]); data.RegisterPivotData(alignedData[0]); return data; }
public DefaultStrategy(String strategyName, StrategyBaseInput input) { this.StrategyName = strategyName; this.Input = input; this._allocBase = new StaticAlloc(); this._opSet = new OperationSet(); this._adjustment = new DummyAdjustment(); }
void RunTemp_OptimizerType() { StrategyBaseInput input = new StrategyBaseInput(); input.ReadStartDate = new DateTime(1990, 1, 1); input.StartDate = new DateTime(2001, 1, 1); input.EndDate = new DateTime(2011, 5, 1); input.EndDate = DateTime.Now; input.InitInvestAmount = 1000000000; GeneralOptimizer strategy = new GeneralOptimizer("", input); strategy.Build(); for (int i = 0; i < 20; ++i) { double weight = 0.5 + 0.1 * i; //KrxCreditDepositRateAdjustment cdAdj2 = new KrxCreditDepositRateAdjustment(new CreditPolicyWithUpDownMA(weight)); //strategy.AddAdjustment(cdAdj2, String.Format("({0:n2})", weight)); //MaeBokRateAdj adj = new MaeBokRateAdj(new BokRatePolicy_Static(), weight); ExcelAdj adj = new ExcelAdj("data\\LinMacEquityAdj.xlsx", "Sheet1", weight); strategy.AddAdjustment(adj, String.Format("ExcelAdj ({0:n2})", weight)); } List<IResultHandler> resultHandlers = new List<IResultHandler>(); //resultHandlers.Add(new CsvOutHandler()); resultHandlers.Add(this); Experiment experiment = new Experiment(strategy, resultHandlers); experiment.Run(); }
void RunTemp() { StrategyBaseInput input = new StrategyBaseInput(); input.StartDate = new DateTime(2001, 1, 1); input.EndDate = new DateTime(2011, 5, 1); //input.EndDate = DateTime.Now; input.InitInvestAmount = (long)100 * 100000000; DefaultStrategy strategy = new DefaultStrategy("", input); strategy.SetBaseAlloc(new StaticAlloc(0.33, 0.33, 0.34)); strategy.Build(); DollarPriceAdj dollarPriceAdj = new DollarPriceAdj(0.9); KrxCreditDepositRateAdjustment cdAdj = new KrxCreditDepositRateAdjustment(new CreditPolicyWithMA(1.5)); KrxCreditDepositRateAdjustment cdAdj2 = new KrxCreditDepositRateAdjustment(new CreditPolicyWithUpDownMA(1.5)); MaeKoVolAdj maeAdj = new MaeKoVolAdj(1.2); MaeBokRateAdj maeBokRateAdj = new MaeBokRateAdj(new BokRatePolicy_Static(), 1.0); MacroAA_Adj macroAA_Adj = new MacroAA_Adj(); ExcelAdj excelAdj = new ExcelAdj("data\\LinMacEquityAdj.xlsx", "Sheet1", 0.8); //ExcelAdj excelAdj = new ExcelAdj("LinMacEquityAdj.xlsx", "LinMacEquityAdj_result"); //strategy.AddAdjustment(dollarPriceAdj, "DP"); ////strategy.AddAdjustment(cdAdj, "CD1"); strategy.AddAdjustment(cdAdj2, "CD2"); strategy.AddAdjustment(maeAdj, "MaeKoVol"); strategy.AddAdjustment(maeBokRateAdj, "MaeBokRate"); strategy.AddAdjustment(macroAA_Adj, "MacroAA"); strategy.AddAdjustment(excelAdj, "LinMacEquityAdj"); List<IResultHandler> resultHandlers = new List<IResultHandler>(); //resultHandlers.Add(new CsvOutHandler()); resultHandlers.Add(this); Experiment experiment = new Experiment(strategy, resultHandlers); experiment.Run(); }
void RunStaticAllocOptimizerExperiment() { StrategyBaseInput input = new StrategyBaseInput(); input.StartDate = new DateTime(2001, 1, 1); input.EndDate = DateTime.Now; input.InitInvestAmount = 1000000000; IStrategy strategy = new StaticAllocOptimizer("StaticAllocOptimizer", input); strategy.Build(); List<IResultHandler> resultHandlers = new List<IResultHandler>(); //resultHandlers.Add(new CsvOutHandler()); resultHandlers.Add(this); Experiment experiment = new Experiment(strategy, resultHandlers); experiment.Run(); }
void RunKrxCreditDepositRateOptimizerExperiment() { StrategyBaseInput input = new StrategyBaseInput(); //input.StartDate = new DateTime(2001, 1, 1); input.StartDate = new DateTime(2006, 1, 1); input.EndDate = new DateTime(2011, 5, 1); input.EndDate = DateTime.Now; input.InitInvestAmount = 1000000000; GeneralOptimizer strategy = new GeneralOptimizer("KrxCreditDepositRateOptimizer", input); strategy.Build(); for (int i = 0; i < 20; ++i) { double weight = 0.5 + 0.1 * (double)i; strategy.AddAdjustment(new KrxCreditDepositRateAdjustment(new CreditPolicyStatic(weight)), String.Format("Static ({0:n2})", weight)); strategy.AddAdjustment(new KrxCreditDepositRateAdjustment(new CreditPolicyWithMA(weight)), String.Format("MA ({0:n2})", weight)); } List<IResultHandler> resultHandlers = new List<IResultHandler>(); //resultHandlers.Add(new CsvOutHandler()); resultHandlers.Add(this); Experiment experiment = new Experiment(strategy, resultHandlers); experiment.Run(); }
void RunDollarPriceAdjExperiment() { StrategyBaseInput input = new StrategyBaseInput(); input.StartDate = new DateTime(2001, 1, 1); //input.StartDate = new DateTime(2006, 1, 1); input.EndDate = new DateTime(2011, 5, 1); input.EndDate = DateTime.Now; input.InitInvestAmount = 1000000000; GeneralOptimizer strategy = new GeneralOptimizer("DollarPriceOptimizer", input); strategy.Build(); for (int i = 0; i < 20; ++i) { double weight = 0.5 + 0.1 * (double)i; //double weight = i; strategy.AddAdjustment(new DollarPriceAdj(weight), String.Format("{0:n2}", weight)); } List<IResultHandler> resultHandlers = new List<IResultHandler>(); //resultHandlers.Add(new CsvOutHandler()); resultHandlers.Add(this); Experiment experiment = new Experiment(strategy, resultHandlers); experiment.Run(); }
public GeneralOptimizer(String strategyName, StrategyBaseInput input) { this.StrategyName = strategyName; this.Input = input; }
public StaticAllocOptimizer(String strategyName, StrategyBaseInput input) { this.StrategyName = strategyName; this.Input = input; }
public ExperimentData(StrategyBaseInput input) { this.BaseInput = input; }