tarf_monte_carlo 3.30 → 3.31

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a90214710e0d9e0da88a6822aacdb15a32550e8e316109e402b281bfdf5d9a78
4
- data.tar.gz: 3f75df6387fceb8687b66946c5f3db6bfda2a0a6fce474ce49396a5012c6e838
3
+ metadata.gz: 1ffba748a882648f94602365c6fe89ba13ad4012e4daa54ce87e836c757c2df7
4
+ data.tar.gz: 56cf966863ed9d42802d78634b411aef7039eab87a74420d33a3dc429e5c1fa5
5
5
  SHA512:
6
- metadata.gz: dd7e0e7eebbc58e62bcc3590e0dd582d097a0bfdefd483b46fcbacade6e8bfdfd68a4acf1d1d55da78e99037cdcab749206d4daa0f47da59833220994ae2b422
7
- data.tar.gz: 3bc6732f40ac77cdbaa49355d62a6d98bd7ae7880f9da80b11c1367fa81a1435c3b6f72347377411b7d4c930311e5a328b86e2cc4f29f2355b2041a321cc4d94
6
+ metadata.gz: e15a1be8f1f8fcc330201ccbfd814866da27b0010428de8e8f4b449ca74b4879d62947309aedabecb86432657f5a1729f52b737518b2de147e967932beedbd96
7
+ data.tar.gz: 6d3a80d0819af9cacb1f4a15beb51a3e6edf3a65f38fdb50a0b6c03d0992d73f7046b126c7cf9e6a7febb1e1430fc4fbafba04590b629c02d21e51debcd0d7d7
@@ -193,6 +193,7 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
193
193
  // first create a 1-D array of pointers, and then, for each array entry, create another 1-D array.
194
194
  //
195
195
  double **metrics;
196
+ double data[4][NL];
196
197
  metrics = ( double** ) malloc( DATAPOINTS * sizeof(double*) );
197
198
  for( metric = 0; metric < DATAPOINTS; metric++ ) {
198
199
  metrics[metric] = ( double* ) malloc( NL * sizeof(double) );
@@ -216,6 +217,10 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
216
217
  sim_dash[leg] = 0.0;
217
218
  sim_dash_pos[leg] = 0.0;
218
219
  sim_dash_neg[leg] = 0.0;
220
+ data[0][leg] = 0.0;
221
+ data[1][leg] = 0.0;
222
+ data[2][leg] = 0.0;
223
+ data[3][leg] = 0.0;
219
224
  }
220
225
 
221
226
  int knockedLeg = -1;
@@ -369,6 +374,8 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
369
374
  sim[leg] = profit_loss;
370
375
  sim_dash[leg] = profit_loss_dash;
371
376
 
377
+ data[0][leg] = sim[leg];
378
+ data[1][leg] = sim_dash[leg];
372
379
  //
373
380
  // Store spot and spot dash
374
381
  //
@@ -385,6 +392,7 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
385
392
  Spot_dash = S;
386
393
  }
387
394
  }
395
+
388
396
  // legs loop end
389
397
  // start from the Knock value
390
398
  double ko_so_far = K, ko_so_far_dash = K;
@@ -403,6 +411,9 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
403
411
  else{
404
412
  sim_dash_pos[NL-1] = get_equivalent_rebate(rebate_conversion_sign, ( *( Rebate_array + 0 ) ), sim_dash[NL-1]);
405
413
  }
414
+
415
+ data[2][NL-1] = sim_pos[NL-1];
416
+ data[3][NL-1] = sim_dash_pos[NL-1];
406
417
  } else if(KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
407
418
  if(knockedLeg >= 0){
408
419
  sim_pos[knockedLeg] = get_equivalent_rebate(rebate_conversion_sign, ( *( Rebate_array + knockedLeg ) ), sim[knockedLeg]);
@@ -584,11 +595,11 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
584
595
  //
585
596
  // rb_p(rb_str_new2("Converting metrics"));
586
597
  VALUE final_metrics = rb_ary_new();
587
- for(metric = 0; metric < DATAPOINTS; metric++) {
598
+ for(metric = 0; metric < 5; metric++) {
588
599
  VALUE leg_metrics = rb_ary_new();
589
600
 
590
601
  for(leg = 0; leg < NL; leg++) {
591
- rb_ary_push( leg_metrics, DBL2NUM( metrics[metric][leg] ) );
602
+ rb_ary_push( leg_metrics, DBL2NUM( data[metric][leg] ) );
592
603
  }
593
604
 
594
605
  rb_ary_push(final_metrics, leg_metrics);
@@ -3,5 +3,5 @@
3
3
  # gem yank tarf_monte_carlo -v 2.3
4
4
 
5
5
  module TarfMonteCarlo
6
- VERSION = "3.30"
6
+ VERSION = "3.31"
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tarf_monte_carlo
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.30'
4
+ version: '3.31'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vivek Routh