由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Stock版 - 这里的博士,博士后最好还是先研究一下
相关主题
股版的2008 vs 2010 vs 2015巴菲特抢deal真是一流
死皮下面的三个目标: 1890, 1860 and 1830预测明天大盘
imagination 要被中资收购都走到今天这个位置了,看情况再决定吧
说说期权(2)ZZ 你有去华尔街的资格么-Morgan Stanley面试-转自人人 (转载)
Mitbbs2020看过来在裂变过程中有大量能量释放出来
学习请教金融知识请问,option 价钱是怎么定的?
酒馆,服,还是不服啊?:IWM 逼近62,9月61扑逼近2.0哪里有option 算法的公式?
关于Options的问题关于股神:给不熟悉统计的朋友谈谈binomial distribution
相关话题的讨论汇总
话题: double话题: param话题: return话题: private话题: timestep
进入Stock版参与讨论
1 (共1页)
r*****t
发帖数: 7278
1
Black-Scholes formula

binomial lattice method
再来玩option
我自己正在结合自己的操作经验 + 历史数据蒙特卡洛分析 + binomial lattice
method
生成一个超级option交易机器,貌似比较有帮助的说。
x*******i
发帖数: 1791
2
我觉得这玩艺有点用烂了。
我正在搞一个新算法。貌似可以赚大钱。
最近没空,过一阵实现一下。
s******n
发帖数: 6806
3
pro每天都在算,世界上计算次数最多的公式。
散户有用没用不清楚。

【在 r*****t 的大作中提到】
: Black-Scholes formula
: 和
: binomial lattice method
: 再来玩option
: 我自己正在结合自己的操作经验 + 历史数据蒙特卡洛分析 + binomial lattice
: method
: 生成一个超级option交易机器,貌似比较有帮助的说。

r*****t
发帖数: 7278
4
using System;
namespace QFramework
{
///
/// Represents a Cox-Ross-Rubenstein binomial tree option pricing
calculator. May be used for pricing European or American options
///

public class BinomialTree
{
#region "Private Members"
private double assetPrice = 0.0;
private double strike = 0.0;
private double timeStep = 0.0;
private double volatility = 0.0;
private EPutCall putCall = EPutCall.Call;

private double riskFreeRate = 0.0;
private int steps = 0;

#endregion
#region "Properties'
public double AssetPrice
{
get { return assetPrice;}
set { assetPrice = value; }
}
public double Strike
{
get { return strike; }
set { strike = value; }
}
public double TimeStep
{
get { return timeStep; }
set { timeStep = value; }
}
public double Volatility
{
get { return volatility; }
set { volatility = value; }
}
public EPutCall PutCall
{
get { return putCall; }
set{ putCall = value; }
}
public double RiskFreeRate
{
get { return riskFreeRate; }
set { riskFreeRate = value; }
}
public int Steps
{
get { return steps; }
set { steps = value; }
}
#endregion
#region "Constructors"
///
/// Empty constructor. All properties may be set.
///

public BinomialTree()
{
}
///
/// Constructor that takes all parameters used for calculatin option
value using binomial tree
///

///
///
///
///
///
///
///
///
public BinomialTree(
double assetPriceParam,
double strikeParam,
double timeStepParam,
double volatilityParam,
double riskFreeRateParam,
EPutCall putCallParam,
int stepsParam)
{
assetPrice = assetPriceParam;
strike = strikeParam;
volatility = volatilityParam;
timeStep = timeStepParam;
riskFreeRate = riskFreeRateParam;
putCall = putCallParam;
steps = stepsParam;
}
#endregion
#region "Binomial Tree"
///
/// Part of the binomial node value equation, represents the
binomial coefficient
///

///
///
///
private double BinomialCoefficient(int m, int n)
{
return Factorial(n) / (Factorial(m) * Factorial(n - m));
}
///
/// Calculates the value of an individual node in the binomial tree
///

///
///
///
///
private double BinomialNodeValue(int m, int n, double p)
{
return BinomialCoefficient(m, n) * Math.Pow(p, (double)m) * Math
.Pow(1.0 - p, (double)(n - m));
}
///
/// Returns the present value of the option
///

///
public double OptionValue()
{
double totalValue = 0.0;
double u = OptionUp(timeStep, volatility, steps);
double d = OptionDown(timeStep, volatility, steps);
double p = Probability(timeStep, volatility, steps, riskFreeRate
);
double nodeValue = 0.0;
double payoffValue= 0.0;
for (int j = 0; j <= steps; j++)
{
payoffValue = Payoff(AssetPrice * Math.Pow(u, (double)j) *
Math.Pow(d, (double)(steps - j)), strike, putCall);
nodeValue = BinomialNodeValue(j, steps, p);
totalValue += nodeValue * payoffValue;
}
return PresentValue(totalValue, riskFreeRate, timeStep);
}
#endregion
#region "Probabilities"
private double OptionUp(double t, double s, int n)
{
return Math.Exp(s * Math.Sqrt(t / n));
}
private double OptionDown(double t, double s, int n)
{
return Math.Exp(-s * Math.Sqrt(t / n));
}
private double Probability(double t, double s, int n, double r)
{
double d1 = FutureValue(1.0, r, t / n);
double d2 = OptionUp(t, s, n);
double d3 = OptionDown(t, s, n);
return (d1 - d3) / (d2 - d3);
}
#endregion

#region "Payoffs"
private double Payoff(double S, double X, EPutCall PutCall)
{
switch (PutCall)
{
case EPutCall.Call:
return Call(S, X);
case EPutCall.Put:
return Put(S, X);
default:
return 0.0;
}
}
private double Call(double S, double X)
{
return Math.Max(0.0, S - X);
}
private double Put(double S, double X)
{
return Math.Max(0.0, X - S);
}
#endregion
#region "Financial Math Utility Functions"
private double Factorial(int n)
{
double d = 1.0;
for (int j = 1; j <= n; j++)
{
d *= j;
}
return d;
}
private double FutureValue(double P, double r, double n)
{
return P * Math.Pow(1.0 + r, n);
}
private double PresentValue(double F, double r, double n)
{
return F / Math.Exp(r * n);
}
#endregion

}
}
c*****r
发帖数: 8227
5
迂腐
x*******i
发帖数: 1791
6
写的蛮不赖。你这个算法是连IB的么?
x*******i
发帖数: 1791
7
迂腐p阿,用专业武器打游击战才是正道。支持楼主。
z***n
发帖数: 789
8
hehe, open source code is free

