コード例 #1
0
    def test_visualize(self):

        vis.Option().visualize()

        vis.Option().visualize(
            risk=False, combo_payoff='backspread', S=50, K1=48, K2=52, T=1, 
            r=0.05, q=0.01, sigma=0.3, option='put', ratio=3, value=True, 
            mpl_style='fivethirtyeight', size2d=(6, 4))

        vis.Option().visualize(
            risk=True, graphtype='2D', x_plot='vol', y_plot='vega', S=50, 
            G1=45, G2=50, G3=55, T=0.5, T1=0.5, T2=0.5, T3=0.5, time_shift=0.5, 
            r=0.05, q=0.01, sigma=0.3, option='put', direction='short', 
            size2d=(6, 4), mpl_style='fivethirtyeight', num_sens=True)

        vis.Option().visualize(
            risk=True, graphtype='3D', interactive=False, S=50, r=0.05, q=0.01, 
            sigma=0.3, option='put', notebook=False, colorscheme='plasma', 
            colorintensity=0.8, size3d=(12, 8), direction='short', axis='vol', 
            spacegrain=150, azim=-50, elev=20, greek='vega', num_sens=True)

        vis.Option().visualize(
            risk=True, graphtype='3D', interactive=True, S=50, r=0.05, q=0.01, 
            sigma=0.3, option='put', notebook=False, colorscheme='plasma', 
            colorintensity=0.8, size3d=(12, 8), direction='short', axis='vol', 
            spacegrain=150, azim=-50, elev=20, greek='vega', num_sens=True)
コード例 #2
0
    def test_ratio_vertical_spread(self):

        vis.Option().ratio_vertical_spread()

        vis.Option().ratio_vertical_spread(
            S=50, K1=48, K2=52, T=1, r=0.05, q=0.01, sigma=0.3, option='put', 
            ratio=3, value=True, mpl_style='fivethirtyeight', size2d=(6, 4))
コード例 #3
0
    def test_straddle(self):

        vis.Option().straddle()

        vis.Option().straddle(
            S=50, K=50, T=1, r=0.05, q=0.01, sigma=0.3, direction='short', 
            value=True, mpl_style='fivethirtyeight', size2d=(6, 4))
コード例 #4
0
    def test_collar(self):

        vis.Option().collar()

        vis.Option().collar(S=50, K1=48, K2=52, T=1, r=0.05, q=0.01, sigma=0.3, 
           direction='short', value=True, mpl_style='fivethirtyeight', 
           size2d=(6, 4))
コード例 #5
0
    def test_forward(self):

        vis.Option().forward()

        vis.Option().forward(
            S=50, T=1, r=0.05, q=0.01, sigma=0.3, direction='short', cash=True, 
            mpl_style='fivethirtyeight', size2d=(6, 4))
コード例 #6
0
    def test_payoffs(self):

        vis.Option().payoffs()

        vis.Option().payoffs(
            combo_payoff='backspread', S=50, K1=48, K2=52, T=1, r=0.05, q=0.01, 
            sigma=0.3, option='put', ratio=3, value=True, 
            mpl_style='fivethirtyeight', size2d=(6, 4))
コード例 #7
0
    def test_iron_condor(self):

        vis.Option().iron_condor()

        vis.Option().iron_condor(
            S=50, K1=45, K2=50, K3=55, K4=60, T=1, r=0.05, q=0.01, sigma=0.3, 
            direction='short', value=True, 
            mpl_style='fivethirtyeight', size2d=(6, 4))
コード例 #8
0
    def test_christmas_tree(self):

        vis.Option().christmas_tree()

        vis.Option().christmas_tree(
            S=50, K1=45, K2=50, K3=55, T=1, r=0.05, q=0.01, sigma=0.3, 
            option='put', direction='short', value=True, 
            mpl_style='fivethirtyeight', size2d=(6, 4))
コード例 #9
0
    def test_animated_2D_gif(self):

        vis.Option().animated_2D_gif()

        vis.Option().animated_2D_gif(
            gif_folder='images/test2d', gif_filename='test2d', T=1, steps=60, 
            x_plot='vol', y_plot='vega', S=50, G1=45, G2=50, G3=55, 
            r=0.05, q=0.01, sigma=0.3, option='put', direction='short', 
            size2d=(6, 4), mpl_style='fivethirtyeight', num_sens=True)        
