问题标签 [etrade-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
api - ETrade API 无人值守认证
背景
ETrade 身份验证系统让我创建一个 RequestToken,然后执行一个授权 URL,这将打开一个 ETrade 页面。用户登录以授权其帐户上的活动。他们会收到一个密码,然后将其输入我的应用程序。我用 RequestToken 和 Pin 调用 ExchangeRequestTokenForAccessToken。然后我们就出发了。
问题
问题是我正在创建一个在后台连续运行的服务。不会有任何用户登录。相反,我不会进行任何交易。只是处理数字,寻找符合某些标准的股票。我不知道如何让它在无人看管的情况下工作。
谢谢,布拉德。
java - 如何使用 ETrade API 获取 OptionQuote
我正在尝试使用他们的 Java SDK 从 Etrade 获得期权报价。我目前正在设置使用沙箱。
这是代码:
当我调用 m.getQuote 时出现错误。错误是
我尝试过使用 html (org.apache.commons.lang.StringEscapeUtils.escapeHtml) 转义但没有成功。
有什么想法有什么问题吗?
python - 使用 requests-oauthlib 修改授权 URL 格式
我正在使用requests-oauthlib
ETrade API 进行身份验证。它要求授权 URL 具有以下格式:
但是,当我调用 时authorization_url()
,它使用oauth_token
而不是token
该参数。目前我正在使用format()
自己格式化 URL,但现在我同时拥有token
和oauth_token
参数。这有效,但完全不优雅。有什么方法可以修改authorization_url()
允许我需要的 URL 格式的行为吗?
为了完整起见,这是我的代码:
python - 使用 Python 为 ETrade API 生成 oauth_signature
E*Trade API 允许您使用 RESTful 登录网站并操作帐户或检索报价信息。虽然我无法生成与位于https://us.etrade.com/ctnt/dev-portal/getContent?contentId=306a9d46-58c2-4cac-85f6-7717aea056bd底部的“实践问题”相匹配的 oauth_signature
简单的 HMAC-SMA1 算法已在下面进行了编码,并从此处https://oauth.net/core/1.0a/#sig_base_example复制了 oauth core 1.0a 签名值。虽然我无法获得 E*Trade 签名值来重现。
该函数应该产生“%2FXiv96DzZabnUG2bzPZIH2RARHM%3D”,但我还没有。有没有人计算出 E*Trade API 的散列?
我知道 etradepy.py,它是一个不错的软件包,但有点过时,与当前的 E*Trade 网站不匹配。
python - 使用 Python3 的 E*Trade API 的 get_quote 中的标头和 oauth
授权我的应用程序后,我通过标头传递 oauth 凭据来请求访问令牌。通过此代码生成签名和标头;
产生这些标题;
请求返回;
通过用新的 token_secret 替换旧的 token_secret 来更新密钥。基础字符串也使用新的令牌值以及新的时间戳和随机数进行更新。这些新值用于生成新签名。
将标题更改为;
并发出 get_quote 请求;
但是,不是引用,而是返回一个 oauth 问题。
我尝试在 url 中传递信息,但它返回相同的错误。请求中是否存在程序错误?是否应该在不更新签名的情况下使用新令牌?
(已更改张贴凭证以保护无辜者)
.net - 我得到的 signature_base 正确吗?
我现在可以正确登录并获得密码,所以我仍然将其视为进步。
有人可以检查我正在加密的字符串吗?
“错误请求”还有什么含义?
首先,我得到了
生成这个签名库 的 AccessToken
'GET&https%3A%2F%2Fetws.etrade.com%2Foauth%2Frequest_token&oauth_callback%3Doob%26oauth_consumer_key%3Dc5164d11e1a0a23901d75e7aa1993085%26oauth_nonce%3D565e334127934d65aa4375d0cd2770a1%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1502146468%26oauth_version%3D1.0'
然后它调用执行此行的 SignContext
生成此签名库
'GET&https%3A%2F%2Fetws.etrade.com%2Foauth%2Frequest_token&oauth_callback%3Doob%26oauth_consumer_key%3Dc5164d11e1a0a23901d75e7aa1993085%26oauth_nonce%3D565e334127934d65aa4375d0cd2770a1%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1502146468%26oauth_version%3D1.0'
然后它得到引脚。
然后它调用生成此签名库的 ExchangeRequestTokenForAccessToken
'GET&https%3A%2F%2Fetws.etrade.com%2Foauth%2Faccess_token&oauth_consumer_key%3Dc5164d11e1a0a23901d75e7aa1993085%26oauth_nonce%3De63bba497c24492ab0d60366526c781a%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1502146597%26oauth_token%3D6WHEWvcaVYx59bRxzic%252FXJGGYrz4TGdH5uvlfNCdkOY%253D%26oauth_verifier%3DNHD85%26oauth_version%3D1.0 '
然后它使用这个签名库再次对上下文进行签名
'GET&https%3A%2F%2Fetws.etrade.com%2Foauth%2Faccess_token&oauth_consumer_key%3Dc5164d11e1a0a23901d75e7aa1993085%26oauth_nonce%3De63bba497c24492ab0d60366526c781a%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1502146597%26oauth_token%3D6WHEWvcaVYx59bRxzic%252FXJGGYrz4TGdH5uvlfNCdkOY%253D%26oauth_verifier%3DNHD85%26oauth_version%3D1.0 '
然后我尝试使用此签名库 获取 A 的报价
'GET&https%3A%2F%2Fetws.etrade.com%2Fmarket%2Frest%2Fquote%2FA&detailFlag%3DALL%26oauth_consumer_key%3Dc5164d11e1a0a23901d75e7aa1993085%26oauth_nonce%3D4a3640c5fc5c40b490c475a2e6c0228e%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1502146666%26oauth_token%3D77vmxV1reXdgDJewWspVKmOduwdDsZGVvLfZBUtBSms%253D%26oauth_version%3D1 .0'
检索报价失败并返回:
8/7/2017 5:57:46 PM - Header Start 8/7/2017 5:58:18 PM - Authorization: OAuth
oauth_token='77xmvV1reXdgDJewWspVKmOduwdDsZGVvLfZUBtBSms%3D',oauth_nonce='4a3640c5fc5c40b490c475a2e6c0228e',oauth_consumer_key='c5164d11e1a0a23901d75e7aa1993085',oauth_signature_method ='HMAC-SHA1',oauth_timestamp='1502146666',oauth_version='1.0',oauth_signature='2OihTU%2BphJjPuvp82lR8Z2QhE24%3D' 2017 年 8 月 7 日下午 5:58:18 - 标题结束 2017 年 8 月 7 日 5:58 :18 PM - System.Net.WebException:远程服务器返回错误:(400)错误请求。在 System.Net.HttpWebRequest.GetResponse()
at EquityMetrics.Retrieve.ETradeModel.GetResponse(OAuthSession session, String url) in C:{path}\Model\ETradeModel.cs:line 94
8/7/2017 5:58:18 PM - 编译指示:
nnCoection:关闭传输编码:分块缓存控制:无缓存,无存储内容类型:应用程序/xml 日期:星期一,2017 年 8 月 7 日 22:58:18 GMT 服务器:Apache
python - ETrade OAuth 回调 URL
我正在编写一个针对 ETrade API 的应用程序。我正在按照本指南将我的应用程序授权给我的帐户。我可以成功获取请求令牌和授权 URL。目前,我打印 URL 并将其复制/粘贴到我的浏览器中。这需要将验证码复制/粘贴到我的应用程序中。我宁愿以编程方式打开 URL 并使用回调来接收此代码。
该应用程序旨在在本地运行,而不是从公共 Web 服务器运行。什么是合适的回调 URL?我可以使用127.0.0.1
orlocalhost
吗?如果是这样,我如何接收消费者密钥?我需要在localhost
HTTP 服务器内部接受 HTTP 请求吗?
etrade-api - placechangeequityorder 导致“现有未结订单”错误
我使用https://etws.etrade.com/order/rest/placeequityorder成功向 E*Trade 提交了股票订单:
订单由 E*Trade 确认:
然后我尝试使用https://etws.etrade.com/order/rest/placechangeequityorder更新限价:
但是更改被拒绝
我尝试包括和不包括clientOrderId,它没有任何区别。我要疯了,因为同一代码在当天早些时候运行良好,然后就再也没有运行过。
如果您能够使用 E Trade API 提交对订单的更改,请告诉我。E Trade API 论坛似乎消失了 :(
trading - 如何使用 E*Trade API 下 OCO 订单
是否可以从 E*Trade Equity API 放置 OCO(一个取消另一个)?
在这里,它在下达股票订单下列出了这些订单类型
https://us.etrade.com/ctnt/dev-portal/getDetail?contentId=99c70918-5477-486f-92a7-af93d21e8702
我没有看到一个取消其他。
但是,在 List Orders API 中,我看到了有关 OCO 订单的信息。
https://us.etrade.com/ctnt/dev-portal/getDetail?contentUri=V0_Documentation-OrderAPI-ListOrders
java - 获得(有效的)电子贸易API访问令牌后如何解决401?
我一直在关注 E*Trade 开发人员网站上过时且有限的文档,并在其他一些堆栈溢出帖子的帮助下。
我很确定我已经检索到了一个很好的访问令牌和秘密。我一直在关注他们的片段
我也尝试过:
在所有情况下,它都会返回一个 401 代码和一条消息<Error> message>Unauthorized request</message></Error>
这是电子贸易端的东西吗?或者我对他们的片段的实现?我已经联系了 E-Trade,但我想我会在这里发帖,希望能找到解决办法。