⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callpriceanddeltas.java

📁 金融资产定价,随机过程,MONTE CARLO 模拟 JAVA 程序和文档资料
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            }        });        jPanel2.add(jSlider7);        jPanel2.add(jLabel7);        jSlider9.setMaximum(4000000);        jSlider9.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {            public void mouseDragged(java.awt.event.MouseEvent evt) {                jSlider9MouseDragged(evt);            }        });        jPanel2.add(jSlider9);        jProgressBar1.setForeground(new java.awt.Color(204, 255, 102));        jProgressBar1.setBackground(new java.awt.Color(204, 204, 255));        jProgressBar1.setBorder(new javax.swing.border.EtchedBorder(null, java.awt.Color.lightGray));        jPanel2.add(jProgressBar1);        jButton1.setText("go");        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                jButton1MouseClicked(evt);            }        });        jPanel2.add(jButton1);        jPanel2.add(jLabel9);        jPanel2.add(jLabel10);        jPanel2.add(jLabel11);        jPanel2.add(jLabel12);        jSplitPane1.setRightComponent(jPanel2);        getContentPane().add(jSplitPane1);        pack();    }//GEN-END:initComponents    //SET OFF MAIN COMPUTATION    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked                mainComputation();            }//GEN-LAST:event_jButton1MouseClicked    private void jSlider9MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider9MouseDragged                nPath=jSlider9.getValue();        jTextField9.setText("Number of paths ="+nPath);     }//GEN-LAST:event_jSlider9MouseDragged    private void jSlider8MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider8MouseDragged                               dt=((double)jSlider8.getValue())/1000;        jTextField8.setText("Time step (years) ="+dt);     }//GEN-LAST:event_jSlider8MouseDragged    private void jSlider7MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider7MouseDragged                               q=((double)jSlider7.getValue())/100;        jTextField7.setText("Dividend yield ="+q);     }//GEN-LAST:event_jSlider7MouseDragged    private void jSlider6MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider6MouseDragged                               sigma=((double)jSlider6.getValue())/100;        jTextField6.setText("Volatility ="+sigma);     }//GEN-LAST:event_jSlider6MouseDragged    private void jSlider5MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider5MouseDragged                               mu=((double)jSlider5.getValue())/100;        jTextField5.setText("Market drift ="+mu);     }//GEN-LAST:event_jSlider5MouseDragged    private void jSlider4MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider4MouseDragged                       S_0=((double)jSlider4.getValue())/100;        jTextField4.setText("S(0) ="+S_0);     }//GEN-LAST:event_jSlider4MouseDragged    private void jSlider3MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider3MouseDragged                       r=((double)jSlider3.getValue())/100;        jTextField3.setText("Risk free rate ="+r);     }//GEN-LAST:event_jSlider3MouseDragged    private void jSlider2MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider2MouseDragged                       T=jSlider2.getValue();        jTextField2.setText("Number of time steps = "+T);     }//GEN-LAST:event_jSlider2MouseDragged    private void jSlider1MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider1MouseDragged                K=((double)jSlider1.getValue())/100;        jTextField1.setText("Strike price ="+K);     }//GEN-LAST:event_jSlider1MouseDragged    /** Exit the Application */    private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm        System.exit(0);    }//GEN-LAST:event_exitForm                      /**    * @param args the command line arguments    */    public static void main(String args[]) {                nSignChange=20;                CallPriceAndDeltas         CLP=new CallPriceAndDeltas();        CLP.setBounds(100,40,700,600);                //set and display defaults in case user does not choose.                 nPath=100000;        CLP.jTextField9.setText("Number of paths ="+nPath);                K=53;        CLP.jTextField1.setText("Strike price ="+K);                 dt=0.05;        CLP.jTextField8.setText("Time step (years) ="+dt);               T=20;        CLP.jTextField2.setText("Number of time steps = "+T);                S_0=48.0;        CLP.jTextField4.setText("S(0) ="+S_0);         r=0.06;        CLP.jTextField3.setText("Risk free rate ="+r);                 q=0.0;        CLP.jTextField7.setText("Dividend yield ="+q);                mu=0.34;        CLP.jTextField5.setText("Market drift ="+mu);                 sigma=0.41;        CLP.jTextField6.setText("Volatility ="+sigma);                 CLP.show();                           }    // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JSlider jSlider4;    private javax.swing.JSlider jSlider3;    private javax.swing.JSlider jSlider2;    private javax.swing.JSlider jSlider1;    private javax.swing.JButton jButton1;    private javax.swing.JMenu jMenu1;    private javax.swing.JLabel jLabel12;    private javax.swing.JLabel jLabel11;    private javax.swing.JLabel jLabel10;    private javax.swing.JMenuBar jMenuBar1;    private javax.swing.JTextField jTextField19;    private javax.swing.JTextField jTextField18;    private javax.swing.JTextField jTextField17;    private javax.swing.JTextField jTextField16;    private javax.swing.JTextField jTextField15;    private javax.swing.JTextField jTextField14;    private javax.swing.JTextField jTextField13;    private javax.swing.JTextField jTextField12;    private javax.swing.JPanel jPanel2;    private javax.swing.JTextField jTextField11;    private javax.swing.JPanel jPanel1;    private javax.swing.JTextField jTextField10;    private javax.swing.JTextField jTextField9;    private javax.swing.JTextField jTextField8;    private javax.swing.JTextField jTextField7;    private javax.swing.JTextField jTextField6;    private javax.swing.JTextField jTextField5;    private javax.swing.JTextField jTextField4;    private javax.swing.JTextField jTextField3;    private javax.swing.JTextField jTextField2;    private javax.swing.JTextField jTextField1;    private javax.swing.JLabel jLabel9;    private javax.swing.JLabel jLabel8;    private javax.swing.JLabel jLabel7;    private javax.swing.JLabel jLabel6;    private javax.swing.JLabel jLabel5;    private javax.swing.JLabel jLabel4;    private javax.swing.JLabel jLabel3;    private javax.swing.JLabel jLabel2;    private javax.swing.JLabel jLabel1;    private javax.swing.JSlider jSlider9;    private javax.swing.JSlider jSlider8;    private javax.swing.JSlider jSlider7;    private javax.swing.JProgressBar jProgressBar1;    private javax.swing.JSlider jSlider6;    private javax.swing.JSplitPane jSplitPane1;    private javax.swing.JSlider jSlider5;    // End of variables declaration//GEN-END:variables        static int T,               nPath,               nSignChange;          static double S_0,                   K,                   Tc,                   r,                   q,                   mu,                   sigma,                   dt;             ConstantVolatilityAsset asset;     BlackScholesCall call;          public void mainComputation()     {                asset=new ConstantVolatilityAsset(T,dt,nSignChange,S_0,r,q,mu,sigma);        call=new BlackScholesCall(K, asset);                       double aPrice=call.discountedAnalyticPrice(0);        double mcPrice=call.discountedMonteCarloPrice(0,nPath);        //analytic deltas        double aDelta=call.analyticDelta(0);        double arnDelta=        call.analyticMinimumVarianceDelta(Flag.RISK_NEUTRAL_PROBABILITY,0);        double amvDelta=        call.analyticMinimumVarianceDelta(Flag.MARKET_PROBABILITY,0);        double aqDelta=call.analyticQuotientDelta(0);        // Monte Carlo computed deltas        double mvDelta=        call.minimumVarianceDelta(Flag.MARKET_PROBABILITY,0,nPath);        double rnDelta=        call.minimumVarianceDelta(Flag.RISK_NEUTRAL_PROBABILITY,0,nPath);        double mcDelta=        call.monteCarloDelta(0,nPath);        double qDelta=call.quotientDelta(0,nPath);                //truncate to 4 digits after zero        aPrice=FinMath.round(aPrice,5);        mcPrice=FinMath.round(mcPrice,5);        aDelta=FinMath.round(aDelta,5);        amvDelta=FinMath.round(amvDelta,5);        arnDelta=FinMath.round(arnDelta,5);        aqDelta=FinMath.round(aqDelta,5);        amvDelta=FinMath.round(amvDelta,5);        arnDelta=FinMath.round(arnDelta,5);        amvDelta=FinMath.round(amvDelta,5);        arnDelta=FinMath.round(arnDelta,5);                   jTextField10.setText("Analytic price = "+aPrice);        jTextField11.setText("Monte Carlo  price = "+mcPrice);        jTextField12.setText("Analytic delta = "+aDelta);        jTextField13.setText("Minimum variance delta = "+mvDelta);        jTextField14.setText("Analytic minimum variance delta = "+amvDelta);        jTextField15.setText("Risk neutral delta = "+rnDelta);        jTextField16.setText("Analytic risk neutral delta = "+arnDelta);        jTextField17.setText("Quotient delta = "+qDelta);        jTextField18.setText("Analytic quotient delta = "+aqDelta);        jTextField19.setText("Monte Carlo delta = "+mcDelta);          }//end mainComputation} //end CallPrice//"Monte carlo delta = "+mcDelta

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -