编程小白,因为发现手机炒股老是亏钱(说的好像算出保本价就不会亏了一样),所以花了一个下午(不算搜集规则的时间,可真菜)用matlab写了个保本价计算代码,多bb不好,直接上图,程序核心思路很简单,就简单的解个方程,因为本人不熟悉matlab的基本代码,所以搞了很久的定义,用法,修修补补很久
a=[600; 28.90] %每行一个数组 定义 第一行买入或卖出股数 买入100股就是100,卖出100就是—100,第二行是另一个参数,股价
[m,n]=size(a) %a的行数、列数
for b=1:n %n是列数,列数就是交易笔数
if a(1,b)>0 %判定买还是卖 见某草稿纸方程 每次买卖的单项 !!!!a(x) x是竖着数的所以要写成a(1,b),本来用的a(x 挑选交易数量,行不通
if a(1,b)*a(2,b)<5/0.0003 % 5 b即第n比交易,是个变量
c(b)= roundn(5+a(1,b)*a(2,b)+a(1,b)*a(2,b)*0.00002,-2) %买只有两项,佣金和过户
else
c(b)=roundn(a(1,b)*a(2,b)*0.0003+a(1,b)*a(2,b)+a(1,b)*
a(2,b)*0.00002,-2)
end
else
if abs(a(1,b)*a(2,b))<5/0.0003 %小于0 卖出 5 忘记加千1印花税 %卖有三项,佣金过户印花
check(b)=abs(a(1,b)*a(2,b)*0.001) %当时写的有问题所以加了这行check ,最后发现果然有问题
c(b)=roundn(5+a(1,b)*a(2,b)+abs(a(1,b)*a(2,b)*0.001)+abs(a(1,b)*a(2,b)*0.00002),-2) %猜测是保留两位小数
else
check(b)=abs(a(1,b)*a(2,b)*0.001)
c(b)=roundn(abs(a(1,b)*a(2,b)*0.0003)+abs(a(1,b)*a(2,b)*0.001)+a(1,b)*a(2,b)+abs(a(1,b)*a(2,b)*0.00002),-2)
end
end
end
vpa(c,7) %猜测是保留7位小数
syms x
if sum(c)<5/0.0003 %进场时的总金额
s=sum(c)+5+x*sum(a(1,:))*0.001-x*sum(a(1,:))+x*sum(a(1,:))*0.00002
else
s=sum(c)+x*sum(a(1,:))*0.0003+x*sum(a(1,:))*0.001-x*sum(a(1,:))+x*sum(a(1,:))*0.00002
end
x=solve(s)
digits(7)
vpa(x)
以下为打算一起附上的信息:matlab讲义.pdf,百度到的一些实现的emm像vpa这种怎么称呼来着?算符?还是就叫他代码。。沪股和深股交易计算规则等全貌信息。后来因为懒+菜就无