凯利公式测试
来源:互联网 发布:大灰狼远控8.78源码 编辑:程序博客网 时间:2024/04/27 15:39
package com.djh.test.stock;import java.util.Random;public class Kelly {static Random random = new Random();public static double probalitity() {Stat stat = new Stat(Stat.ARITHMETIC, 1, -44.5d, 44.5d);stat.setLen(5);for(int i=0;i<10000;i++){stat.add(random.nextGaussian());}stat.show();return 0;}public static void kelly() {Stat stat = new Stat(Stat.ARITHMETIC, 20, 100d, 250d);Stat stat1 = new Stat(Stat.ARITHMETIC, 10, -100d, 100d);stat1.setLen(7);final double win = 0.01;//猜对盈利final double lost = 0.01;//猜错输率final double inFee = 0.0005;//入仓费率final double outFee = 0.0015;//清仓费率final int n = 100000;int s = 0;//交易次数for(int j=0;j<n;j++){double base = 100;boolean isRemain = false;//是否在仓for(int i=0;i<250;i++){double p = Math.random();double f1 = (win*p-lost*(1-p))/(win*lost);stat1.add(f1);if(f1>0){if(!isRemain){base = base*(1-inFee);isRemain = true;s++;}if(Math.random()<p){base = (1+win) * base;}else {base = base*(1-lost);}}else {if(isRemain){base = base*(1-outFee);isRemain = false;}}}stat.add(base);}stat.show();stat1.show();System.out.println(s/100000);//8620}/** * 最多5% * 3% * @param args */public static void main(String[] args) {//probalitity();kelly();}}
package com.djh.test.stock;import java.util.Map;import java.util.Map.Entry;import java.util.TreeMap;/** * @author djh * */public class Stat {public final static Integer EXPONENT = 1;public final static Integer ARITHMETIC = 2;private double max;private double min;private int len = 0;private Map<Double, Integer> map = new TreeMap<Double,Integer>();public Stat(int slope,int inc,Double min,Double max) {this.max = max;this.min = min;for(double i=min;;){map.put(i, 0);double copyI = i;if(slope==EXPONENT){i = i*inc;}else {i = i+inc;}if(i>max){this.max = copyI;break;}}//if(EXPONENT == slope){//map.put(0d, 0);//this.min = 0d;//}}public void add(double data) {boolean flag = false;double last = min;Integer lastVal = map.get(min);for(Map.Entry<Double, Integer> entry:map.entrySet()){if(data<entry.getKey()){map.put(last, lastVal+1);flag = true;break;}else {last = entry.getKey();lastVal = entry.getValue();}}if(!flag){map.put(max, map.get(max)+1);}}public void show() {StringBuffer s = new StringBuffer("|");StringBuffer v = new StringBuffer("|");if(len == 0){len = String.valueOf(max).length();if(max>=1000000.0){len = 9;}}int t = 0;for(Entry<Double, Integer> entry:map.entrySet()){//"%"+len+"d"s.append(String.format("%"+len+"s",entry.getKey().toString())).append("|");v.append(String.format("%"+len+"s",entry.getValue().toString())).append("|");t += entry.getValue();}System.out.println("总数为:"+t);System.out.println(s);System.out.println(v);}public void setLen(int len) {this.len = len;}public static void main(String[] args) {Stat stat = new Stat(Stat.EXPONENT,10,1d,1e10d);for(int i=0;i<1000;i++){double k = Math.pow(10, Math.random()*9*Math.random());System.out.println(k);stat.add(k);}stat.show();}}
0 0
- 凯利公式测试
- 公式测试
- 测试公式
- 测试公式
- 测试公式
- 测试自动化率公式
- 测试常用公式
- 公式编辑测试
- 测试复杂LaTex公式
- MATHSF公式测试
- 软件测试计算公式总结
- 性能测试计算公式(整理)
- 一些性能测试计算公式
- 性能测试计算公式 供参考
- 测试博客中插入LATEX公式
- 如何应用性能测试常用计算公式
- 公式
- 公式
- (二)C#之集合与索引器
- 高斯消元法对矩阵LU分解的影响
- [leetcode]107. Binary Tree Level Order Traversal II
- 素短语,最左素短语-编译原理
- 02JSP脚本标识
- 凯利公式测试
- 1006. Sign In and Sign Out
- 修复win7下安装centos7双系统后,没有win7启动项
- 2.Hibernate之联合主键
- codeforce#362B. Barnicle(java高精度类)
- addView的基本用法
- 目录:WebService
- oracle单机改变归档路径
- poj 3187