{"_id":"@asklora-hk/droid-web-rpc","_rev":"8-4ae1073d6d30a2155d5ec54daae4c18a","time":{"created":"2022-02-24T04:48:04.508Z","1.0.1":"2022-02-24T04:05:46.092Z","modified":"2022-04-04T15:47:18.288Z","1.0.2":"2022-02-24T04:32:18.542Z","1.0.3":"2022-02-24T04:48:04.733Z","1.0.4":"2022-03-28T06:21:22.128Z"},"name":"@asklora-hk/droid-web-rpc","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.3":{"name":"@asklora-hk/droid-web-rpc","version":"1.0.3","description":"for droid rpc frontend","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/asklora/droid-web-js.git#v-1.0.3"},"keywords":["asklora","asklora droid","droid rpc js"],"author":{"name":"asklora"},"license":"MIT","bugs":{"url":"https://github.com/asklora/droid-web-js/issues"},"homepage":"https://github.com/asklora/droid-web-js#readme","dependencies":{"google-protobuf":"^3.19.4","grpc-web":"^1.3.1"},"gitHead":"cf91d8b308879c47ddf212869d9688083cdc435e","_id":"@asklora-hk/droid-web-rpc@1.0.3","_nodeVersion":"16.6.1","_npmVersion":"7.20.3","dist":{"integrity":"sha512-rQPRnKWnkBoLEp9ILQtMxcVjDOgITbf8EOPChZbwhxhGgQzR2oLF87sv/TU0vSMXA0/HXOhIraDr0u6TTqzw/Q==","shasum":"6a77d0b85e7fb6a7748a12368886401a00485937","tarball":"https://registry.npmjs.org/@asklora-hk/droid-web-rpc/-/droid-web-rpc-1.0.3.tgz","fileCount":6,"unpackedSize":75041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiFw4EACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpdwQ//awITUIlarWKCfHcKSJiP9sr2+lkNw8CwxEHjAQZin6TS23Gf\r\nE7+9gCwysS2IxkG5BHXdvPs7rc+pt2cqqYVDhciW8iQm0D0wjRNrWai5mbYy\r\nEjWj+qbUIYamNDahAyDL/Ssb2kEmnRUx3YX3KILWU8g8MDt7ee5381O8MJpp\r\nI9W95VA7ffIvjbetwqnt7U1ETPFXk0jMTQy08D9ltA+OzQ5WITuX6vm16Ayz\r\ncuJR0RscRgJMs1bBjN49s6VKRLKF7lgxfhGpQix0ZF++0n1l34x7RXTyKsTQ\r\nX3fEH3HGdn25DbkqDBTqK+ZSrLebPpbtfhEsvlXkYiaHtivbd1A9D7BKkKLp\r\nmfOdLZ/A88Hk7cgclo3j98PHcxorYgHox7FJO/JbHK2hmbsg0ZGyXehQjJLA\r\ne26qGjkzmQiohJ+I1rVGa00/VU8+iugx54MEEviKXqK2JorpykRcCfzjFiXG\r\nxcppw5l7WIIvOQscMnQQh2zOnUxvWv+bka7iyYZi6XftCrvnP7BqN9DnP6Vh\r\nIZvPdRFEDCnycawkrjqcLg/mJXwwauiUPsntVaNEsA1TsPV4rrNmL3ozpuwf\r\n57ptymi44L5Q+zVuev+jKOf94K300zRgG8eh8DcRaB73ivYUfkH7e1UIZMFj\r\nxHw/Pi4F9XF7tYwxNbz4A6LKbju1HXDYESQ=\r\n=BEw0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHPV6PxovOfYWswIu3Vy6miIfvHcYdo9/B/zwUcoRRWQAiEA7ay1kYev2IKZLQ+L0rpi6YyImQc3udQnuhAeNQ5Ee4I="}]},"_npmUser":{"name":"asklora","email":"asklora@loratechai.com"},"directories":{},"maintainers":[{"name":"asklora","email":"asklora@loratechai.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/droid-web-rpc_1.0.3_1645678084556_0.16931001168098314"},"_hasShrinkwrap":false},"1.0.4":{"name":"@asklora-hk/droid-web-rpc","version":"1.0.4","description":"for droid rpc frontend","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/asklora/droid-web-js.git#v-1.0.4"},"keywords":["asklora","asklora droid","droid rpc js"],"author":{"name":"asklora"},"license":"MIT","bugs":{"url":"https://github.com/asklora/droid-web-js/issues"},"homepage":"https://github.com/asklora/droid-web-js#readme","dependencies":{"google-protobuf":"^3.19.4","grpc-web":"^1.3.1"},"gitHead":"2b7719eaaab65296313db95ae7c7708722abe6df","_id":"@asklora-hk/droid-web-rpc@1.0.4","_nodeVersion":"16.6.1","_npmVersion":"7.20.3","dist":{"integrity":"sha512-gQWvF4SscuCXgUN0W610bsbSm5CnqCIUrCItO0BNWWvl1w9WqwvnqELxu+yJbyui+Ag2vRW9ivePYL32NQ4QoA==","shasum":"434e4ac5d12a727d222be685817459f26125b6d3","tarball":"https://registry.npmjs.org/@asklora-hk/droid-web-rpc/-/droid-web-rpc-1.0.4.tgz","fileCount":6,"unpackedSize":75102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQVPiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpiKxAAjnhkFb7kEM0FGYcxvzQoZX7qMtVlBIgKEGwGjleSKVpb+FV/\r\n69loEUrWQ+FcVaQBYsqMuMZ/+jVy23hJgIP1Qy17pvaSthtJGPTk+0vRNlg+\r\n2IVbhy1sHEuc0oDNlRUqXh7gSBwZDLSeRAVFCZ6GfOwFbPBkGLKZOXx0u31e\r\noacYO3HSjh4P2u60DAzV1dJ2f6L3BC2B6KKw1VbapKFOpQlDyi/+OLNRxbgQ\r\ngYR9i5Yeahnww49976qcY90tXSnUKtqE9Ik9YJBWnzbRiPVd1syBmEzFFCW5\r\nsA6K+K27XNHLvbJpLVRZcvcRCJpBr0/AayvJrlJIXK/SRF19mhvJqNxzaCSy\r\nN5pNzEyMQqp3GNspd4OgORz0R5Zso6huvbRFlluygmwFKFdQD1hl6hYjHvBw\r\n3YtjLDrTqIoNaxiI/Wof+wi7r3mzxdnwMb5JQcVongubp3fRHNKHS3K0Ad45\r\neKMwv4G45v0K7cQQTXvA0ByYDta0eOY928ISZi8L1EEuc7t07WLRMXsJY3ys\r\nHHRMTZc+FN3VqnW5jzk/qhIdamzr0lzM5G6fHX3qObMZzK95D6tmrqC8Qd5q\r\nEzvQr3kw8V8EqewdSfNKDPheO8Kw6aDtSNFWSyVDYxVXJto+QZpsjUhh27LL\r\nVqeujlxJICWWvzIrnG8EJAsm5fBoisixU80=\r\n=VA9E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFWIxYclzkHfeZAJWMNuSF+1p5Y+jZt+bpdndNfWnb+3AiEAlxMhzZrvSbQRdMYI1RS8OwDwXJBQJTK/yA507AkRBgY="}]},"_npmUser":{"name":"asklora","email":"asklora@loratechai.com"},"directories":{},"maintainers":[{"name":"asklora","email":"asklora@loratechai.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/droid-web-rpc_1.0.4_1648448481986_0.279916865760524"},"_hasShrinkwrap":false}},"maintainers":[{"name":"asklora","email":"asklora@loratechai.com"}],"description":"for droid rpc frontend","homepage":"https://github.com/asklora/droid-web-js#readme","keywords":["asklora","asklora droid","droid rpc js"],"repository":{"type":"git","url":"git+https://github.com/asklora/droid-web-js.git#v-1.0.4"},"author":{"name":"asklora"},"bugs":{"url":"https://github.com/asklora/droid-web-js/issues"},"license":"MIT","readme":"# droid-web-rpc\n\nA gRPC client instance as an interface for DROIDv3 server.\n\n## Installation\n\nopen your project folder and type:\n```\nnpm install droid-web-rpc\n```\n\n## Usage\n\nThis is an example on how to use the client\n\n```js\n// we import the client\nimport DroidClientWeb from \"droid-web-rpc\";\n\n// initialise the client\n// replace `localhost` with existing droidv3 server url\nconst client = new DroidClientWeb('localhost',50065);\n\n// prepare the payload\nlet payload ={\n    ticker:\"0005.HK\",\n    spot_date: \"2021-01-01\",\n    investment_amount:100000,\n    price:156.5,\n    bot_id:\"CLASSIC_classic_015384\",\n    margin:1,\n    fraction:false\n}\n\n// and send it through the client instance\nclient.createBot(payload,(res) =>{\n    console.log(res);\n});\n\n```\n\n## Parametres\n- client\n  \n  ```js\n  /**\n   * @constructor\n   * @param {String} url - DROIDv3 server URL\n   * @param {Number} port - DROIDv3 server port \n   */\n  ```\n\n- payload:\n\n  - Create\n\n    ```js\n    /**\n     * @param {Object} payload - Payload to be sent\n     * @param {String} payload.ticker - Ticker name\n     * @param {String} payload.spot_date - Spot date\n     * @param {Number} payload.investmen_amount - Amount to invest\n     * @param {Number} payload.price - The price the investment is put in\n     * @param {String} payload.bot_id - The bot id to be used\n     * @param {Number} payload.margin - Margin used in the order\n     * @param {Boolean} payload.fraction - Whether to allow fraction in share number\n     */\n    ```\n  \n  - Hedge\n\n    ```js\n    /**\n     * @param {String} bot_id\n     * @param {String} ric\n     * @param {Number} current_price\n     * @param {Number} entry_price\n     * @param {Number} last_share_num\n     * @param {Number} last_hedge_delta\n     * @param {Number} investment_amount\n     * @param {Number} bot_cash_balance\n     * @param {Number} stop_loss_price\n     * @param {Number} take_profit_price\n     * @param {String} expiry - date in format yyyy-mm-dd\n     * @param {Number} [strike]\n     * @param {Number} [strike_2]\n     * @param {Number} [margin]\n     * @param {Boolean} [fraction]\n     * @param {Number} [option_price]\n     * @param {Number} [barrier]\n     * @param {Number} [current_low_price]\n     * @param {Number} [current_high_price]\n     * @param {Number} [ask_price]\n     * @param {Number} [bid_price]\n     * @param {String} [trading_day] - date in format yyyy-mm-dd\n     */\n    ```\n\n  - Stop\n\n    ```js\n    /**\n     * @param {String} bot_id\n     * @param {String} ric\n     * @param {Number} current_price\n     * @param {Number} entry_price\n     * @param {Number} last_share_num\n     * @param {Number} last_hedge_delta\n     * @param {Number} investment_amount\n     * @param {Number} bot_cash_balance\n     * @param {Number} stop_loss_price\n     * @param {Number} take_profit_price\n     * @param {String} expiry - date in format yyyy-mm-dd\n     * @param {Number} [strike]\n     * @param {Number} [strike_2]\n     * @param {Number} [margin]\n     * @param {Boolean} [fraction]\n     * @param {Number} [option_price]\n     * @param {Number} [barrier]\n     * @param {Number} [current_low_price]\n     * @param {Number} [current_high_price]\n     * @param {Number} [ask_price]\n     * @param {Number} [bid_price]\n     * @param {String} [trading_day] - date in format yyyy-mm-dd\n     */\n    ```\n## Client class methods\n\nAll of these methods has the same parametres:\n\n```js\n/**\n * @param {Object} payload - the payload as described above\n * @param {createCallback|hedgeCallback|stopCallback} callback - the callback function\n```\n\n- `createBot` - to create position and start the bot\n  \n  returns:\n\n  ```js\n  /**\n   * @callback createCallback\n   * @param {String} ticker\n   * @param {Number} share_num\n   * @param {String} expiry\n   * @param {String} spot_date\n   * @param {String} created\n   * @param {Number} total_bot_share_num\n   * @param {Number} max_loss_pct\n   * @param {Number} max_loss_price\n   * @param {Number} max_loss_amount\n   * @param {Number} target_profit_pct\n   * @param {Number} target_profit_price\n   * @param {Number} target_profit_amount\n   * @param {Number} entry_price\n   * @param {Number} margin\n   * @param {String} bot_id\n   * @param {Boolean} fraction\n   * @param {String} side\n   * @param {String} status\n   * @param {Number} vol\n   * @param {Number} classic_vol\n   * @param {Number} strike_2\n   * @param {Number} barrier\n   * @param {Number} delta\n   * @param {Number} option_price\n   * @param {Number} q\n   * @param {Number} r\n   * @param {Number} strike\n   * @param {Number} t\n   * @param {Number} v1\n   * @param {Number} v2\n   */\n  ```\n\n- `hedgeBot` - create a hedge position using payload params\n  \n  returns\n\n  ```js\n  /**\n   * @callback hedgeCallback\n   * @param {Number} entry_price\n   * @param {Number} current_price\n   * @param {Number} share_num\n   * @param {Number} total_bot_share_num\n   * @param {Number} last_hedge_delta\n   * @param {Number} share_change\n   * @param {String} side\n   * @param {String} status\n   * @param {Number} strike_2\n   * @param {Number} barrier\n   * @param {Number} delta\n   * @param {Number} option_price\n   * @param {Number} q\n   * @param {Number} r\n   * @param {Number} strike\n   * @param {Number} t\n   * @param {Number} v1\n   * @param {Number} v2\n   */\n  ```\n\n- `stopBot` - stop the bot and close the position\n  \n  returns:\n\n  ```js\n  /**\n   * @callback stopCallback\n   * @param {Number} entry_price\n   * @param {Number} current_price\n   * @param {Number} share_num\n   * @param {Number} total_bot_share_num\n   * @param {Number} last_hedge_delta\n   * @param {Number} share_change\n   * @param {String} side\n   * @param {String} status\n   * @param {Number} strike_2\n   * @param {Number} barrier\n   * @param {Number} delta\n   * @param {Number} option_price\n   * @param {Number} q\n   * @param {Number} r\n   * @param {Number} strike\n   * @param {Number} t\n   * @param {Number} v1\n   * @param {Number} v2\n   */\n  ```\n\n","readmeFilename":"README.md"}