| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1235 人关注过本帖
标题:【泡泡的project说明书】
只看楼主 加入收藏
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
结帖率:100%
收藏
 问题点数:0 回复次数:29 
【泡泡的project说明书】
周六就说了自己要写project的说明书啦,不过一直没有动笔。我懒了,今天还在寝室做干煸肉吃。我都把我的头像换成我炒的肉了。哈哈。我现在就开始写吧。。不过说不定没办法一次性写完。估计又只有续集了。见谅啊!

title:分级基金套利模拟模型
一、背景概述
    在基金(fund)中,分级基金是一种开放式基金(openend fund),又被称为机构式基金。它的主要特点是将基金产品分为两类份额,并分别给予不同的收益分配。从目前已经成立和正在发行的分级基金来看,通过“申购”购买和“赎回”卖出的母基金(motherfund),以及在证券交易所直接买卖的分为低风险收益端(约定收益份额)子基金A(umbrellafund)和高风险收益端(杠杆份额)子基金B(umbrellafund)两类份额。理论上来说,母基金的净值应该等于子基金净值的加权平均。例如。母基金净值(netvalue)为1元/份,子基金按照1:1拆分,子基金净值(netvalue)为a元/份和b元/份,则a+b=2*1。
    注:所谓净值,可以理解为此基金结构中所有投资产品实时价格的加权平均。

二、模型理论基础
    1.由于子基金可以在证券交易所交易,故除了净值以外,还有着交易价格,及股价(stockprice)。若市场是无套利的,则子基金的股价和净值应该相等,但实际情况下,子基金的股价和净值会有很大的偏离,所以理论上,在两只子基金以1:1的比例拆分时,若母基金的净值小于两只子基金的股价之和,则可以申购母基金,再将其拆分成两个子基金并在交易所市场抛售出,获利(stockprice of A+stockprice of B -netvalue of motherfund*2)。当母基金的净值大于两只子基金的股价之和时,则可以买两只子基金,再将其合并并赎回,获利(netvalue of motherfund*2-stockprice of A-stockprice of B)。
    2.以上为理论情况,在实际中,在T日申购基金,T+3日才可以赎回。在交易所T日购买基金,T+1日才能卖出基金。以上两个获得必须通过预测模拟为
(stockprice of A+stockprice of B -预测T+3时netvalue of motherfund*2)
(netvalue of motherfund*2-预测T+1时stockprice of A-预测T+1时stockprice of B)
  
    3.另外,我国基金申购手续费率(Purchase rate)Pr=1.5%赎回手续费率(Redemption rate)Rr=0.5%;股票交易佣金(brokerage charges)  Br=0.05%。
    则获利修正为
(stockprice of A*(1-Br)+stockprice of B*(1-Br) -预测T+3时netvalue of motherfund*2*(1-Pr)
(netvalue of motherfund*2*(1-Rr)-预测T+1时stockprice of A*(1-Br)-预测T+1时stockprice of B*(1-Br))
    4.此模型使用蒙特卡洛方法来模拟未来的股价。这里不再解释此方法的原理。(在模型程序中将直接调用。)


搜索更多相关主题的帖子: 收益 title color 基金 
2012-11-25 16:47
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
由于某些原因,我不能在交以前帖它了

[ 本帖最后由 xixifans 于 2012-11-26 00:39 编辑 ]

看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 16:53
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
2.蒙特卡洛模拟程序。包括四个文件MCmodel1.h和MCmodel1.cpp(用来模拟T+1的股价stockprice)以及MCmodel2.h和MCmodel2.cpp(用来模拟T+3的母基金净值netvalue)。方便起见。这里只贴出.cpp文件中的MCmodel1.cpp。
程序代码:
/*考虑到在实际中的套利,基金在申购后需要在T+2才可以卖出,
故我们考虑在模型中使用蒙特卡洛方法来模拟三天后的基金价格,
并以此作为套利的依据*/

//this CPP用来模拟stockprice

#include "MCmodel1.h"
#include <cmath>
#include "fund.h"

// the basic math functions should be in namespace std but aren't in VCPP6
#if !defined(_MSC_VER)
using namespace std;
#endif


//此处定义生成随机数的方法
double GetOneGaussianBySummation()
{
    double result=0;

    for (unsigned long j=0; j < 12; j++)
        result += rand()/static_cast<double>(RAND_MAX);

    result -= 6.0;

    return result;

}


double GetOneGaussianByBoxMuller()
{
    double result;

    double x;
    double y;

    double sizeSquared;
    do
    {
        x = 2.0*rand()/static_cast<double>(RAND_MAX)-1;
        y = 2.0*rand()/static_cast<double>(RAND_MAX)-1;
        sizeSquared = x*x + y*y;
    }
    while
        ( sizeSquared >= 1.0);

    result = x*sqrt(-2*log(sizeSquared)/sizeSquared);

    return result;

}

//以下为蒙特卡洛方法的函数定义
double MonteCarlo_s(const fund& thefund,
                         double Expiry, 
                         double Vol,
                         double r,
                         unsigned long NumberOfPaths)
{//首先从fund的派生来获得其现价
    double present_price=thefund.get_stockprice();


    double variance = Vol*Vol*Expiry;
    double rootVariance = sqrt(variance);
    double itoCorrection = -0.5*variance;

    double movedSpot = present_price*exp(r*Expiry +itoCorrection);
    double thisfutureprice;
    double runningSum=0;

    for (unsigned long i=0; i < NumberOfPaths; i++)
    {
        double thisGaussian = GetOneGaussianByBoxMuller();
        thisfutureprice = movedSpot*exp( rootVariance*thisGaussian);
        runningSum += thisfutureprice;
    }

    double mean = runningSum / NumberOfPaths;
    mean *= exp(-r*Expiry);
        double future_price= mean;
    return future_price;
}



看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 16:59
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
同上

[ 本帖最后由 xixifans 于 2012-11-26 00:39 编辑 ]

看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 17:08
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
同上

[ 本帖最后由 xixifans 于 2012-11-26 00:40 编辑 ]

看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 17:11
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
本来想贴一个运行窗口图的,可惜不知道怎么粘上图来。

最后说一句:版权所有,翻冒必究!!!

看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 17:15
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
同上

[ 本帖最后由 xixifans 于 2012-11-26 00:41 编辑 ]

看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 17:33
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
最后德赛一下吧。。我done了!恩。。我要闭嘴了。。不然要被删号。。。

看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 17:39
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
蒙特卡罗 神马的 有没有公式啊 看代码好迷糊啊

顺便膜拜大作 我也想学C++了 可惜我这个gcc编译C++咋有问题啊。。
2012-11-25 17:41
xixifans
Rank: 1
等 级:新手上路
帖 子:118
专家分:2
注 册:2012-11-15
收藏
得分:0 
回复 9楼 zklhp
谢谢。。。抬举我了~你的编译不了?我的可以哎~~~不知道神马问题。。其实我不知道GCC是什么。。

看那没有形象的发型和憔悴的脸就知道这是一只和C++恋爱的宅女。yes,I am!
2012-11-25 17:59
快速回复:【泡泡的project说明书】
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017443 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved