📄 callpriceanddeltas.java
字号:
/* WARANTY NOTICE AND COPYRIGHTThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.Copyright (C) Michael J. Meyermatmjm@mindspring.comspyqqqdia@yahoo.com*//* * CalllSetUpWindow.java * * Created on January 2, 2002, 4:57 AM */package Examples.Pricing;import Statistics.*;import Market.*;import Options.*;/** <p>Computes price and hedge deltas (at time t=0) for a European call on * a constant volatility asset.</p> * * <p>The <b>main</b> method brings up GUI which allows the choice of parameters. * Values of type <code>double</code> are set using sliders.<p> * * <p>Analytic and Monte Carlo price, as well as <i>analytic deltas</i>, * <i>Monte Carlo deltas</i> computed under the risk neutral probability and * <i>minimum variance deltas</i> computed under the market probability * (and minimizing the hedge variance over the next time step) are computed.</p> * * @author Michael J. Meyer */public class CallPriceAndDeltas extends javax.swing.JFrame { /** Creates new form CalllSetUpWindow */ public CallPriceAndDeltas() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ private void initComponents() {//GEN-BEGIN:initComponents jLabel1 = new javax.swing.JLabel(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jSplitPane1 = new javax.swing.JSplitPane(); jPanel1 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jTextField8 = new javax.swing.JTextField(); jTextField3 = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); jTextField4 = new javax.swing.JTextField(); jTextField5 = new javax.swing.JTextField(); jTextField6 = new javax.swing.JTextField(); jTextField7 = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); jTextField9 = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); jTextField10 = new javax.swing.JTextField(); jTextField11 = new javax.swing.JTextField(); jTextField12 = new javax.swing.JTextField(); jTextField13 = new javax.swing.JTextField(); jTextField14 = new javax.swing.JTextField(); jTextField15 = new javax.swing.JTextField(); jTextField16 = new javax.swing.JTextField(); jTextField17 = new javax.swing.JTextField(); jTextField18 = new javax.swing.JTextField(); jTextField19 = new javax.swing.JTextField(); jPanel2 = new javax.swing.JPanel(); jLabel5 = new javax.swing.JLabel(); jSlider1 = new javax.swing.JSlider(); jSlider2 = new javax.swing.JSlider(); jSlider8 = new javax.swing.JSlider(); jSlider3 = new javax.swing.JSlider(); jLabel6 = new javax.swing.JLabel(); jSlider4 = new javax.swing.JSlider(); jSlider5 = new javax.swing.JSlider(); jSlider6 = new javax.swing.JSlider(); jSlider7 = new javax.swing.JSlider(); jLabel7 = new javax.swing.JLabel(); jSlider9 = new javax.swing.JSlider(); jProgressBar1 = new javax.swing.JProgressBar(); jButton1 = new javax.swing.JButton(); jLabel9 = new javax.swing.JLabel(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); jLabel1.setText("jLabel1"); jMenu1.setText("Menu"); jMenuBar1.add(jMenu1); getContentPane().setLayout(new java.awt.GridLayout(1, 1)); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); jSplitPane1.setDividerLocation(250); jPanel1.setLayout(new java.awt.GridLayout(23, 1)); jLabel2.setText(" CALL"); jLabel2.setForeground(new java.awt.Color(0, 0, 204)); jPanel1.add(jLabel2); jTextField1.setEditable(false); jTextField1.setText("Strike price:"); jPanel1.add(jTextField1); jTextField2.setEditable(false); jTextField2.setText("Number of time steps:"); jPanel1.add(jTextField2); jTextField8.setEditable(false); jTextField8.setText("Time step:"); jPanel1.add(jTextField8); jTextField3.setEditable(false); jTextField3.setText("Risk free rate (decimal):"); jPanel1.add(jTextField3); jLabel3.setText(" UNDERLYING"); jLabel3.setForeground(new java.awt.Color(0, 0, 204)); jPanel1.add(jLabel3); jTextField4.setEditable(false); jTextField4.setText("S(0):"); jPanel1.add(jTextField4); jTextField5.setEditable(false); jTextField5.setText("market drift:"); jPanel1.add(jTextField5); jTextField6.setEditable(false); jTextField6.setText("Volatility:"); jPanel1.add(jTextField6); jTextField7.setEditable(false); jTextField7.setText("Dividend yield:"); jPanel1.add(jTextField7); jLabel4.setText(" SIMULATION"); jLabel4.setForeground(new java.awt.Color(0, 0, 204)); jPanel1.add(jLabel4); jTextField9.setEditable(false); jTextField9.setText("Number of paths:"); jPanel1.add(jTextField9); jLabel8.setText(" RESULTS"); jLabel8.setForeground(new java.awt.Color(0, 0, 204)); jPanel1.add(jLabel8); jTextField10.setEditable(false); jTextField10.setText("Analytic price:"); jPanel1.add(jTextField10); jTextField11.setEditable(false); jTextField11.setText("Monte Carlo price:"); jPanel1.add(jTextField11); jTextField12.setEditable(false); jTextField12.setText("Analytic delta:"); jPanel1.add(jTextField12); jTextField13.setEditable(false); jTextField13.setText("Minimum variance delta:"); jPanel1.add(jTextField13); jTextField14.setEditable(false); jTextField14.setText("Monte Carlo delta:"); jPanel1.add(jTextField14); jTextField15.setEditable(false); jTextField15.setText("Analytic risk neutral delta"); jPanel1.add(jTextField15); jTextField16.setEditable(false); jTextField16.setText("Risk neutral delta"); jPanel1.add(jTextField16); jTextField17.setEditable(false); jTextField17.setText("Analytic market delta"); jPanel1.add(jTextField17); jTextField18.setEditable(false); jTextField18.setText("Market delta"); jPanel1.add(jTextField18); jTextField19.setEditable(false); jTextField19.setText("Monte Carlo delta"); jPanel1.add(jTextField19); jSplitPane1.setLeftComponent(jPanel1); jPanel2.setLayout(new java.awt.GridLayout(22, 1)); jPanel2.add(jLabel5); jSlider1.setMaximum(20000); jSlider1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider1MouseDragged(evt); } }); jPanel2.add(jSlider1); jSlider2.setMaximum(200); jSlider2.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider2MouseDragged(evt); } }); jPanel2.add(jSlider2); jSlider8.setMaximum(500); jSlider8.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider8MouseDragged(evt); } }); jPanel2.add(jSlider8); jSlider3.setMaximum(50); jSlider3.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider3MouseDragged(evt); } }); jPanel2.add(jSlider3); jPanel2.add(jLabel6); jSlider4.setMaximum(15000); jSlider4.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider4MouseDragged(evt); } }); jPanel2.add(jSlider4); jSlider5.setMaximum(80); jSlider5.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider5MouseDragged(evt); } }); jPanel2.add(jSlider5); jSlider6.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider6MouseDragged(evt); } }); jPanel2.add(jSlider6); jSlider7.setMaximum(50); jSlider7.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseDragged(java.awt.event.MouseEvent evt) { jSlider7MouseDragged(evt);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -