标签: algorithmic-trading

在Mac上使用C++进行Interactive Broker API? - 例子?

经过多年没有编程,我正准备在Mac OSX上学习C++.我热切的目标是创建一个与Interactive Brokers一起使用的算法/自动交易软件.

现在,我下载了适用于Mac OSX的API和文档.但我认为MacOSX的API仅适用于Java?

我的情况我错了:如果有人可以帮助我在IB-API上使用几行C++,例如打开会话或加载marketdata以获得安全性,我会很高兴吗?

顺便说一下,我用R做了这个,在找到一些例子之后它很容易使用.

谢谢.

c++ api macos algorithmic-trading

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

如何找到2小时到15分钟时间范围内烛形图出现的最大次数

我试图搜索找出如何在一定时间范围内搜索模式。显然,该模式可能会根据时间范围出现几次,这就是为什么我对重复的最大次数特别感兴趣。

为了说明我要进一步实现的目标,请说我正在搜索从2小时到15分钟图表的模式,然后在2小时图表中找到它,然后再钻入下一个1小时的时间范围,最后得出在1小时图上的两个模式中,我将继续30分钟(两个1小时模式)和15分钟,直到获得最大的时间。

我认为将需要一种返回下一个较低时间范围的方法。我已经能够写出来,请参见下面的代码。我真的很感谢您的帮助。

ENUM_TIMEFRAMES findLowerTimeframe(ENUM_TIMEFRAMES timePeriod)
{
   int timeFrames[5] = {15, 20, 30, 60, 120};

   int TFIndex=ArrayBsearch(timeFrames, (int)timePeriod);

   return((ENUM_TIMEFRAMES) timeFrames[TFIndex - 1]);
}
Run Code Online (Sandbox Code Playgroud)

编辑

我没有添加特定的烛台图案,因为我认为这不是我的问题中最重要的部分。问题的症结在于如何在几个连续的时间框架内搜索模式,以找到该模式在该时间范围内出现的最大次数。

algorithmic-trading metatrader5 mql5

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

为什么我对 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
查看次数

MetaTrader的异步Web请求

我试图看看是否可以为MetaTrader构建一个可以发出异步互联网请求的自定义指标,以便将数据发布到带有PHP接口的服务器上.

这些请求可能需要一些时间才能处理Web服务器,因此我担心如果以同步方式执行这些请求,它们将阻止指示器不断更新新的tick数据.

MT4是否有可用的异步库?

algorithmic-trading metatrader4 mql4

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

如何启用TWS延迟市场数据?

这是我用来请求市场数据的脚本.

我还没有订阅数据馈送,所以我会自动返回延迟的市场数据,但显然我必须启用它,但无法找到这样做的地方.
这是脚本和我得到的错误,我只需要接收延迟数据,所以我可以测试我的算法.

from ib.opt import ibConnection, message
from ib.ext.Contract import Contract
from time import sleep

def fundamentalData_handler(msg):
    print(msg)

def error_handler(msg):
    print(msg)

tws = ibConnection(port=7496, clientId=100)
tws.register(error_handler, message.Error)
tws.register(fundamentalData_handler, message.fundamentalData)
tws.connect()

c = Contract()
c.m_symbol = 'AAPL'
c.m_secType = 'STK'
c.m_exchange = "SMART"
c.m_currency = "USD"

print "on it"

tws.reqMktData(897,c,"",False)
sleep(50)

tws.disconnect()
Run Code Online (Sandbox Code Playgroud)

错误:

<error id=-1, errorCode=2104, errorMsg=Market data farm connection is OK:hfarm>
<error id=-1, errorCode=2104, errorMsg=Market data farm connection is OK:eufarm>
<error id=-1, errorCode=2104, errorMsg=Market data farm connection is OK:jfarm> …
Run Code Online (Sandbox Code Playgroud)

python algorithmic-trading interactive-brokers ibpy

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

如何将Metatrader 4警报或电子邮件指示信号转换为EA交易以开启交易?

我一直在使用指标来进行交易.我没有开发指标,所以我只能访问该.ex4文件.如何在警报或电子邮件信号中提取止盈,开放交易和止损值以开启交易?请参阅下面的电子邮件和警报信号示例.

在此输入图像描述

在此输入图像描述

algorithmic-trading metatrader4 mql4

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

以编程方式检查今天是否是市场开放交易日

检查美国证券交易所今天是否开放交易的最简单方法是什么?

我希望避免的长期方法是创建例程来解析带有日历信息的提要,例如https://business.nasdaq.com/trade/US-Options/Holiday-Trading-Hours.html

我更喜欢Ruby,但即使是使用curl进行简单的 URL 查找来生成真/假,或者直到下一个市场开盘的时间,也会很棒。

选修的

能够查找任意日期会更好,并解决这个问题。即什至是来自外壳的
东西。curl google.com/search?q="Is the NYSE open on $(date +%Y-%m-%d)"

algorithmic-trading stock

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

随着利润增加,如何在止损和当前价格之间保持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
查看次数

从 Binance API 获取所有成交的订单

我正在开发一个交易机器人,我想通过从 Binance 获取我在特定时间段内的订单历史列表来训练它。我在这里查看了 API 文档,但似乎总是需要我提供股票代码。虽然迭代所有股票代码是一种选择,但它需要很长时间才能完成(我正在尝试获取一整年的数据)。任何人都可以指出我这样做的不那么愚蠢的方式吗?

Ps 我也查看了 allOrdersList 但它只提供 OCO 订单,这与常规订单不同。见这里。任何帮助将不胜感激。

api algorithmic-trading cryptocurrency binance

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