标签: trading

在R中创建交易信号

我正在构建一个交易策略,我被困在两个关键领域.当使用Stoch和MACD时quantmod,我试图创建一个信号,当慢速随机交叉快速随机(1),反之亦然(-1),并在(0)之间平坦.除了列名MACD和Signal之外,MACD代码是相同的.最后,当所有三个信号等于1,-1,0时,我试图合并三个信号以创建主信号.

library(quantmod)

####################
## BOLINGER BANDS ##
####################

getSymbols("SPY", src="yahoo", from="2013-01-01", to="2015-05-01")
x <- na.omit(merge(SPY, BBands(Cl(SPY))))

x$sig <- NA

# Flat where Close crossed the mavg
x$sig[c(FALSE, diff(sign(Cl(x) - x$mavg), na.pad=FALSE) != 0)] <- 0
x$sig[Cl(x) > x$up] <- -1 # short when Close is above up
x$sig[Cl(x) < x$dn] <- 1 # long when Close is below dn
x$sig[1] <- 0 # flat on the first day
x$sig[nrow(x)] <- 0 # flat on the last day

# …
Run Code Online (Sandbox Code Playgroud)

r trading quantmod

9
推荐指数
1
解决办法
2088
查看次数

币安“事件时间”与“交易时间”

我正在查看 Binance Websocket Stream 并有一个关于事件时间和交易时间的问题。如果这是原始交易信息,“交易”怎么会有 2 个不同的时间?什么是“活动时间”?

来自 github API 文档:

贸易流

贸易流推送原始贸易信息;每笔交易都有一个独特的买家和卖家。

流名称:@trade

有效载荷:

{
  "e": "trade",     // Event type
  "E": 123456789,   // Event time
  "s": "BNBBTC",    // Symbol
  "t": 12345,       // Trade ID
  "p": "0.001",     // Price
  "q": "100",       // Quantity
  "b": 88,          // Buyer order Id
  "a": 50,          // Seller order Id
  "T": 123456785,   // Trade time
  "m": true,        // Is the buyer the market maker?
  "M": true         // Ignore.
}
Run Code Online (Sandbox Code Playgroud)

api trading binance

8
推荐指数
1
解决办法
1558
查看次数

为什么我对 TDA 的 API 的 API 调用没有返回刷新令牌?

所以我按照这里的步骤来写信:https : //www.reddit.com/r/algorading/comments/c81vzq/td_ameritrade_api_access_2019_guide/以获得刷新令牌,以便我可以在 C# 中构建客户端应用程序使用德美利证券的 API,进行特殊股票和期权筛选和交易。在遇到任何麻烦之前,我已经走到了尽头。

在获取我的刷新令牌的最后一步中,您填写了https://developer.tdameritrade.com/authentication/apis/post/token-0上的字段,它失败了,我只是在 HTTP 中得到以下响应401错误:

HTTP/1.1 401 Unauthorized
Access-Control-Allow-Headers: origin
Access-Control-Allow-Methods:
GET
Access-Control-Allow-Origin:
https://developer.tdameritrade.com
Access-Control-Max-Age: 3628800
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 31
Content-Security-Policy: frame-ancestors 'self'
Content-Type: application/json;charset=UTF-8
Date: Sat, 04 Apr 2020 16:07:04 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Application-Context: OAUTH_SERVICE:run:8080
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block
{
  "error": "invalid_grant"
}
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?我已经对每个步骤和文本框中的值(如下图)进行了两次和三次检查以接收刷新令牌,但我无法让它工作。根据指南的步骤,代码和客户端 ID 也已正确完成 - 我进行了两次和三次检查。

这不起作用!

我按照 Reddit 指南中的步骤以及 TDA Ameritrade 自己的链接指南进行操作,以确保我将正确的值放在正确的字段中,所以我真的不知道发生了什么。

任何帮助表示赞赏。

api trading oauth algorithmic-trading oauth-2.0

8
推荐指数
1
解决办法
2469
查看次数

如何在一个请求中从 Binance API 获取所有(或多个)对的历史 klines?

我有一个交易多对(30-40)的交易机器人。它使用之前的 5m 蜡烛作为价格输入。因此,我一一获得所有对的 5m 历史记录。目前,完整的周期大约需要 10 分钟,因此 500 万支蜡烛每 10 米更新一次,这是不好的。

关于如何加快速度的任何想法?

python api trading algorithmic-trading binance

8
推荐指数
1
解决办法
6589
查看次数

Python, Pandas datareader and Yahoo Error RemoteDataError: Unable to read URL

I am trying to download historical data from Yahoo using Pandas datareader. This is the code that I normally use:

import pandas_datareader as pdr
df = pdr.get_data_yahoo('SPY')
Run Code Online (Sandbox Code Playgroud)

However, I started receiving this error today: RemoteDataError: Unable to read URL: https://finance.yahoo.com/quote/SPY/history?period1=1467511200&period2=1625277599&interval=1d&frequency=1d&filter=history

Does anyone know how to solve it?

Thank you very much in advance!

yahoo trading pandas pandas-datareader

8
推荐指数
1
解决办法
5588
查看次数

面向对象的设计,用于Python中的投资/股票和期权组合

我是初学者/中级Python程序员,但我还没有编写应用程序,只编写脚本.我目前没有使用很多面向对象的设计,所以我希望这个项目能够帮助我建立自己的OOD技能.问题是,我不知道从设计角度开始(我知道如何创建对象和所有东西).对于它的价值,我也是自学成才,没有正式的CS教育.

我想尝试编写一个程序来跟踪投资组合股票/期权头寸.

关于什么会成为好的候选对象(投资组合,股票,期权等)和方法(买入,卖出,更新数据等),我有一个大概的想法.

多头头寸可以买入开仓,卖出收盘,而空头仓位可以卖出,买入收盘.

portfolio.PlaceOrder(type="BUY", symbol="ABC", date="01/02/2009", price=50.00, qty=100)
portfolio.PlaceOrder(type="SELL", symbol="ABC", date="12/31/2009", price=100.00, qty=25)
portfolio.PlaceOrder(type="SELLSHORT", symbol="XYZ", date="1/2/2009", price=30.00, qty=50)
portfolio.PlaceOrder(type="BUY", symbol="XYZ", date="2/1/2009", price=10.00, qty=50)
Run Code Online (Sandbox Code Playgroud)

然后,一旦调用此方法,我该如何存储信息?起初我以为我会有一个Position对象,其中包含Symbol,OpenDate,OpenPrice等属性,但考虑更新位置以考虑销售变得棘手,因为购买和销售发生在不同的时间和数量.

  • 买100股开,1次,1个价.卖4种不同的时间,4种不同的价格.
  • 买100股.每天卖1股,持续100天.
  • 买4种不同的时间,4种不同的价格.一次性卖出全部头寸,1个价格.

一种可能的解决方案是为每股股票创建一个对象,这样每个股票就会有不同的日期和价格.这会是太多开销吗?该投资组合可能有数千或数百万个小共享对象.如果您想了解某个头寸的总市值,您需要以下内容:

sum([trade.last_price for trade in portfolio.positions if trade.symbol == "ABC"])
Run Code Online (Sandbox Code Playgroud)

如果你有一个位置对象,计算将很简单:

position.last * position.qty
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.看看其他帖子显然是"帮助"不要"为你编写程序".我觉得我只需要一些方向,指向正确的道路.

反思的附加信息 目的 该程序将跟踪所有开放和关闭的位置; 能够看到详细的盈亏.

当我想到详细的损益时,我希望看到... - 所有开放日期(和关闭日期) - 持有的时间 - 开盘价(关闭日期) - 自开盘以来的损益 - 每天的损益

@Senderle

我想也许你的字面意思也是"对象"隐喻,所以试图在某种程度上将这种看似非常像对象的共享转化为该字的编程意义上的对象.如果是这样,那就是一个错误,这就是我所认为的并列的重点.

这是我的错.思考"物体"一个share物体似乎是自然的候选者.直到有数百万人认为这个想法似乎很疯狂.我本周末会有一些免费的编码时间,并会尝试创建一个有数量的对象.

python projects-and-solutions trading stocks

7
推荐指数
1
解决办法
4143
查看次数

使用python读取Amibroker价格数据

我想用python阅读Amibroker股票代码的价格数据.我在谷歌上找不到任何有用的东西.有人可以帮忙吗?

python trading stocks amibroker

7
推荐指数
1
解决办法
2937
查看次数

随着利润增加,如何在止损和当前价格之间保持10点的利润差距

我想另一个条件添加到该解决方案在这个岗位。我希望当交易获利10点时,止损将增加10点。更具体地说,假设我已经设置了一个待处理的买单,止损位比开盘价低10点,止盈位为50点。如果交易获利10个点,那么止损将向上移动10个点,如果交易获利为20个点,则止损将向上移动另一个10个点,而当交易获利30和40个点时,同样会发生直到达到50点止盈为止。这里的想法是,止损会增加10个点,而利润会增加10个点,但是止损不会下降。因此,如果止损为获利10个点,而价格为获利23个点并且突然下降,它将以10个止损获利退出交易。

设置以上条件对我来说似乎很复杂。我还没完成。

以下是我要解决的代码的相关部分(请注意,其余代码与上述链接的问题解决方案相同)。

//=========================================================
    //CLOSE EXPIRED STOP/EXECUTED ORDERS
    //---------------------------------------------------------
    for( int i=OrdersTotal()-1; i>=0; i-- ) {
        if(OrderSelect( i, SELECT_BY_POS, MODE_TRADES ))
            if( OrderSymbol() == Symbol() )
                if( OrderMagicNumber() == viMagicId) {
                    if( (OrderType() == OP_BUYSTOP) || (OrderType() == OP_SELLSTOP) )
                        if((TimeCurrent()-OrderOpenTime()) >= viDeleteStopOrderAfterInSec)
                            OrderDelete(OrderTicket());

                    if( (OrderType() == OP_BUY) || (OrderType() == OP_SELL) )
                        if((TimeCurrent()-OrderOpenTime()) >= viDeleteOpenOrderAfterInSec) {
                            // For executed orders, need to close them
                            double closePrice = 0;
                            RefreshRates();
                            if(OrderType() == OP_BUY)
                                closePrice  = Bid;
                            if(OrderType() == …
Run Code Online (Sandbox Code Playgroud)

trading algorithmic-trading metatrader4 mql4

7
推荐指数
1
解决办法
267
查看次数

在 linux 上使用 Schwab StreetSmart Edge Cloud - Citrix 错误

问题

Schwab 的 StreetSmart Edge Cloud (SSEC) 仅支持 Windows 和 Mac,而不支持 Linux。然而,SSEC 是基于 Citrix 的,它有一个 Linux 实现。不幸的是,它不能开箱即用。我如何让它在 Linux 上运行?

背景

在 Linux 上最难找到的一种软件是投资交易软件。多年来,我不得不为此单独维护一台 Windows 机器。

最复杂的平台之一是 Schwab SmartStreet Edge Cloud 版本。唯一的问题是 Schwab 只支持 Windows 和 Mac,不支持 Linux。当然还有其他交易平台,但很少能安装在 Linux 上,我最喜欢 StreetSmart。

但是 Mac 不是 Linux 的近亲吗?为什么我们似乎不能让交易软件在 Linux 上运行,尤其是当它是交易平台的云版本时?毕竟,您可以在 Win 或 Mac 浏览器上执行的任何操作,都可以在 Linux 浏览器上执行。

所以,我的问题是如何安装一个具有所有复杂图表和复杂交易参数的交易平台,例如止损、限价和括号订单?

解决方案

现在,我将用一个解决方案来回答我自己的问题。

这对我有用。我已经通过这个解决方案在我的 Linux 上使用 StreetSmart Edge 超过 6 个月。最重要的是,它不依赖于 Wine 或双启动。

第1步

下载适用于 64 位体系结构的 Linux Web 客户端 (x86_64) 或适用于 32 位体系结构的 (x86) 或适用于 ARM …

linux installation platform trading

7
推荐指数
0
解决办法
2241
查看次数

币安的 dapi(代币期货 api)中使用的符号是什么?

我正在尝试使用 Binance 的硬币期货 api 下载 BTC/USD 永续期货的历史价格数据,具体来说,我想使用此端点。但是,我找不到必须为 BTC/USD 指定的“符号”。我尝试了多种变体但无济于事(例如 BTCUSD、BTCUSD_perpetual 等)。我不断收到错误:“无效符号。”

api exchange-server trading cryptocurrency binance

7
推荐指数
1
解决办法
8812
查看次数