tarf_monte_carlo 3.31 → 3.36

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: 1ffba748a882648f94602365c6fe89ba13ad4012e4daa54ce87e836c757c2df7
4
- data.tar.gz: 56cf966863ed9d42802d78634b411aef7039eab87a74420d33a3dc429e5c1fa5
3
+ metadata.gz: 63dd616c6846ce9dcf226070ebd3112f3b8ecc6fe757c77bd0a7a61bb99648ec
4
+ data.tar.gz: bae66094b0d84c5b5dc47cb58f7c06aac3321a66991eee8aa267b76cfd4afbb8
5
5
  SHA512:
6
- metadata.gz: e15a1be8f1f8fcc330201ccbfd814866da27b0010428de8e8f4b449ca74b4879d62947309aedabecb86432657f5a1729f52b737518b2de147e967932beedbd96
7
- data.tar.gz: 6d3a80d0819af9cacb1f4a15beb51a3e6edf3a65f38fdb50a0b6c03d0992d73f7046b126c7cf9e6a7febb1e1430fc4fbafba04590b629c02d21e51debcd0d7d7
6
+ metadata.gz: 1f69e4376ecd39f189abc6cca12d962a002da73d25a1fe8524a68725726bb878d7c186885e8f779b7a8bc749b2182965887ade63111eaece2cdbfecc5d13c013
7
+ data.tar.gz: 9a98f27485a6d420293e99c1770611374d7bff06bb274df511099afcd8eeb1f2f0ccf9891a6cb52531cc4d62640a6516d46fb63959d2023b50c628c65c6d148a
@@ -94,7 +94,8 @@ double get_equivalent_notional(int conversion_sign, double notional, float rate)
94
94
  }
95
95
 
96
96
  double get_equivalent_rebate(int conversion_sign, double rebate, float rate){
97
- return (conversion_sign == 1) ? (rebate * rate) : rebate;
97
+ double total = (conversion_sign == 1) ? (rebate * rate) : rebate;
98
+ return (-1 * total);
98
99
  }
99
100
 
100
101
  // main method for running monte carlo simulation from sidekiq worker/outside method
@@ -193,7 +194,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
193
194
  // first create a 1-D array of pointers, and then, for each array entry, create another 1-D array.
194
195
  //
195
196
  double **metrics;
196
- double data[4][NL];
197
197
  metrics = ( double** ) malloc( DATAPOINTS * sizeof(double*) );
198
198
  for( metric = 0; metric < DATAPOINTS; metric++ ) {
199
199
  metrics[metric] = ( double* ) malloc( NL * sizeof(double) );
@@ -217,10 +217,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
217
217
  sim_dash[leg] = 0.0;
218
218
  sim_dash_pos[leg] = 0.0;
219
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;
224
220
  }
225
221
 
226
222
  int knockedLeg = -1;
@@ -374,8 +370,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
374
370
  sim[leg] = profit_loss;
375
371
  sim_dash[leg] = profit_loss_dash;
376
372
 
377
- data[0][leg] = sim[leg];
378
- data[1][leg] = sim_dash[leg];
379
373
  //
380
374
  // Store spot and spot dash
381
375
  //
@@ -392,7 +386,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
392
386
  Spot_dash = S;
393
387
  }
394
388
  }
395
-
396
389
  // legs loop end
397
390
  // start from the Knock value
398
391
  double ko_so_far = K, ko_so_far_dash = K;
@@ -411,9 +404,6 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
411
404
  else{
412
405
  sim_dash_pos[NL-1] = get_equivalent_rebate(rebate_conversion_sign, ( *( Rebate_array + 0 ) ), sim_dash[NL-1]);
413
406
  }
414
-
415
- data[2][NL-1] = sim_pos[NL-1];
416
- data[3][NL-1] = sim_dash_pos[NL-1];
417
407
  } else if(KType == FX_AMERICAN_BARRIER_KNOCKOUT_DISCRETE){
418
408
  if(knockedLeg >= 0){
419
409
  sim_pos[knockedLeg] = get_equivalent_rebate(rebate_conversion_sign, ( *( Rebate_array + knockedLeg ) ), sim[knockedLeg]);
@@ -595,11 +585,11 @@ VALUE method_run_monte_carlo( VALUE self, VALUE args ) {
595
585
  //
596
586
  // rb_p(rb_str_new2("Converting metrics"));
597
587
  VALUE final_metrics = rb_ary_new();
598
- for(metric = 0; metric < 5; metric++) {
588
+ for(metric = 0; metric < DATAPOINTS; metric++) {
599
589
  VALUE leg_metrics = rb_ary_new();
600
590
 
601
591
  for(leg = 0; leg < NL; leg++) {
602
- rb_ary_push( leg_metrics, DBL2NUM( data[metric][leg] ) );
592
+ rb_ary_push( leg_metrics, DBL2NUM( metrics[metric][leg] ) );
603
593
  }
604
594
 
605
595
  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.31"
6
+ VERSION = "3.36"
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tarf_monte_carlo
3
3
  version: !ruby/object:Gem::Version
4
- version: '3.31'
4
+ version: '3.36'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vivek Routh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-03 00:00:00.000000000 Z
11
+ date: 2020-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler