Advertisement
Guest User

Untitled

a guest
Jul 13th, 2020
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 13.49 KB | None | 0 0
  1. <html>
  2. <head>
  3.   <script type="text/javascript">
  4.  
  5.     //************* DEFAULT SETTINGS *****************
  6.     function Init(){
  7.       document.getElementById("CurrentBookValue").value = 0;
  8.       document.getElementById("CurrentQtyShares").value = 0;
  9.       document.getElementById("CurrentAveragePrice").value = Number(document.getElementById("CurrentBookValue").value / document.getElementById("CurrentQtyShares").value).toFixed(2);
  10.  
  11.       document.getElementById("BasePurchasePrice").value = 0.37;
  12.       document.getElementById("QtyIncrement").value = 1000;
  13.       document.getElementById("PriceIncrement").value = 0.01;
  14.       document.getElementById("PerTradeFee").value = 6.95;
  15.     }
  16.  
  17.     //************* REFRESH RESULTS *******************
  18.     function Recalc(){
  19.       //BASE VALUES
  20.       var dCurrentBookValue = Number(document.getElementById("CurrentBookValue").value);
  21.       var dCurrentQtyShares = Number(document.getElementById("CurrentQtyShares").value);
  22.       //RECALC AVERAGE_PRICE as it may now be different cuz changes to the default BookValue/CurrentQtyShares
  23.       var dCurrentAveragePrice = dCurrentBookValue / dCurrentQtyShares;
  24.       document.getElementById("CurrentAveragePrice").value = Number(dCurrentAveragePrice).toFixed(2);
  25.  
  26.       //RETRIEVE FORM INPUT DATA
  27.       var dBasePurchasePrice = Number(document.getElementById("BasePurchasePrice").value);
  28.       var dQtyIncrement = Number(document.getElementById("QtyIncrement").value);
  29.       var dPriceIncrement = Number(document.getElementById("PriceIncrement").value);
  30.       var dPerTradeFee = Number(document.getElementById("PerTradeFee").value);
  31.  
  32.       //POPULATE THE RESULTS
  33.       var sFieldName = "";
  34.       var iPriceIncrementMultiplier = 1;
  35.       var iQtyMultiplier = 1;
  36.  
  37.       for(i=1;i<=25;i++){
  38.        sFieldName = "Result" + i + "_Field"
  39.        //Purchase Qty: 1000 2000 3000
  40.        document.getElementById(sFieldName + "1").innerHTML = iQtyMultiplier * dQtyIncrement;
  41.      //Purcase Price: 0.37 0.38 0.39
  42.        document.getElementById(sFieldName + "2").innerHTML = Number(dBasePurchasePrice + ((iPriceIncrementMultiplier - 1) * dPriceIncrement)).toFixed(2);
  43.      //Total Cost Of Purchase: $376.95 (include trade fee of 6.95 as per CIBC)
  44.        document.getElementById(sFieldName + "3").innerHTML =
  45.          Number((Number(document.getElementById(sFieldName + "1").innerHTML) * Number(document.getElementById(sFieldName + "2").innerHTML)) +
  46.          dPerTradeFee).toFixed(2);
  47.      //NewBookValue
  48.        document.getElementById(sFieldName + "4").innerHTML = Number(Number(document.getElementById(sFieldName + "3").innerHTML) + dCurrentBookValue).toFixed(2);
  49.      //NewAveragePrice
  50.        document.getElementById(sFieldName + "5").innerHTML =
  51.          Number(Number(document.getElementById(sFieldName + "4").innerHTML) /
  52.          (Number(document.getElementById(sFieldName + "1").innerHTML) + dCurrentQtyShares)).toFixed(2);
  53.  
  54.        if(iQtyMultiplier == 5){
  55.          iQtyMultiplier = 1;
  56.        }else{
  57.          iQtyMultiplier++;
  58.        }
  59.        if((i % 5) == 0){
  60.          //represents a group of five rows.
  61.          iPriceIncrementMultiplier++;
  62.        }
  63.      }
  64.    }
  65.  
  66.  </script>
  67.  
  68.   <style>
  69.     table{
  70.       border: 1px solid black;
  71.       border-collapse: collapse;
  72.       background-color: #000078;
  73.     }
  74.     td{
  75.       text-align:left;
  76.       background-color: #d1cad0;
  77.     }
  78.  
  79.     th{background-color: #b3b3d7;}
  80.  
  81.     .bordered{
  82.       border: 1px solid black;
  83.       text-align: left;
  84.     }
  85.     .resultsHeader{
  86.       border: 1px solid black;
  87.       text-align: left;
  88.       font-weight: bold;
  89.       padding-top: 30px;
  90.       background-color: #99ccff;
  91.     }
  92.     .resultGroupA{
  93.       background-color: #c0c0c0;
  94.     }
  95.     .resultGroupB{
  96.       background-color: #dcdcdc;
  97.     }
  98.  
  99.     .databutton{
  100.       display:block;
  101.       width:100%;
  102.       background-color: #707070;
  103.       color: #d0d0d0;
  104.     }
  105.   </style>
  106.  
  107. </head>
  108.  
  109. <body onLoad="Init();Recalc();">
  110.   <span style="font-weight: bold;">Settings</span>
  111.   <table>
  112.     <tr>
  113.       <th class="bordered">$BasePurchasePrice:</th>
  114.       <th class="bordered">#QtyIncrement:</th>
  115.       <th class="bordered">$PriceIncrement:</th>
  116.       <th class="bordered">$PerTradeFee</th>
  117.       <th class="bordered"></th>
  118.     </tr>
  119.     <tr>
  120.       <td class="bordered"><input type="text" id="BasePurchasePrice" value="0" size="13" maxlength="7" /></td>
  121.       <td class="bordered"><input type="text" id="QtyIncrement"      value="0" size="13" maxlength="6" /></td>
  122.       <td class="bordered"><input type="text" id="PriceIncrement"    value="0" size="13" maxlength="5" /></td>
  123.       <td class="bordered"><input type="text" id="PerTradeFee"       value="0" size="13" maxlength="5" /></td>
  124.       <td class="bordered"></td>
  125.     </tr>
  126.     <tr>
  127.       <th class="bordered">$BookValue:</th>
  128.       <th class="bordered">#Shares:</th>
  129.       <th class="bordered">$AvgPrice:</th>
  130.       <th class="bordered"></th>
  131.       <th class="bordered"></th>
  132.     </tr>
  133.     <tr>
  134.       <td class="bordered"><input type="text" id="CurrentBookValue" value="0" size="13" maxlength="10" /></td>
  135.       <td class="bordered"><input type="text" id="CurrentQtyShares"       value="0" size="13" maxlength="10" /></td>
  136.       <td class="bordered"><input type="text" id="CurrentAveragePrice"    value="0" size="13" maxlength="10" disabled=true /></td>
  137.       <td class="bordered"><button type="button" name="button" onClick="Recalc();" class="databutton">Recalculate</button></td>
  138.       <td class="bordered"></td>
  139.     </tr>
  140.     <tr>
  141.       <td class="resultsHeader">PurchaseQty</td>
  142.       <td class="resultsHeader">PurchasePrice</td>
  143.       <td class="resultsHeader">Total Cost Of Purchase</td>
  144.       <td class="resultsHeader">NewBookValue</td>
  145.       <td class="resultsHeader">NewAveragePrice</td>
  146.     </tr>
  147.     <tr>
  148.       <td class="resultGroupA" id="Result1_Field1"></td>
  149.       <td class="resultGroupA" id="Result1_Field2"></td>
  150.       <td class="resultGroupA" id="Result1_Field3"></td>
  151.       <td class="resultGroupA" id="Result1_Field4"></td>
  152.       <td class="resultGroupA" id="Result1_Field5"></td>
  153.     </tr>
  154.     <tr>
  155.       <td class="resultGroupA" id="Result2_Field1"></td>
  156.       <td class="resultGroupA" id="Result2_Field2"></td>
  157.       <td class="resultGroupA" id="Result2_Field3"></td>
  158.       <td class="resultGroupA" id="Result2_Field4"></td>
  159.       <td class="resultGroupA" id="Result2_Field5"></td>
  160.     </tr>
  161.     <tr>
  162.       <td class="resultGroupA" id="Result3_Field1"></td>
  163.       <td class="resultGroupA" id="Result3_Field2"></td>
  164.       <td class="resultGroupA" id="Result3_Field3"></td>
  165.       <td class="resultGroupA" id="Result3_Field4"></td>
  166.       <td class="resultGroupA" id="Result3_Field5"></td>
  167.     </tr>
  168.     <tr>
  169.       <td class="resultGroupA" id="Result4_Field1"></td>
  170.       <td class="resultGroupA" id="Result4_Field2"></td>
  171.       <td class="resultGroupA" id="Result4_Field3"></td>
  172.       <td class="resultGroupA" id="Result4_Field4"></td>
  173.       <td class="resultGroupA" id="Result4_Field5"></td>
  174.     </tr>
  175.     <tr>
  176.       <td class="resultGroupA" id="Result5_Field1"></td>
  177.       <td class="resultGroupA" id="Result5_Field2"></td>
  178.       <td class="resultGroupA" id="Result5_Field3"></td>
  179.       <td class="resultGroupA" id="Result5_Field4"></td>
  180.       <td class="resultGroupA" id="Result5_Field5"></td>
  181.     </tr>
  182.     <tr>
  183.       <td class="resultGroupB" id="Result6_Field1"></td>
  184.       <td class="resultGroupB" id="Result6_Field2"></td>
  185.       <td class="resultGroupB" id="Result6_Field3"></td>
  186.       <td class="resultGroupB" id="Result6_Field4"></td>
  187.       <td class="resultGroupB" id="Result6_Field5"></td>
  188.     </tr>
  189.     <tr>
  190.       <td class="resultGroupB" id="Result7_Field1"></td>
  191.       <td class="resultGroupB" id="Result7_Field2"></td>
  192.       <td class="resultGroupB" id="Result7_Field3"></td>
  193.       <td class="resultGroupB" id="Result7_Field4"></td>
  194.       <td class="resultGroupB" id="Result7_Field5"></td>
  195.     </tr>
  196.     <tr>
  197.       <td class="resultGroupB" id="Result8_Field1"></td>
  198.       <td class="resultGroupB" id="Result8_Field2"></td>
  199.       <td class="resultGroupB" id="Result8_Field3"></td>
  200.       <td class="resultGroupB" id="Result8_Field4"></td>
  201.       <td class="resultGroupB" id="Result8_Field5"></td>
  202.     </tr>
  203.     <tr>
  204.       <td class="resultGroupB" id="Result9_Field1"></td>
  205.       <td class="resultGroupB" id="Result9_Field2"></td>
  206.       <td class="resultGroupB" id="Result9_Field3"></td>
  207.       <td class="resultGroupB" id="Result9_Field4"></td>
  208.       <td class="resultGroupB" id="Result9_Field5"></td>
  209.     </tr>
  210.     <tr>
  211.       <td class="resultGroupB" id="Result10_Field1"></td>
  212.       <td class="resultGroupB" id="Result10_Field2"></td>
  213.       <td class="resultGroupB" id="Result10_Field3"></td>
  214.       <td class="resultGroupB" id="Result10_Field4"></td>
  215.       <td class="resultGroupB" id="Result10_Field5"></td>
  216.     </tr>
  217.     <tr>
  218.       <td class="resultGroupA" id="Result11_Field1"></td>
  219.       <td class="resultGroupA" id="Result11_Field2"></td>
  220.       <td class="resultGroupA" id="Result11_Field3"></td>
  221.       <td class="resultGroupA" id="Result11_Field4"></td>
  222.       <td class="resultGroupA" id="Result11_Field5"></td>
  223.     </tr>
  224.     <tr>
  225.       <td class="resultGroupA" id="Result12_Field1"></td>
  226.       <td class="resultGroupA" id="Result12_Field2"></td>
  227.       <td class="resultGroupA" id="Result12_Field3"></td>
  228.       <td class="resultGroupA" id="Result12_Field4"></td>
  229.       <td class="resultGroupA" id="Result12_Field5"></td>
  230.     </tr>
  231.     <tr>
  232.       <td class="resultGroupA" id="Result13_Field1"></td>
  233.       <td class="resultGroupA" id="Result13_Field2"></td>
  234.       <td class="resultGroupA" id="Result13_Field3"></td>
  235.       <td class="resultGroupA" id="Result13_Field4"></td>
  236.       <td class="resultGroupA" id="Result13_Field5"></td>
  237.     </tr>
  238.     <tr>
  239.       <td class="resultGroupA" id="Result14_Field1"></td>
  240.       <td class="resultGroupA" id="Result14_Field2"></td>
  241.       <td class="resultGroupA" id="Result14_Field3"></td>
  242.       <td class="resultGroupA" id="Result14_Field4"></td>
  243.       <td class="resultGroupA" id="Result14_Field5"></td>
  244.     </tr>
  245.     <tr>
  246.       <td class="resultGroupA" id="Result15_Field1"></td>
  247.       <td class="resultGroupA" id="Result15_Field2"></td>
  248.       <td class="resultGroupA" id="Result15_Field3"></td>
  249.       <td class="resultGroupA" id="Result15_Field4"></td>
  250.       <td class="resultGroupA" id="Result15_Field5"></td>
  251.     </tr>
  252.  
  253.     <tr>
  254.       <td class="resultGroupB" id="Result16_Field1"></td>
  255.       <td class="resultGroupB" id="Result16_Field2"></td>
  256.       <td class="resultGroupB" id="Result16_Field3"></td>
  257.       <td class="resultGroupB" id="Result16_Field4"></td>
  258.       <td class="resultGroupB" id="Result16_Field5"></td>
  259.     </tr>
  260.     <tr>
  261.       <td class="resultGroupB" id="Result17_Field1"></td>
  262.       <td class="resultGroupB" id="Result17_Field2"></td>
  263.       <td class="resultGroupB" id="Result17_Field3"></td>
  264.       <td class="resultGroupB" id="Result17_Field4"></td>
  265.       <td class="resultGroupB" id="Result17_Field5"></td>
  266.     </tr>
  267.     <tr>
  268.       <td class="resultGroupB" id="Result18_Field1"></td>
  269.       <td class="resultGroupB" id="Result18_Field2"></td>
  270.       <td class="resultGroupB" id="Result18_Field3"></td>
  271.       <td class="resultGroupB" id="Result18_Field4"></td>
  272.       <td class="resultGroupB" id="Result18_Field5"></td>
  273.     </tr>
  274.     <tr>
  275.       <td class="resultGroupB" id="Result19_Field1"></td>
  276.       <td class="resultGroupB" id="Result19_Field2"></td>
  277.       <td class="resultGroupB" id="Result19_Field3"></td>
  278.       <td class="resultGroupB" id="Result19_Field4"></td>
  279.       <td class="resultGroupB" id="Result19_Field5"></td>
  280.     </tr>
  281.     <tr>
  282.       <td class="resultGroupB" id="Result20_Field1"></td>
  283.       <td class="resultGroupB" id="Result20_Field2"></td>
  284.       <td class="resultGroupB" id="Result20_Field3"></td>
  285.       <td class="resultGroupB" id="Result20_Field4"></td>
  286.       <td class="resultGroupB" id="Result20_Field5"></td>
  287.     </tr>
  288.  
  289.     <tr>
  290.       <td class="resultGroupA" id="Result21_Field1"></td>
  291.       <td class="resultGroupA" id="Result21_Field2"></td>
  292.       <td class="resultGroupA" id="Result21_Field3"></td>
  293.       <td class="resultGroupA" id="Result21_Field4"></td>
  294.       <td class="resultGroupA" id="Result21_Field5"></td>
  295.     </tr>
  296.     <tr>
  297.       <td class="resultGroupA" id="Result22_Field1"></td>
  298.       <td class="resultGroupA" id="Result22_Field2"></td>
  299.       <td class="resultGroupA" id="Result22_Field3"></td>
  300.       <td class="resultGroupA" id="Result22_Field4"></td>
  301.       <td class="resultGroupA" id="Result22_Field5"></td>
  302.     </tr>
  303.     <tr>
  304.       <td class="resultGroupA" id="Result23_Field1"></td>
  305.       <td class="resultGroupA" id="Result23_Field2"></td>
  306.       <td class="resultGroupA" id="Result23_Field3"></td>
  307.       <td class="resultGroupA" id="Result23_Field4"></td>
  308.       <td class="resultGroupA" id="Result23_Field5"></td>
  309.     </tr>
  310.     <tr>
  311.       <td class="resultGroupA" id="Result24_Field1"></td>
  312.       <td class="resultGroupA" id="Result24_Field2"></td>
  313.       <td class="resultGroupA" id="Result24_Field3"></td>
  314.       <td class="resultGroupA" id="Result24_Field4"></td>
  315.       <td class="resultGroupA" id="Result24_Field5"></td>
  316.     </tr>
  317.     <tr>
  318.       <td class="resultGroupA" id="Result25_Field1"></td>
  319.       <td class="resultGroupA" id="Result25_Field2"></td>
  320.       <td class="resultGroupA" id="Result25_Field3"></td>
  321.       <td class="resultGroupA" id="Result25_Field4"></td>
  322.       <td class="resultGroupA" id="Result25_Field5"></td>
  323.     </tr>
  324.   </table>
  325.  
  326. </body>
  327. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement