📄 drawchgraphs_2.java
字号:
}); jPanel2.add(jSlider1); jSlider10.setMaximum(200); jSlider10.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider10MouseDragged(evt); } }); jPanel2.add(jSlider10); jSlider12.setMaximum(400); jSlider12.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider12MouseDragged(evt); } }); jPanel2.add(jSlider12); jButton1.setText("go"); jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton1MouseClicked(evt); } }); jPanel2.add(jButton1); jSlider9.setMaximum(50000); jSlider9.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider9MouseDragged(evt); } }); jPanel2.add(jSlider9); jProgressBar1.setBackground(new java.awt.Color(204, 204, 255)); jProgressBar1.setForeground(new java.awt.Color(204, 255, 102)); jProgressBar1.setBorder(new javax.swing.border.EtchedBorder(null, java.awt.Color.lightGray)); jPanel2.add(jProgressBar1); jSplitPane1.setRightComponent(jPanel2); getContentPane().add(jSplitPane1); pack(); }//GEN-END:initComponents private void jSlider12MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider12MouseDragged prop_trc=1.0*jSlider12.getValue()/1000; jTextField13.setText("Proportional transaction cost = "+prop_trc); }//GEN-LAST:event_jSlider12MouseDragged private void jSlider10MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider10MouseDragged fixed_trc=1.0*jSlider10.getValue()/1000; jTextField11.setText("Fixed transaction cost = "+fixed_trc); }//GEN-LAST:event_jSlider10MouseDragged private void jSlider14MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider14MouseDragged vol_max=1.0*jSlider14.getValue()/100; jTextField15.setText("Maximum hedge volatility ="+vol_max); }//GEN-LAST:event_jSlider14MouseDragged private void jSlider13MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider13MouseDragged vol_min=1.0*jSlider13.getValue()/100; jTextField14.setText("Minimum hedge volatility ="+vol_min); }//GEN-LAST:event_jSlider13MouseDragged private void jSlider11MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider11MouseDragged K=1.0*jSlider11.getValue()/100; jTextField1.setText("Strike = "+K); }//GEN-LAST:event_jSlider11MouseDragged private void jSlider1MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider1MouseDragged nPoints=jSlider1.getValue(); jTextField12.setText("Number of volatilities="+nPoints); }//GEN-LAST:event_jSlider1MouseDragged //SET OFF MAIN COMPUTATION: private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked try{ mainComputation(); } catch(java.io.FileNotFoundException e){} catch(java.io.IOException e){} }//GEN-LAST:event_jButton1MouseClicked private void jSlider9MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider9MouseDragged nPaths=jSlider9.getValue(); jTextField9.setText("Number of paths ="+nPaths); }//GEN-LAST:event_jSlider9MouseDragged private void jSlider8MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider8MouseDragged dt=(double)jSlider8.getValue()/1000; T=(int)Math.round(Tc/dt); jTextField8.setText("Rehedge interval (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("True 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 Tc=(double)jSlider2.getValue()/1000; T=(int)Math.round(Tc/dt); jTextField2.setText("Time to expiration (years) = "+Tc); }//GEN-LAST:event_jSlider2MouseDragged /** 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[]) { //set defaults in case user does not choose T=12; nPaths=50000; nPoints=48; nBranch=10000; //irrelevant but needed for constructor S_0=50; mu=0.3; sigma=0.4; q=0.0; r=0.05; K=50; vol_min=0.1; vol_max=1.2; dt=0.05; Tc=1.0*Math.round(10*T*dt)/10; fixed_trc=0.0; prop_trc=0.0; DrawCHGraphs_2 mainWindow=new DrawCHGraphs_2(); mainWindow.jTextField13.setText ("Proportional transaction cost = "+prop_trc); mainWindow.jTextField11.setText("Fixed transaction cost = "+fixed_trc); mainWindow.jTextField12.setText("Number of volatilities = "+nPoints); mainWindow.jTextField1.setText("Strike ="+K); mainWindow.jTextField15.setText("Maximum volatility ="+vol_max); mainWindow.jTextField14.setText("Minimum volatility ="+vol_min); mainWindow.jTextField9.setText("Number of paths ="+nPaths); mainWindow.jTextField8.setText("Rehedge interval (years) ="+dt); mainWindow.jTextField7.setText("Dividend yield ="+q); mainWindow.jTextField6.setText("True volatility ="+sigma); mainWindow.jTextField5.setText("Market drift ="+mu); mainWindow.jTextField4.setText("S(0) ="+S_0); mainWindow.jTextField3.setText("Risk free rate ="+r); mainWindow.jTextField2.setText("Time to expiration (years) = "+Tc); mainWindow.setTitle ("Call-Hedge statistics as function of hedge volatility"); mainWindow.setBounds(5,50,670,500); mainWindow.show(); }//end main // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel1; private javax.swing.JButton jButton1; private javax.swing.JSlider jSlider9; private javax.swing.JSlider jSlider8; private javax.swing.JSlider jSlider7; private javax.swing.JSlider jSlider6; private javax.swing.JSlider jSlider5; private javax.swing.JSlider jSlider4; private javax.swing.JSlider jSlider3; private javax.swing.JSlider jSlider2; private javax.swing.JTextField jTextField15; private javax.swing.JSlider jSlider1; private javax.swing.JTextField jTextField14; private javax.swing.JTextField jTextField13; private javax.swing.JTextField jTextField12; private javax.swing.JTextField jTextField11; private javax.swing.JTextField jTextField10; private javax.swing.JSplitPane jSplitPane1; private javax.swing.JTextField jTextField9; private javax.swing.JProgressBar jProgressBar1; 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.JSlider jSlider14; private javax.swing.JTextField jTextField1; private javax.swing.JSlider jSlider13; private javax.swing.JLabel jLabel7; private javax.swing.JSlider jSlider12; private javax.swing.JLabel jLabel6; private javax.swing.JSlider jSlider11; private javax.swing.JLabel jLabel5; private javax.swing.JSlider jSlider10; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel1; // End of variables declaration//GEN-END:variables static int T, nPaths, nPoints, nBranch, nSignChange, reportFrequency; static double S_0, Tc, dt, r, q, mu, sigma, K, vol_min, vol_max, fixed_trc, prop_trc; static ConstantVolatilityAsset asset; static CallHedgeStatisticsGraphs stats; public void mainComputation() throws java.io.FileNotFoundException, java.io.IOException { nSignChange=10; //irrelevant but needed for asset constructor reportFrequency=2000; ConstantVolatilityAsset asset=new ConstantVolatilityAsset(T,dt,nSignChange,S_0,r,q,mu,sigma); CallHedgeStatisticsGraphs stats=new CallHedgeStatisticsGraphs (asset,nPaths,nBranch,nPoints,jProgressBar1,reportFrequency); stats.graphFunctionOfHedgeVolatility (K,vol_min,vol_max,fixed_trc,prop_trc); } //end mainComputation } //end DrawCHGraphs_2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -