股票交易费的计算---沪A版

作者:bruce.bei

日期:2018.2.2

QQ同微信:215748382

本人是技术爱好者,也是股票爱好者,今天有空弄下这个交易费,哈哈,纯属娱乐,不过亲测可靠。

下面直接贴代码吧:

package com.bootdo.common.utils;


import java.math.BigDecimal;


/**
 * 此收费标准2015年8月1日起正式实施。
 * 亲测有效
 * 
 * 1.印花税:成交金额的1‰ 。2008年9月19日至今由向双边征收改为向出让方单边征收。受让者不再缴纳印花税。投资者在买卖成交后支付给财税部门的税收。
 * 上海股票及深圳股票均按实际成交金额的千分之一支付,此税收由券商代扣后由交易所统一代缴。债券与基金交易均免交此项税收。
 * 2.证管费:约为成交金额的0.002%收取
 * 3.证券交易经手费:A股,按成交金额的0.00696%收取;B股,按成交额双边收取0.0001%;基金,按成交额双边收取0.00975%;权证,
 * 按成交额双边收取0.0045%。 A股2、3项收费合计称为交易规费,合计收取成交金额的0.00896%,包含在券商交易佣金中。
 * 4.过户费(从2015年8月1日起已经更改为上海和深圳都进行收取):这是指股票成交后,更换户名所需支付的费用。根据中国登记结算公司的发文《
 * 关于调整A股交易过户费收费标准有关事项的通知[1] 》,从2015年8月1日起已经更改为上海和深圳都进行收取,此费用按成交金额的0.002%收取。
 * 5.券商交易佣金:最高不超过成交金额的3‰,最低5元起,单笔交易佣金不满5元按5元收取。
 * 一般情况下,券商对大资金量、交易量的客户会给予降低佣金率的优惠,因此,资金量大、交易频繁的客户可自己去和证券部申请。另外,券商还会依客户是采取电话交易、
 * 网上交易等提供不同的佣金率,一般来说,网上交易收取的佣金较低。
 * 另外,部分地方还收委托费。这笔费用主要用于支付通讯等方面的开支,一般按笔计算(由证券公司营业部决定收不收,证券公司多的地方,相互竞争,大多取消这项,
 * 比如大城市,证券公司少的地方,营业部可能收你成交一笔收一元或五元,比如小城镇)
 * 
 * @author Administrator
 *
 */
public class BeiUtil {
private static double shouxu = 0.000300896;// 手续费费率,万三手续费加上2,3的费用
private static double yinhua = 0.001;// 印花税税率
private static double guohu = 0.00002;// 过户费费率



public static double m2(double num) {
BigDecimal bg = new BigDecimal(num);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();// 四舍五入的方法
return f1;
}


public static double maichu(double price, double num) {
double shouxufei = m2(price * num * shouxu);// 手续费
if (shouxufei < 5) {
shouxufei = 5;
}
double yinhuafei = m2(price * num * yinhua);// 印花税
double guohufei = m2(price * num * guohu);// 过户费


double total = m2(price * num - shouxufei - yinhuafei - guohufei);// 最终结果
System.out.println("卖出:" + shouxufei);
System.out.println(yinhuafei);
System.out.println(guohufei);
System.out.println(total);
return total;
}


public static double mairu(double price, double num) {
double shouxufei = m2(price * num * shouxu);// 手续费
if (shouxufei < 5) {
shouxufei = 5;
}
double guohufei = m2(price * num * guohu);// 过户费


double total = m2(price * num + shouxufei + guohufei);// 最终结果
System.out.println("买入:" + shouxufei);
System.out.println(guohufei);
System.out.println(total);
return total;
}


/**
* 手续费=数量*价格*费率

* @param args
*/
public static void main(String[] args) {
double mairuzonge = mairu(5.51, 3300) + mairu(5.57, 3300) + mairu(5.58, 3300);
double maichuzonge = maichu(5.56, 3300) + maichu(5.63, 6700);
double chae = maichuzonge - mairuzonge;
System.out.println("收入:" + m2(chae));
}
}



你可能感兴趣的:(金融相关,股票)