コード例 #10
0
    def test_animated_3D_gif(self):
        vis.Option().animated_3D_gif()

        vis.Option().animated_3D_gif(
            S=50, r=0.05, q=0.01, sigma=0.3, option='put', direction='short', 
            notebook=False, colorscheme='plasma', colorintensity=0.8, 
            size3d=(12, 8), axis='vol', spacegrain=150, azim=-50, elev=20, 
            greek='vega', num_sens=True, gif_folder='images/test3d', 
            gif_filename='test3d', gif_frame_update=2, gif_min_dist=9.2, 
            gif_max_dist=9.8, gif_min_elev=20.0, gif_max_elev=50.0, 
            gif_start_azim=90, gif_end_azim=270, gif_dpi=40, gif_ms=150)        
コード例 #11
0
    def test_greeks_graphs_2D(self):

        vis.Option().greeks_graphs_2D()

        vis.Option().greeks_graphs_2D(
            x_plot='vol', y_plot='vega', S=50, G1=45, G2=50, G3=55, T=0.5, 
            T1=0.5, T2=0.5, T3=0.5, time_shift=0.5, r=0.05, q=0.01, sigma=0.3, 
            option='put', direction='short', size2d=(6, 4), 
            mpl_style='fivethirtyeight', num_sens=True)

        vis.Option().greeks_graphs_2D(
            x_plot='vol', y_plot='rho', S=50, G1=45, G2=50, G3=55, T=0.5, 
            time_shift=0.5, r=0.05, q=0.01, sigma=0.3, option='put', 
            direction='short', size2d=(6, 4), mpl_style='fivethirtyeight', 
            num_sens=True)
コード例 #12
0
    def test_greeks_graphs_3D(self):

        vis.Option().greeks_graphs_3D()

        vis.Option().greeks_graphs_3D(
            interactive=False, S=50, r=0.05, q=0.01, sigma=0.3, option='put', 
            notebook=False, colorscheme='plasma', colorintensity=0.8, 
            size3d=(12, 8), direction='short', axis='vol', spacegrain=150, 
            azim=-50, elev=20, greek='vega', num_sens=True)

        vis.Option().greeks_graphs_3D(
            interactive=True, S=50, r=0.05, q=0.01, sigma=0.3, option='put', 
            notebook=False, colorscheme='plasma', colorintensity=0.8, 
            size3d=(12, 8), direction='short', axis='vol', spacegrain=150, 
            azim=-50, elev=20, greek='vega', num_sens=True)
コード例 #13
0
    def test_greeks(self):

        vis.Option().greeks()

        vis.Option().greeks(
            graphtype='2D', x_plot='vol', y_plot='vega', S=50, G1=45, G2=50, 
            G3=55, T=0.5, T1=0.5, T2=0.5, T3=0.5, time_shift=0.5, r=0.05, 
            q=0.01, sigma=0.3, option='put', direction='short', size2d=(6, 4), 
            mpl_style='fivethirtyeight', num_sens=True)

        vis.Option().greeks(
            graphtype='3D', interactive=False, S=50, r=0.05, q=0.01, sigma=0.3, 
            option='put', notebook=False, colorscheme='plasma', 
            colorintensity=0.8, size3d=(12, 8), direction='short', axis='vol', 
            spacegrain=150, azim=-50, elev=20, greek='vega', num_sens=True)

        vis.Option().greeks(
            graphtype='3D', interactive=True, S=50, r=0.05, q=0.01, sigma=0.3, 
            option='put', notebook=False, colorscheme='plasma', 
            colorintensity=0.8, size3d=(12, 8), direction='short', axis='vol', 
            spacegrain=150, azim=-50, elev=20, greek='vega', num_sens=True)
コード例 #14
0
    def test_theta(self):

        self.assertGreater(abs(vis.Option().theta()), 0)
        print("Default theta: ", vis.Option().theta())

        self.assertIsInstance(vis.Option().theta(), float)

        self.assertGreater(
            abs(vis.Option().theta(S=50,
                                   K=55,
                                   T=1,
                                   r=0.05,
                                   q=0.01,
                                   sigma=0.3,
                                   option='put')), 0)
        print(
            "Revalued theta: ",
            vis.Option().theta(S=50,
                               K=55,
                               T=1,
                               r=0.05,
                               q=0.01,
                               sigma=0.3,
                               option='put'))

        self.assertIsInstance(
            vis.Option().theta(S=50,
                               K=55,
                               T=1,
                               r=0.05,
                               q=0.01,
                               sigma=0.3,
                               option='put'), float)
