问题标签 [algorithmic-trading]
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.
c++ - 用于外汇自动交易的 MT4/5、Multicharts 或 Interactive Brokers API?
我一直对外汇算法交易非常感兴趣,但我不知道从哪里开始。
我更喜欢使用 C++,所以我正在研究 Interactive Brokers C++ API,但我不确定将自己锁定到 Interactive Brokers 是否是个好主意。
使用 Multicharts 或 MT4/MT4 并通过学习和使用他们的编程语言会更好,还是我应该坚持使用 C++/Interactive Brokers?各有什么缺点?
任何建议将不胜感激。
optimization - 算法交易的稳健度量 - 基于罗伯特·帕多的书
我正在优化算法策略。在从众多优化策略中进行选择的过程中,我正处于搜索(评估)策略稳健性的阶段。
遵循 Pardo 博士在第 231 页中的“交易策略评估”一书中的指导方针,Pardo 博士建议在数字 3 中将以下比率应用于优化数据:
" 3. 所有盈利模拟的总利润除以所有模拟的总利润的比率显着正"
问题:从优化结果来看,我无法正确理解 Pardo 先生所说的“......所有模拟都非常积极”是什么意思;Pardo 先生所说的“非常积极”是什么意思?
a.) 置信度为 95%?b.) 具有一定的 p 值?c.) 每个模拟的平均净利润减去它的标准差的关系
尽管这句话可能看起来“简单”,但我真的很想了解 Pardo 先生所说的意思以及如何计算它,以便过滤最强大的算法策略。
c++ - “实时”流的简单移动平均线 - 快速实施
在我的交易应用程序中,我有股票价格的“实时报价”。我需要维持SMA。假设我想要 20 根蜡烛的 SMA,其中每根蜡烛的持续时间为 10 秒。这意味着
每 10 秒我有一个“检查点”,其中:
- 我“关闭”当前蜡烛并存储最后 10 秒的平均价格。平均值为 (max - min) / 2
- 我“开始”新蜡烛并存储最新价格。
- 我清理“过时”的蜡烛。
每个刻度:
- 我更新当前“形成”蜡烛的“最后”价格并重新计算 SMA。
因此,在任何滴答声上,我都需要“重新计算”SMA。在大多数情况下,只有最后一根蜡烛的价格会改变(因为我们使用的是最后一个价格)。每 10 秒一次,我需要做更多的额外工作——我需要“忘记”过时蜡烛的平均值,并“存储”“刚刚创建”蜡烛的平均值。
你能建议如何以最低的延迟实现这一点吗?低延迟是主要要求。
genetic-algorithm - Metatrader 5 中的自定义优化
我想定制MT5的基因优化。例如,我想尝试不同的人口规模和选择方法。我是否能够调整默认的遗传优化,或者我应该将其重写为脚本或智能交易系统。是否有用于编写自定义优化器的 API(或模板),是否可以在 MT5 中使用?
bitcoin - 我如何使用 MQL4 获取市场数据?
我正在使用 metatrader4,我可以从 btc-e http://docs.mql4.com/constants/environment_state/marketinfoconstants获取“但”市场数据的任何信息
IE
就像此图表右侧的市场数据 https://bitcoinwisdom.com/markets/btce/ltcusd一样,所有未决的买/卖订单,相同的市场和一切。如何使用 MQL4 转储挂起交易量?
yahoo-finance - 获取股票的历史数据
我们想检查股票的历史数据,使用 HTTP 请求,并获取 JSON。
使用 yahoo API 时,我发现不仅很难清楚地理解 HTTP 请求字段,而且很难获取某一天的数据(不是每天的平均值,而是某一天的值),用这个:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22AAPL%22%20and%20startDate%20%3D%20%222012-09-11%22%20and%20endDate%20%3D%20%222014-02-11%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
1.没有任何地方解释如何设置每个字段(在雅虎控制台也没有)。
2.你不能设置某一天,并获取它的值。
除了现在免费的 Yahoo,还有其他稳定的解决方案吗?或者,有人可以帮助我了解请求中的所有这些垃圾标志吗?
trading - 使用 mql4 或 mql5 注释图表
在不久的将来,我将开始交易。看看所有不同的经纪商,交易平台使用的是 MetaTrader 4 或 5,这很好。
我相信使用 mql 4 或 5 进行回测是可能的。但是为了节省时间,我打算继续使用我自己创建的回测引擎。
我想知道的是是否可以在 mql 4 或 5 中编写代码来注释图表?是这样,你能告诉我在哪里可以找到一个很好的例子供我学习。
finance - 了解盈透证券报价事件
通过盈透证券的 API 方法接收金融报价数据时tickPrice
或tickSize
数据将具有以下参数
- tickerId(符号)
- 字段(1=出价,2=要价,4=最后,6=高,7=低,9=收盘)
- 价格
- 可以自动执行
从任何其他提要中,我都希望打勾
- tickerId(符号)
- 出价
- 问
- 投标规模
- 问尺寸
所以我的问题是:我是否应该保留一个以tickerId为键和一个结构作为包含上述五个属性的值的字典,这样每次引发滴答事件时,我都会更新结构的相应属性并将整个结构发送到我的数据库蜱虫?理想情况下,我的刻度数据库看起来像这样
来自 IB API 文档:当市场数据发生变化时调用此方法。这是否意味着如果更新了投标价格,其他属性将保持不变?
algorithmic-trading - 如何在 MQL4 中设置订单启动栏上方的几个点
我想创建一个止损订单,如果这是一个卖出订单,它将放置在前一个订单启动柱的高点之上,或者如果这是一个买入订单,它会放置在前一个订单启动柱的低点之下。
这是一张图片来说明问题(该示例描述了一个卖单案例):
知道怎么做吗?如果我使用固定的止损,下面的代码可以正常工作。如果我用基于高或低的变量替换止损,则不会触发任何订单。
这是我的代码: