tarf_monte_carlo 3.30 → 3.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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