コード例 #15
0
    def test_sensitivities(self):

        self.assertGreater(abs(vis.Option().sensitivities()), 0)
        print("Default sensitivities: ", vis.Option().sensitivities())

        self.assertIsInstance(vis.Option().sensitivities(), float)

        self.assertGreater(
            abs(vis.Option().sensitivities(S=50,
                                           K=55,
                                           T=1,
                                           r=0.05,
                                           q=0.01,
                                           sigma=0.3,
                                           option='put')), 0)
        print(
            "Revalued sensitivities: ",
            vis.Option().sensitivities(S=50,
                                       K=55,
                                       T=1,
                                       r=0.05,
                                       q=0.01,
                                       sigma=0.3,
                                       option='put'))

        self.assertIsInstance(
            vis.Option().sensitivities(S=50,
                                       K=55,
                                       T=1,
                                       r=0.05,
                                       q=0.01,
                                       sigma=0.3,
                                       option='put'), float)
コード例 #16
0
    def test_price(self):

        self.assertGreater(vis.Option().price(), 0)
        print("Default price: ", vis.Option().price())

        self.assertIsInstance(vis.Option().price(), float)

        self.assertGreater(
            vis.Option().price(S=50,
                               K=55,
                               T=1,
                               r=0.05,
                               q=0.01,
                               sigma=0.3,
                               option='put'), 0)
        print(
            "Revalued price: ",
            vis.Option().price(S=50,
                               K=55,
                               T=1,
                               r=0.05,
                               q=0.01,
                               sigma=0.3,
                               option='put'))

        self.assertIsInstance(
            vis.Option().price(S=50,
                               K=55,
                               T=1,
                               r=0.05,
                               q=0.01,
                               sigma=0.3,
                               option='put'), float)
コード例 #17
0
    def test_vega_bleed(self):

        self.assertGreater(abs(vis.Option().vega_bleed()), 0)
        print("Default vega_bleed: ", vis.Option().vega_bleed())

        self.assertIsInstance(vis.Option().vega_bleed(), float)

        self.assertGreater(
            abs(vis.Option().vega_bleed(S=50,
                                        K=55,
                                        T=1,
                                        r=0.05,
                                        q=0.01,
                                        sigma=0.3,
                                        option='put')), 0)
        print(
            "Revalued vega_bleed: ",
            vis.Option().vega_bleed(S=50,
                                    K=55,
                                    T=1,
                                    r=0.05,
                                    q=0.01,
                                    sigma=0.3,
                                    option='put'))

        self.assertIsInstance(
            vis.Option().vega_bleed(S=50,
                                    K=55,
                                    T=1,
                                    r=0.05,
                                    q=0.01,
                                    sigma=0.3,
                                    option='put'), float)
コード例 #18
0
    def test_barrier_price(self):

        self.assertGreater(abs(vis.Option().barrier_price()), 0)
        print("Default barrier_price: ", vis.Option().barrier_price())

        self.assertIsInstance(vis.Option().barrier_price(), float)

        self.assertGreater(
            abs(vis.Option().barrier_price(S=50,
                                           K=55,
                                           H=60,
                                           R=0.1,
                                           T=1,
                                           r=0.05,
                                           q=0.01,
                                           sigma=0.3,
                                           option='put',
                                           barrier_direction='up',
                                           knock='out')), 0)
        print(
            "Revalued barrier_price: ",
            vis.Option().barrier_price(S=50,
                                       K=55,
                                       H=60,
                                       R=0.1,
                                       T=1,
                                       r=0.05,
                                       q=0.01,
                                       sigma=0.3,
                                       option='put',
                                       barrier_direction='up',
                                       knock='out'))

        self.assertIsInstance(
            vis.Option().barrier_price(S=50,
                                       K=55,
                                       H=60,
                                       R=0.1,
                                       T=1,
                                       r=0.05,
                                       q=0.01,
                                       sigma=0.3,
                                       option='put',
                                       barrier_direction='up',
                                       knock='out'), float)
コード例 #19
0
    def test_stock(self):

        vis.Option().stock()

        vis.Option().stock(S=50, direction='short', 
                           mpl_style='fivethirtyeight', size2d=(6, 4))