【在 r*****t 的大作中提到】
: Black-Scholes formula
: 和
: binomial lattice method
: 再来玩option
: 我自己正在结合自己的操作经验 + 历史数据蒙特卡洛分析 + binomial lattice
: method
: 生成一个超级option交易机器,貌似比较有帮助的说。

z***n
发帖数: 789
9
I'm using QT too, hehe
daniu

【在 r*****t 的大作中提到】
: using System;
: namespace QFramework
: {
: ///
: /// Represents a Cox-Ross-Rubenstein binomial tree option pricing
: calculator. May be used for pricing European or American options
: ///

: public class BinomialTree
: {
: #region "Private Members"

r******9
发帖数: 2632
10
傻得可爱

【在 r*****t 的大作中提到】
: Black-Scholes formula
: 和
: binomial lattice method
: 再来玩option
: 我自己正在结合自己的操作经验 + 历史数据蒙特卡洛分析 + binomial lattice
: method
: 生成一个超级option交易机器,貌似比较有帮助的说。

1 (共1页)
进入Stock版参与讨论
相关主题
关于股神:给不熟悉统计的朋友谈谈binomial distributionMitbbs2020看过来
借古板人气问概率问题学习请教金融知识
想把OPTION的价格和股票价格放在一个图上酒馆,服,还是不服啊?:IWM 逼近62,9月61扑逼近2.0
riskless trade?关于Options的问题
股版的2008 vs 2010 vs 2015巴菲特抢deal真是一流
死皮下面的三个目标: 1890, 1860 and 1830预测明天大盘
imagination 要被中资收购都走到今天这个位置了,看情况再决定吧
说说期权(2)ZZ 你有去华尔街的资格么-Morgan Stanley面试-转自人人 (转载)
相关话题的讨论汇总
话题: double话题: param话题: return话题: private话题: timestep