问题标签 [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.

0 投票
1 回答
567 浏览

r - quantStrat 无法识别列名

我编写了以下代码并在应用策略时收到错误消息:

eval 中的错误(expr、envir、enclos):找不到对象“关闭”

听起来该策略找不到“Close”列价格,而最后一行代码“head(mktdata)”清楚地给出了 XLB.Close 作为 Close 的列名称。
顺便说一句,我故意省略了不需要的 add.indicator() 函数。
有人可以帮忙吗?感谢
最后一行代码输出有 XLB.Close 作为列名:

使用 quantstrat 的策略代码:

-------------------------------------------------- ----------------------

0 投票
1 回答
4515 浏览

algorithmic-trading - MetaTrader 的异步网络请求

我正在尝试为 MetaTrader 构建一个可以发出异步互联网请求的自定义指标是否可行,以便将数据发布到具有 PHP 接口的服务器。

这些请求可能需要一些时间让网络服务器处理,所以我担心如果它们以同步方式执行,它们会阻止指标不断更新新的分时数据。

是否有任何可用于 MT4 的异步库?

0 投票
1 回答
1723 浏览

c# - 如何在 VPS 上使用 ac# DLL 制作 Metatrader 终端?

地位:

我用DLLC# 编写了一个,它可以从用 a (基本上是一种类似 C 的语言)编写的代码中调用,MQL4并发送回一些数据(非托管到托管并返回)。

通常,DLL发送查询到MySQL-host 并在需要时返回一些数据。我使用了NuGet包“ Unmanaged Exports ”。我将它DLL与 FOREX 交易MetaTrader Terminal程序一起使用,在 Windows 8.1 x64 上运行,一切正常。MetaTrader Terminal由于仅在 x86 上运行,因此 C# 代码在 x86 中编译。


目标:

现在我有兴趣使用DLL相同的代码并使用相同的代码调用它,但这次我需要从 VPS 运行代码。

此 VPS 在 Windows Server 2008 R2 SP1 x64 上运行。

除此之外一切都是一样的:
相同的版本MetaTrader Terminal
我什至在这个 VPS 上安装了 VS 2013(与我在笔记本电脑上使用的版本相同)
并毫无问题地编译了 C# 代码。

我还安装了 Microsoft Visual C++ 2010 Redistributable,希望这会有所帮助,但我还在这里......

也没有防火墙可以阻止对主机的访问。

什么可能阻止DLL在 VPS 上运行?

谢谢!!


问题隔离:

我在 VPS 上编写了一个简短的 C# 程序,以便检查DLL.
它 ( DLL) 效果很好。

我知道MetaTrader Terminal确实可以识别,DLL因为否则我会收到有关该基本问题的错误。

所以问题一定在MetaTrader Terminal和之间DLL

0 投票
1 回答
470 浏览

r - 根据信号在特定日期对股票组合进行等权重分配

我想在特定日期重新分配策略组合:

获取资产价格并获取每日离散收益

现在我通过将 RSI 函数应用于每个资产来获得 RSI 信号

策略如下:我在 RSI < 30 时买入资产,当 RSI >= 30 时不买入

现在这是我遇到问题的部分。ret.mat.rsi 的回报是每日回报。假设我想在每月的第一天查看 rsi 矩阵,例如

我想购买在我的投资组合中权重相等的前 4 种资产,因为它们的 RSI 低于 30,并在本月剩余时间内保持头寸不变(无论进一步的 RSI 信号如何),直到下个月的第一天:

我选择不购买任何资产。

现在的整个问题是如何优雅地编码在特定日期自动重新分配投资组合,即在每个月初(也可以是每周或每三周)。投资组合回报应仅包含在重新分配日期满足指标条件(此处 RSI < 30)的资产。

0 投票
1 回答
1026 浏览

r - R 中的布林线策略,在重新分配日期具有进入和退出信号

我有以下简单的交易策略:

进场信号:当 IBM 的价格高于布林带上限时。

收盘信号:当 IBM 的价格低于布林带下限时。

以下是布林带:

现在棘手的部分是仅当 IBM 的价格在重新分配日期低于布林带下限时才平仓。否则,我们将上一个周期的信号滚动到下一个周期。要完成每周重新分配:

现在的整个问题是如何定义一个正确编码的信号函数sig.bb,一旦价格在重新分配日期高于其上布林带,则包含“1”,然后持有股票直到价格低于其在随后的任何重新分配日期降低布林带。

我尝试的是捕捉第一个观察结果,然后根据 sig.bb 向量的第一个条目滚动所有以下观察结果

返回“NA”...

获得sig.bb后如何继续(对于那些对此主题感兴趣的人)可以在这里找到: 根据信号在特定日期对股票投资组合进行等权重分配

0 投票
0 回答
184 浏览

r - 将布林线策略应用于资产组合

我面临以下简单的交易策略:

买入:当股票价格高于布林带上限时。

卖出:当股票价格低于布林带下限时。

持有:出现买入信号,因此我们持有股票,直到出现卖出信号的重新分配日。

我们只考虑使用 GSee 的起点功能的每周重新分配日期。

到目前为止,一切都很好!现在,我有更多的价格系列想要从中提取信号:

我想将上述交易策略应用于该资产组合,而不为每个单独的资产定义矩阵(此处为“m”)。我习惯于循环思考,但肯定有一种更优雅的方法可以避免循环。

结果应如下所示:

0 投票
1 回答
370 浏览

machine-learning - 金融大数据机器学习

免责声明:虽然我知道一些关于大数据的东西,并且目前正在学习一些关于机器学习的其他东西,但我想研究的具体领域是模糊的,或者至少现在对我来说似乎是模糊的。我会尽力描述它,但这个问题仍然可能被归类为太模糊或不是一个真正的问题。希望一旦我得到反应,我就能更准确地改写它。

所以,

我对 Hadoop 和 Hadoop 堆栈(通过使用 CDH 获得)有一些经验,并且我正在阅读一本关于 Mahout 的书,它是机器学习库的集合。我还认为我知道足够的统计数据,能够理解机器学习算法背后的数学,并且我对 R 有一些经验。我的最终目标是建立一个能够进行交易预测和实时处理金融数据的设置。

我想知道是否有任何材料可以进一步阅读以帮助我了解管理该问题的方法;欢迎阅读带有示例数据集的书籍、视频教程和练习。

0 投票
2 回答
1166 浏览

algorithmic-trading - 将数据从网站拉入 CSV 并每五分钟刷新一次

我正在使用 MQL4 开发一个程序,该程序需要从特定网页中提取的一些数据片段。

如何.csv每 5 分钟将其转储到文件中?

我被困在我将如何去做这件事上。

结构

  1. .html从页面转储的一些数据
  2. 插入.csv文件
  3. 由 MQL4 读取
0 投票
1 回答
1705 浏览

export - MT4 导出脚本

以下MQL4脚本将数据从 MetaTrader 导出到csv文件。不幸的是(至少对我而言),生成csv文件中数据的顺序从 0 到 1000,0 是最新的(从现在到过去)。我希望文件从 1000 排序到 0(从过去到现在)。

我将下面的写入数据循环更改为:for (int bar=Export_Bars; bar==0 bar--)但这只是生成了一个空csv文件。

所以我的问题需要对脚本进行哪些更改才能将过去的数据导出到当前顺序?

0 投票
2 回答
4638 浏览

algorithmic-trading - init() 和 OnInit() 有什么区别?

我正在学习 MQL4。在他们的参考网站上,创建自定义指标如下:

但是当我从 MetaEditor 中创建一个新指标时,我得到了另一种语法,如下所示:

为什么不一样?

有没有网页链接,或者有人可以参考我的书?从我读到的最好的地方是 MQL4 网站,但它看起来不同,我不知道现在该去哪里。

任何帮助将不胜感激。提前致谢。