eNGame


NameeNGame JSON
Version 0.0.4 PyPI version JSON
download
home_pageNone
SummaryA tool to help you pick the optimal securities for Norbert's Gambit
upload_time2024-10-09 22:11:29
maintainerNone
docs_urlNone
authorDaniel Lenski
requires_python<4.0,>=3.9
licenseGPLv3 or later
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # eNGame

A tool to help you pick the optimal securities to convert between US and Canadian currency using Norbert's Gambit,
based on near-realtime data obtained from Yahoo Finance.

- Forum thread: https://www.financialwisdomforum.org/forum/viewtopic.php?t=198
- Wiki explainer: https://www.finiki.org/wiki/Norbert%27s_gambit
- Forbes article: https://www.forbes.com/advisor/ca/investing/what-is-norberts-gambit/

# Example

My brokerage charges me commissions of US\$15.00 + US\$0.01/share to buy US\$ securities,
and a flat CA\$8.00 to sell CA\$ securities.

I can execute both of the trades near-instantaneously, [without
needing to call or message my broker to "journal" shares from one currency to the other](https://www.finiki.org/wiki/Norbert%27s_gambit#An_example:~:text=you%20usually%20must%20request%20that%20the%20broker%20journal%20shares%20from%20the%20long%20side%20to%20cover%20the%20short%20on%20settlement%20date%20two%20business%20days%20(T%20%2B%202)%20later.%20This%20usually%20requires%20a%20phone%20call%20to%20the%20broker.) BMO InvestorLine
is an example of a brokerage where [no journaling step is required](https://www.reddit.com/r/PersonalFinanceCanada/comments/ya3bwh.

I want to convert US\$50,000 to CA\$. Right now, the mid-market exchange rate is about 1.3512 CAD/USD.

What are the 5 best
[interlisted CA\$/US\$ stocks or ETFs](https://www.canadianmoneyforum.com/threads/dual-listed-etfs-tsx-nyse.135364/post-1972456)
to use to do this conversion right now?

Engame can show you the best options. Note that the three best options right now would get you an effective exchange rate
that's _actually slightly better than_ the mid-market exchange rate, _assuming that you execute both sides of the trade near-instantaneously
at the stated bid/ask prices_:

```
$ engame USD 50000 -v -L 5 -S '15.00 + 0.01 * shares' -D '8.00'
```
![Screenshot](screenshot.png)

# Details

Run `engame --help` for more details.

# TODO

Configuration file for preferred symbols and commission structure?

Automatic detection of some of the common [pitfalls and problems](https://www.finiki.org/wiki/Norbert%27s_gambit#Pitfalls_and_problems),
including ex-dividend dates and differing market holidays on US and Canadian markets.

# Disclaimers

1. Do not use this if you don't understand how Norbert's Gambit works.
2. I take no responsibility for the accuracy or the timeliness of the stock/ETF/currency data.
3. I take no responsibility for the correctness of the calculations.
4. Without a realtime data source for [Level II quotes](https://www.investopedia.com/articles/trading/06/level2quotes.asp#toc-what-is-level-ii),
   we cannot be sure that there is sufficient market depth to complete both sides of the trade at the expected prices. Limit orders
   cannot protect you here, because _both sides_ of the trade need to complete quickly in order to achieve the desired
   currency-conversion outcome.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "eNGame",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "Daniel Lenski",
    "author_email": "dlenski@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/73/a1/2c0731cbd8c1e7366b76f614fe3462faf2812f863c8d25f955ca741a664d/engame-0.0.4.tar.gz",
    "platform": null,
    "description": "# eNGame\n\nA tool to help you pick the optimal securities to convert between US and Canadian currency using Norbert's Gambit,\nbased on near-realtime data obtained from Yahoo Finance.\n\n- Forum thread: https://www.financialwisdomforum.org/forum/viewtopic.php?t=198\n- Wiki explainer: https://www.finiki.org/wiki/Norbert%27s_gambit\n- Forbes article: https://www.forbes.com/advisor/ca/investing/what-is-norberts-gambit/\n\n# Example\n\nMy brokerage charges me commissions of US\\$15.00 + US\\$0.01/share to buy US\\$ securities,\nand a flat CA\\$8.00 to sell CA\\$ securities.\n\nI can execute both of the trades near-instantaneously, [without\nneeding to call or message my broker to \"journal\" shares from one currency to the other](https://www.finiki.org/wiki/Norbert%27s_gambit#An_example:~:text=you%20usually%20must%20request%20that%20the%20broker%20journal%20shares%20from%20the%20long%20side%20to%20cover%20the%20short%20on%20settlement%20date%20two%20business%20days%20(T%20%2B%202)%20later.%20This%20usually%20requires%20a%20phone%20call%20to%20the%20broker.) BMO InvestorLine\nis an example of a brokerage where [no journaling step is required](https://www.reddit.com/r/PersonalFinanceCanada/comments/ya3bwh.\n\nI want to convert US\\$50,000 to CA\\$. Right now, the mid-market exchange rate is about 1.3512 CAD/USD.\n\nWhat are the 5 best\n[interlisted CA\\$/US\\$ stocks or ETFs](https://www.canadianmoneyforum.com/threads/dual-listed-etfs-tsx-nyse.135364/post-1972456)\nto use to do this conversion right now?\n\nEngame can show you the best options. Note that the three best options right now would get you an effective exchange rate\nthat's _actually slightly better than_ the mid-market exchange rate, _assuming that you execute both sides of the trade near-instantaneously\nat the stated bid/ask prices_:\n\n```\n$ engame USD 50000 -v -L 5 -S '15.00 + 0.01 * shares' -D '8.00'\n```\n![Screenshot](screenshot.png)\n\n# Details\n\nRun `engame --help` for more details.\n\n# TODO\n\nConfiguration file for preferred symbols and commission structure?\n\nAutomatic detection of some of the common [pitfalls and problems](https://www.finiki.org/wiki/Norbert%27s_gambit#Pitfalls_and_problems),\nincluding ex-dividend dates and differing market holidays on US and Canadian markets.\n\n# Disclaimers\n\n1. Do not use this if you don't understand how Norbert's Gambit works.\n2. I take no responsibility for the accuracy or the timeliness of the stock/ETF/currency data.\n3. I take no responsibility for the correctness of the calculations.\n4. Without a realtime data source for [Level II quotes](https://www.investopedia.com/articles/trading/06/level2quotes.asp#toc-what-is-level-ii),\n   we cannot be sure that there is sufficient market depth to complete both sides of the trade at the expected prices. Limit orders\n   cannot protect you here, because _both sides_ of the trade need to complete quickly in order to achieve the desired\n   currency-conversion outcome.\n",
    "bugtrack_url": null,
    "license": "GPLv3 or later",
    "summary": "A tool to help you pick the optimal securities for Norbert's Gambit",
    "version": "0.0.4",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8284714551d989353a70d5efdaa9035b48c66cae1996d2a7ea0389b66cb9379a",
                "md5": "205efa3f547e1b3f99a51a5fd028d20b",
                "sha256": "882b0cbe04b1533d00e820c0f6f378e63c8bcbda2600abe96badec13b6c804d9"
            },
            "downloads": -1,
            "filename": "engame-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "205efa3f547e1b3f99a51a5fd028d20b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 20989,
            "upload_time": "2024-10-09T22:11:27",
            "upload_time_iso_8601": "2024-10-09T22:11:27.195369Z",
            "url": "https://files.pythonhosted.org/packages/82/84/714551d989353a70d5efdaa9035b48c66cae1996d2a7ea0389b66cb9379a/engame-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "73a12c0731cbd8c1e7366b76f614fe3462faf2812f863c8d25f955ca741a664d",
                "md5": "9a25ef23e2cfee7fc1604af0c69bbcb9",
                "sha256": "be2044bf0b409357e6c412cd6f02e069ab2d9cedc1ce319ac7ec47a1481ae3fa"
            },
            "downloads": -1,
            "filename": "engame-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "9a25ef23e2cfee7fc1604af0c69bbcb9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 19663,
            "upload_time": "2024-10-09T22:11:29",
            "upload_time_iso_8601": "2024-10-09T22:11:29.034644Z",
            "url": "https://files.pythonhosted.org/packages/73/a1/2c0731cbd8c1e7366b76f614fe3462faf2812f863c8d25f955ca741a664d/engame-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-09 22:11:29",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "engame"
}
        
Elapsed time: 0.37511s