📄 callhedgestatistics.java
字号:
jPanel3.add(jLabel6); jSlider5.setMaximum(10000); jSlider5.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider5MouseDragged(evt); } }); jPanel3.add(jSlider5); jSlider6.setMaximum(3000); jSlider6.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider6MouseDragged(evt); } }); jPanel3.add(jSlider6); jSlider7.setMaximum(50); jSlider7.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider7MouseDragged(evt); } }); jPanel3.add(jSlider7); jPanel3.add(jLabel7); jSlider8.setMaximum(500); jSlider8.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider8MouseDragged(evt); } }); jPanel3.add(jSlider8); jSlider9.setMaximum(2000); jSlider9.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider9MouseDragged(evt); } }); jPanel3.add(jSlider9); jSlider10.setMaximum(20000); jSlider10.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider10MouseDragged(evt); } }); jPanel3.add(jSlider10); jPanel3.add(jLabel8); jSlider11.setMaximum(200); jSlider11.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider11MouseDragged(evt); } }); jPanel3.add(jSlider11); jSlider12.setMaximum(200); jSlider12.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider12MouseDragged(evt); } }); jPanel3.add(jSlider12); jSlider13.setMaximum(50); jSlider13.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider13MouseDragged(evt); } }); jPanel3.add(jSlider13); jSlider14.setMaximum(50); jSlider14.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider14MouseDragged(evt); } }); jPanel3.add(jSlider14); jPanel3.add(jLabel9); jButton1.setText("go"); jButton1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton1MouseClicked(evt); } }); jPanel3.add(jButton1); jSplitPane2.setRightComponent(jPanel3); jPanel1.add(jSplitPane2, "card2"); jPanel4.setLayout(new java.awt.BorderLayout()); jProgressBar1.setPreferredSize(new java.awt.Dimension(148, 20)); jProgressBar1.setDoubleBuffered(true); jProgressBar1.setStringPainted(true); jPanel4.add(jProgressBar1, java.awt.BorderLayout.NORTH); jTextField15.setEditable(false); jTextField15.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField15ActionPerformed(evt); } }); jPanel4.add(jTextField15, java.awt.BorderLayout.SOUTH); jTextArea2.setEditable(false); jTextArea2.setBackground((java.awt.Color) javax.swing.UIManager.getDefaults().get("textHighlight")); jScrollPane2.setViewportView(jTextArea2); jPanel4.add(jScrollPane2, java.awt.BorderLayout.CENTER); jButton2.setText("OK"); jButton2.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jButton2MouseClicked(evt); } }); jPanel4.add(jButton2, java.awt.BorderLayout.EAST); jPanel1.add(jPanel4, "card3"); jSplitPane1.setRightComponent(jPanel1); getContentPane().add(jSplitPane1); pack(); }//GEN-END:initComponents private void jTextField15ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField15ActionPerformed // Add your handling code here: }//GEN-LAST:event_jTextField15ActionPerformed private void jCheckBox3MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jCheckBox3MouseClicked quotient_deltas=true; }//GEN-LAST:event_jCheckBox3MouseClicked private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton2MouseClicked CardLayout card=(CardLayout)jPanel1.getLayout(); card.next(jSplitPane2.getParent()); }//GEN-LAST:event_jButton2MouseClicked private void jCheckBox2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jCheckBox2MouseClicked monte_carlo_deltas=true; }//GEN-LAST:event_jCheckBox2MouseClicked private void jCheckBox1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jCheckBox1MouseClicked minimum_variance_deltas=true; }//GEN-LAST:event_jCheckBox1MouseClicked private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked mainComputation(); //see bottom }//GEN-LAST:event_jButton1MouseClicked private void jSlider10MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider10MouseDragged nBranch=jSlider10.getValue(); jTextField10.setText("Number of branches per path = "+nBranch); }//GEN-LAST:event_jSlider10MouseDragged 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 r=(double)jSlider7.getValue()/100; jTextField7.setText("Risk free rate = "+r); }//GEN-LAST:event_jSlider7MouseDragged private void jSlider6MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider6MouseDragged Tc=(double)jSlider6.getValue()/1000; T=(int)Math.round(Tc/dt); jTextField6.setText("Time to expiration (years) = "+Tc); }//GEN-LAST:event_jSlider6MouseDragged private void jSlider5MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider5MouseDragged K=1.0*jSlider5.getValue()/100; jTextField5.setText("Strike = "+K); }//GEN-LAST:event_jSlider5MouseDragged private void jSlider4MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider4MouseDragged q=(double)jSlider4.getValue()/100; jTextField4.setText("Dividend yield = "+q); }//GEN-LAST:event_jSlider4MouseDragged private void jSlider3MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider3MouseDragged sigma=(double)jSlider3.getValue()/100; jTextField3.setText("Volatility = "+sigma); }//GEN-LAST:event_jSlider3MouseDragged private void jSlider2MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider2MouseDragged mu=(double)jSlider2.getValue()/100; jTextField2.setText("Market drift = "+mu); }//GEN-LAST:event_jSlider2MouseDragged private void jSlider1MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider1MouseDragged S_0=(double)jSlider1.getValue()/100; jTextField1.setText("S(0) = "+S_0); }//GEN-LAST:event_jSlider1MouseDragged private void jSlider14MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider14MouseDragged triggerPercent=jSlider14.getValue(); jTextField14.setText ("% price change triggering hedge trade = "+triggerPercent); }//GEN-LAST:event_jSlider14MouseDragged private void jSlider13MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider13MouseDragged nHedgeTrades=jSlider13.getValue(); jTextField13.setText ("Number hedge trades (periodic hedge) = "+nHedgeTrades); }//GEN-LAST:event_jSlider13MouseDragged private void jSlider11MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider11MouseDragged fixed_trc=1.0*jSlider11.getValue()/1000; jTextField11.setText("Fixed transaction cost = "+fixed_trc); }//GEN-LAST:event_jSlider11MouseDragged private void jSlider12MouseDragged(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jSlider12MouseDragged prop_trc=1.0*jSlider12.getValue()/1000; jTextField12.setText("Proportional transaction cost = "+prop_trc); }//GEN-LAST:event_jSlider12MouseDragged /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm System.exit(0); }//GEN-LAST:event_exitForm /** * Initialize defaults, show main window */ public static void main(String args[]) { //set defaults in case user does not choose T=30; dt=0.02; Tc=T*dt; nPaths=500; nBranch=5000; nHedgeTrades=12; triggerPercent=5; S_0=50; mu=0.24; sigma=0.41; q=0.04; r=0.07; K=55; minimum_variance_deltas=false; monte_carlo_deltas=false; quotient_deltas=false; CallHedgeStatistics mainWindow=new CallHedgeStatistics(); mainWindow.jCheckBox1.setSelected(false); //minimum variance deltas: no mainWindow.jCheckBox2.setSelected(false); //monte carlo deltas: no mainWindow.jCheckBox3.setSelected(false); //quotient deltas: no mainWindow.jTextField14.setText ("% price change triggering hedge trade = "+triggerPercent); mainWindow.jTextField13.setText ("Number hedge trades (periodic hedge) = "+nHedgeTrades); mainWindow.jTextField12.setText ("proportional transaction cost="+prop_trc); mainWindow.jTextField11.setText ("Fixed transaction cost = "+fixed_trc); mainWindow.jTextField10.setText ("Number of branches per path = "+nBranch); mainWindow.jTextField9.setText("Number of paths ="+nPaths); mainWindow.jTextField8.setText("Time step (years) ="+dt); mainWindow.jTextField4.setText("Dividend yield ="+q); mainWindow.jTextField3.setText("Volatility ="+sigma); mainWindow.jTextField2.setText("Market drift ="+mu); mainWindow.jTextField1.setText("S(0) ="+S_0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -