我需要为某些金融交易创建蒙特卡罗模拟器。输入将是:
我查看了Math::Random::MT::Auto Perl模块,但我不确定如何制定模拟器的输入。
根据我正在使用的输入,有人可以提供一些关于入门的建议吗?
答案 0 :(得分:4)
我认为会有一个确定交易盈利能力的模型,并且某个交易的盈利能力会有概率成分。
然后,您需要从该概率组件的适当分布中绘制实现,并计算输入的所有交易的盈利能力。显然,还必须考虑要输入哪些交易:为什么根据某些标准输入不是事前盈利的交易?但是,我不知道对此发表评论。
小心不要使用内置RNG:在Windows上,that will basically give you only 32768 possible values。
这是一个愚蠢的例子:
#!/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);
}
}