如何开始在 Perl 中对金融数据进行蒙特卡罗模拟?

Dav*_*ave 4 algorithm perl montecarlo

我需要为一些金融交易创建一个蒙特卡罗模拟器。输入将是:

  • 最终盈利的交易的平均百分比
  • 每笔交易的平均利润
  • 每个时间段的交易数量

我查看了Math::Random::MT::Auto Perl 模块,但不确定如何制定模拟器的输入。

鉴于我正在使用的输入,任何人都可以提供一些入门建议吗?

Sin*_*nür 5

我假设会有一个模型来确定交易的盈利能力,并且给定交易的盈利能力会有一个概率成分。

然后,您需要从该概率分量的适当分布中提取实现,并计算所有输入交易的盈利能力。显然,人们还必须考虑将进行哪些交易:为什么要进行一项根据某种标准没有事前盈利的交易?但是,我不知道足以对此发表评论。

注意不要使用内置的 RNG:在 Windows 上,这基本上只会给你 32768 个可能的值

这是一个愚蠢的例子:

#!/usr/bin/perl

use strict; use warnings;
use List::Util qw( sum );

my @projects = map { mk_project() } 1 .. 1_000;

for my $i (1 .. 10) {
    my $r = rand;
    my @profits = map { $_->($r) } @projects;
    my $avg_profits = sum( @profits ) / @profits;
    my $n_profitable = grep { $_ >= 0 } @profits;
    print "Profits: $avg_profits\tProfitable: $n_profitable\n";
}

sub mk_project {
    my $m = rand;
    return sub {
        my ($r) = @_;
        return 10*($r - $m);
    }
}
Run Code Online (Sandbox Code Playgroud)