Download Latest Version DLLs.7z (61.2 kB)
Email in envelope

Get an email when there's a new version of PocketNumerix

Home / public_html / Documentation / NillaHedge / NillaHedge_User_Manual_files
Name Modified Size InfoDownloads / Week
Parent folder
image166.gif 2023-12-21 811 Bytes
image168.gif 2023-12-21 422 Bytes
image170.gif 2023-12-21 321 Bytes
image164.gif 2023-12-21 643 Bytes
image162.gif 2023-12-21 215 Bytes
image154.gif 2023-12-21 389 Bytes
image156.gif 2023-12-21 357 Bytes
image158.gif 2023-12-21 374 Bytes
image160.gif 2023-12-21 365 Bytes
image151.png 2023-12-21 19.5 kB
image152.jpg 2023-12-21 21.3 kB
image146.gif 2023-12-21 380 Bytes
image148.gif 2023-12-21 391 Bytes
image150.gif 2023-12-21 366 Bytes
image144.jpg 2023-12-21 21.8 kB
image142.jpg 2023-12-21 20.9 kB
image143.png 2023-12-21 19.5 kB
image139.png 2023-12-21 18.7 kB
image140.jpg 2023-12-21 20.3 kB
image141.png 2023-12-21 18.6 kB
image135.gif 2023-12-21 427 Bytes
image137.gif 2023-12-21 278 Bytes
image132.png 2023-12-21 19.1 kB
image133.jpg 2023-12-21 21.8 kB
image131.jpg 2023-12-21 20.2 kB
image130.png 2023-12-21 18.5 kB
image125.jpg 2023-12-21 21.8 kB
image127.gif 2023-12-21 241 Bytes
image129.gif 2023-12-21 260 Bytes
image121.gif 2023-12-21 629 Bytes
image123.gif 2023-12-21 331 Bytes
image124.png 2023-12-21 19.4 kB
image117.jpg 2023-12-21 21.3 kB
image119.gif 2023-12-21 514 Bytes
image115.jpg 2023-12-21 22.3 kB
image116.png 2023-12-21 18.3 kB
image113.jpg 2023-12-21 22.5 kB
image114.png 2023-12-21 19.6 kB
image112.png 2023-12-21 20.0 kB
image110.png 2023-12-21 19.0 kB
image111.jpg 2023-12-21 21.0 kB
image108.png 2023-12-21 19.7 kB
image109.jpg 2023-12-21 21.4 kB
image107.jpg 2023-12-21 24.2 kB
image104.png 2023-12-21 19.8 kB
image105.jpg 2023-12-21 23.3 kB
image106.png 2023-12-21 20.0 kB
image102.png 2023-12-21 20.2 kB
image103.jpg 2023-12-21 23.8 kB
image099.jpg 2023-12-21 23.2 kB
image100.png 2023-12-21 19.0 kB
image101.jpg 2023-12-21 22.0 kB
image097.gif 2023-12-21 383 Bytes
image098.png 2023-12-21 19.8 kB
image094.png 2023-12-21 19.8 kB
image095.jpg 2023-12-21 25.0 kB
image091.gif 2023-12-21 818 Bytes
image093.gif 2023-12-21 258 Bytes
image089.gif 2023-12-21 1.4 kB
image086.png 2023-12-21 20.3 kB
image087.jpg 2023-12-21 25.9 kB
image084.png 2023-12-21 21.9 kB
image085.jpg 2023-12-21 29.9 kB
image083.jpg 2023-12-21 29.5 kB
image081.jpg 2023-12-21 3.0 kB
image082.png 2023-12-21 21.8 kB
image080.png 2023-12-21 979 Bytes
image077.jpg 2023-12-21 28.6 kB
image078.png 2023-12-21 16.7 kB
image079.jpg 2023-12-21 13.2 kB
image074.png 2023-12-21 1.5 kB
image075.jpg 2023-12-21 2.4 kB
image076.png 2023-12-21 21.1 kB
image069.png 2023-12-21 16.3 kB
image070.jpg 2023-12-21 13.5 kB
image071.png 2023-12-21 18.0 kB
image072.jpg 2023-12-21 11.9 kB
image073.gif 2023-12-21 2.7 kB
image067.png 2023-12-21 18.7 kB
image068.jpg 2023-12-21 22.9 kB
image066.jpg 2023-12-21 25.4 kB
image064.jpg 2023-12-21 444 Bytes
image065.png 2023-12-21 20.1 kB
image059.png 2023-12-21 20.9 kB
image061.png 2023-12-21 185 Bytes
image062.jpg 2023-12-21 450 Bytes
image063.png 2023-12-21 167 Bytes
image057.png 2023-12-21 20.7 kB
image058.jpg 2023-12-21 20.7 kB
image053.png 2023-12-21 2.6 kB
image054.jpg 2023-12-21 7.3 kB
image055.png 2023-12-21 19.5 kB
image056.jpg 2023-12-21 19.1 kB
image051.png 2023-12-21 6.8 kB
image052.jpg 2023-12-21 10.4 kB
image048.jpg 2023-12-21 6.7 kB
image049.png 2023-12-21 3.4 kB
image050.jpg 2023-12-21 5.8 kB
image045.png 2023-12-21 3.7 kB
image046.jpg 2023-12-21 6.7 kB
image047.png 2023-12-21 3.5 kB
image042.jpg 2023-12-21 3.6 kB
image043.png 2023-12-21 20.5 kB
image044.jpg 2023-12-21 19.8 kB
image039.png 2023-12-21 2.1 kB
image040.jpg 2023-12-21 4.2 kB
image041.png 2023-12-21 2.1 kB
image037.png 2023-12-21 21.2 kB
image038.jpg 2023-12-21 19.0 kB
image035.png 2023-12-21 19.2 kB
image036.jpg 2023-12-21 18.2 kB
image032.jpg 2023-12-21 15.2 kB
image033.png 2023-12-21 1.5 kB
image034.jpg 2023-12-21 2.0 kB
image031.png 2023-12-21 17.9 kB
image029.png 2023-12-21 21.6 kB
image030.jpg 2023-12-21 23.8 kB
image027.png 2023-12-21 21.6 kB
image028.jpg 2023-12-21 24.9 kB
image026.jpg 2023-12-21 25.9 kB
image024.jpg 2023-12-21 22.8 kB
image025.png 2023-12-21 22.5 kB
image023.png 2023-12-21 21.3 kB
image022.jpg 2023-12-21 20.0 kB
image018.jpg 2023-12-21 22.9 kB
image019.png 2023-12-21 19.7 kB
image020.jpg 2023-12-21 24.9 kB
image021.png 2023-12-21 19.3 kB
image015.png 2023-12-21 21.8 kB
image016.jpg 2023-12-21 20.0 kB
image017.png 2023-12-21 18.6 kB
image012.jpg 2023-12-21 5.7 kB
image013.png 2023-12-21 18.9 kB
image014.jpg 2023-12-21 17.9 kB
image009.png 2023-12-21 3.4 kB
image010.jpg 2023-12-21 3.4 kB
image011.png 2023-12-21 2.1 kB
image008.jpg 2023-12-21 14.1 kB
image004.jpg 2023-12-21 3.2 kB
image005.png 2023-12-21 9.0 kB
image006.jpg 2023-12-21 7.0 kB
image007.png 2023-12-21 20.3 kB
image003.png 2023-12-21 2.7 kB
oledata.mso 2023-12-21 1.1 MB
image002.jpg 2023-12-21 1.4 kB
image001.png 2023-12-21 1.9 kB
filelist.xml 2023-12-21 8.7 kB
header.htm 2023-12-21 3.2 kB
image327.wmz 2023-12-21 567 Bytes
image328.wmz 2023-12-21 581 Bytes
image329.wmz 2023-12-21 594 Bytes
image324.wmz 2023-12-21 585 Bytes
image325.wmz 2023-12-21 471 Bytes
image326.wmz 2023-12-21 806 Bytes
image322.wmz 2023-12-21 275 Bytes
image323.wmz 2023-12-21 344 Bytes
image319.wmz 2023-12-21 381 Bytes
image320.wmz 2023-12-21 510 Bytes
image321.wmz 2023-12-21 383 Bytes
image316.wmz 2023-12-21 315 Bytes
image317.wmz 2023-12-21 456 Bytes
image318.wmz 2023-12-21 757 Bytes
image311.wmz 2023-12-21 344 Bytes
image312.wmz 2023-12-21 432 Bytes
image313.wmz 2023-12-21 950 Bytes
image314.wmz 2023-12-21 1.1 kB
image315.wmz 2023-12-21 1.1 kB
image308.wmz 2023-12-21 249 Bytes
image309.wmz 2023-12-21 1.2 kB
image310.wmz 2023-12-21 1.1 kB
image306.wmz 2023-12-21 421 Bytes
image307.wmz 2023-12-21 581 Bytes
image305.wmz 2023-12-21 631 Bytes
image304.wmz 2023-12-21 541 Bytes
image300.wmz 2023-12-21 798 Bytes
image301.wmz 2023-12-21 786 Bytes
image302.wmz 2023-12-21 376 Bytes
image303.wmz 2023-12-21 529 Bytes
image298.wmz 2023-12-21 465 Bytes
image299.wmz 2023-12-21 464 Bytes
image294.wmz 2023-12-21 538 Bytes
image295.wmz 2023-12-21 915 Bytes
image296.wmz 2023-12-21 692 Bytes
image297.wmz 2023-12-21 840 Bytes
image290.wmz 2023-12-21 747 Bytes
image291.wmz 2023-12-21 480 Bytes
image292.wmz 2023-12-21 1.0 kB
image293.wmz 2023-12-21 1.0 kB
image288.wmz 2023-12-21 744 Bytes
image289.wmz 2023-12-21 737 Bytes
image284.wmz 2023-12-21 497 Bytes
image285.wmz 2023-12-21 618 Bytes
image286.wmz 2023-12-21 839 Bytes
image287.wmz 2023-12-21 741 Bytes
image280.wmz 2023-12-21 442 Bytes
image281.wmz 2023-12-21 633 Bytes
image282.wmz 2023-12-21 697 Bytes
image283.wmz 2023-12-21 562 Bytes
image277.wmz 2023-12-21 524 Bytes
image278.wmz 2023-12-21 521 Bytes
image279.wmz 2023-12-21 472 Bytes
image275.wmz 2023-12-21 523 Bytes
image276.wmz 2023-12-21 527 Bytes
image273.wmz 2023-12-21 528 Bytes
image274.wmz 2023-12-21 528 Bytes
image269.wmz 2023-12-21 484 Bytes
image270.wmz 2023-12-21 530 Bytes
image271.wmz 2023-12-21 442 Bytes
image272.wmz 2023-12-21 445 Bytes
image266.wmz 2023-12-21 614 Bytes
image267.wmz 2023-12-21 503 Bytes
image268.wmz 2023-12-21 487 Bytes
image263.wmz 2023-12-21 470 Bytes
image264.wmz 2023-12-21 501 Bytes
image265.wmz 2023-12-21 589 Bytes
image260.jpg 2023-12-21 23.7 kB
image261.wmz 2023-12-21 720 Bytes
image262.wmz 2023-12-21 620 Bytes
image259.gif 2023-12-21 1.6 kB
image255.gif 2023-12-21 699 Bytes
image257.gif 2023-12-21 736 Bytes
image249.gif 2023-12-21 1.2 kB
image251.gif 2023-12-21 328 Bytes
image253.gif 2023-12-21 869 Bytes
image244.gif 2023-12-21 862 Bytes
image246.gif 2023-12-21 307 Bytes
image236.gif 2023-12-21 1.1 kB
image238.gif 2023-12-21 2.5 kB
image240.gif 2023-12-21 718 Bytes
image242.gif 2023-12-21 1.5 kB
image234.gif 2023-12-21 359 Bytes
image230.gif 2023-12-21 2.3 kB
image232.gif 2023-12-21 2.7 kB
image228.gif 2023-12-21 1.9 kB
image222.gif 2023-12-21 2.5 kB
image224.gif 2023-12-21 352 Bytes
image226.gif 2023-12-21 829 Bytes
image218.gif 2023-12-21 207 Bytes
image220.gif 2023-12-21 2.7 kB
image214.gif 2023-12-21 543 Bytes
image216.gif 2023-12-21 1.2 kB
image212.gif 2023-12-21 1.4 kB
image206.gif 2023-12-21 375 Bytes
image208.gif 2023-12-21 1.2 kB
image210.gif 2023-12-21 1.3 kB
image202.gif 2023-12-21 819 Bytes
image204.gif 2023-12-21 978 Bytes
image194.gif 2023-12-21 501 Bytes
image196.gif 2023-12-21 1.1 kB
image198.gif 2023-12-21 228 Bytes
image200.gif 2023-12-21 237 Bytes
image190.gif 2023-12-21 321 Bytes
image192.gif 2023-12-21 1.6 kB
image188.gif 2023-12-21 2.1 kB
image180.gif 2023-12-21 942 Bytes
image182.gif 2023-12-21 965 Bytes
image184.gif 2023-12-21 227 Bytes
image186.gif 2023-12-21 2.1 kB
image172.gif 2023-12-21 534 Bytes
image174.gif 2023-12-21 1.0 kB
image176.gif 2023-12-21 965 Bytes
image178.gif 2023-12-21 943 Bytes
Totals: 262 Items   3.1 MB 0
PocketNumerix repository notes (2023-Dec-21):
This repo contains a suite of smartphone scale computational finance tools, their common installer, and some of the web technology (license key generation, Rijndael256 encryption/decryption) behind the online store.
The last time I looked at this code, documentation, web resources, etc. was in December 2009.  I’ve forgotten a lot of the outstanding issues, but a few ‘ToDo’ files sprinkled around may help.
StockMiner and OptionMiner are Windows desktop apps for testing Yahoo Finance scrape & parse. Those capabilities were integrated into NillaHedge.
WebEncodeDecode is a custom extension of a SquirrelCart web store that creates a BillOfMaterials file (with license keys encoded to the email address) that the store emails to the customer. The user would separately download PNMX_Installer, place the BOM file into the installer folder and run it.  Once launched, the installer would download and decrypt the encrypted {signed executable(s)} stored as .crp files in the public_html/Install_Process/Supplies folder, decrypt the ones called out in the BOM and install/register the license keys.
Inconveniently, I forgot how the public_html/Install_Process/mime/*.mime and public_html/Install_Process/cfg/*.cfg files factor into the BOM generation, encryption, and decryption processes, so it will take a little experimentation to recover how I was securing the intellectual property. Hopefully, Android/Google Play and IOS/Apple App Store have all of that institutionalized by now, so maybe superfluous and irrelevant now.  NillaHedge incorporated that same decryption to download from a cloud-resident cache of option chains (to minimize hits on the data source).
So, here’s the beef…
Application folders - BondManager, NillaHedge, StrategyExplorer, and YieldCurveFitter - contain sources (based on the Windows Mobile 5 SDK), Visual Studio 2005 project files, and sometimes revision/ToDo notes.  Migrating to the current Windows App SDK should be doable without horrific pain.  Going backwards to support 2002 and 2003 PocketPC is also possible (given that all four apps ran on PocketPCs before the advent of WM), but similarly not necessarily just a matter of recompiling for another target, due to API evolution/deprecation/revisions.  With those caveats, each application is buildable without any external code.  [Common sources should ideally be migrated to a shared folder.]
Smartphone screen sizes have grown since 2005. At the time, the burden of supporting multiple screen sizes was on developers; I haven’t checked to see if that has changed.  That’s an area where modifications will likely be needed.
Screen size constrains the number of buttons, text boxes, etc. that can be squeezed into the space available.  In the analysis of option spreads, you really hope to be able to handle four (to accommodate butterfly spreads).  2002/3 era PocketPC screen size (240x320 pixels) meant only three options could fit on screen in StrategyExplorer and NillaHedge’s HedgeExplorer.  When Windows Mobile 5 debuted with support for 480x640 screen sizes, it became possible to handle four options.  StrategyExplorer was upgraded to handle four, but NillaHedge’s HedgeExplorer was never upgraded to support butterfly spreads (composed of four options).  The changes needed to support a fourth option are relatively minor (obvious even) - that should be a goal.
All of the code was written prior to the availability of SQLite; NillaHedge and BondManager therefore store data in dense binary files, comprising a crude datastore, unique to each application.  The performance of these embedded ‘databases’ degrade linearly with database size because every ‘record’ is considered on any traversal (search).  Now that working RAM and CPU speeds are so much more accommodating, the smart move would be migrating those applications to SQLite or similar, so indexes can be added (or removed) virtually on a whim, instead of painstakingly woven into application layer code.
Options markets are more dynamic than bond markets, option contracts that were available yesterday might not be available tomorrow, and it wouldn’t be unusual to consider many dozens of options in a day, so the database is very likely to get polluted with contracts that have past their expiration date or are no longer being offered by market makers for other (risk/profitability) reasons.  Culling the local cache of dead and unused options is a ToDo for any reimagining of NillaHedge, better yet, a supporting tool that runs periodically to cull ‘dangling’ (with respect to markets) option definitions when NH doesn’t have the data store locked.  NH tracks the user’s buy/sell transactions so portfolio value can be calculated anytime (based on issue/contract prices in the definitions) and end-of-year tax documentation, so you can only purge the options cache if the user never bought any it.  That’s going to be another opportunity for improvement and could likewise be implemented as a supporting tool that periodically checks market prices and updates the local definitions.
In this (feasibility) implementation, option chains were scraped from Yahoo Finance, but Yahoo is a fast-moving target for a scraper/parser. You will need an alternate source of option chain data or a much smarter HTML parser than used here.
Each application is a computational silo independent of the others, except that YieldCurveFitter writes its last computed RiskFreeRate (RFR) to the registry (every time the value changes) and NillaHedge grabs that ‘published’ value whenever an analysis tool dialog is (re)opened.
Run time footprints are small; only NillaHedge is likely to use more than 1MB of RAM at run-time. 
The public_html folder contains the vestiges of the pnmx.com (and PocketNumerix.com) website including overview marketing materials (at top level) and detailed documentation with example screenshots in the Documentation subfolder.
 - Mike Landis
Source: ReadMe.txt, updated 2023-12-21