#+------------------------------------------------------------------+
#| ZeroMQ_MT4_R_Template.R |
#| Copyright 2017, Darwinex Labs |
#| https://www.darwinex.com/ |
#+------------------------------------------------------------------+
# Load "rzmq" library. If not installed, run install.packages("rzmq")
library(rzmq)
# Random placeholder for PULL later.
pull.msg <- "N/A"
# Function to send commands to ZeroMQ MT4 EA
remote.send <- function(rSocket,data) {
send.raw.string(rSocket, data)
msg <- receive.string(rSocket)
print(msg)
}
# Function to PULL data from ZeroMQ MT4 EA PUSH socket.
remote.pull <- function(pSocket) {
msg <- receive.socket(pSocket, unserialize = FALSE, dont.wait = TRUE)
if(is.null(msg)) {
msg <- "No data PUSHED yet.."
print(msg)
} else {
msg <- rawToChar(msg)
print(msg)
}
return(msg)
}
# CREATE ZeroMQ Context
context = init.context()
# Initialize ZeroMQ REQ Socket
reqSocket = init.socket(context,"ZMQ_REQ")
# Initialize ZeroMQ PULL Socket
pullSocket = init.socket(context, "ZMQ_PULL")
# Connect to REQ Socket on port 5555
connect.socket(reqSocket,"tcp://localhost:5555")
# Connect to PULL Socket on port 5556
connect.socket(pullSocket,"tcp://localhost:5556")
# Run Tests
while(TRUE) {
# REMEMBER: If the data you're pulling isn't "downloaded" in MT4's History Centre,
# it's very likely your PULL will produce no data.
# So if you're going to be pulling data for a currency pair from MT4,
# make sure its data is downloaded, and chart open just in case.
# Pull from server
remote.pull(pullSocket)
f <- file("stdin")
open(f)
print("Enter Command for MetaTrader 4 ZeroMQ Server, 'q' to quit")
# e.g. RATES|EURUSD -> Retrieves Current Bid/Askfor EURUSD from MT4.
mt4.command <- readLines(f, n=1)
if(tolower(mt4.command) == "q") {
break
}
# Send to ZeroMQ MetaTrader 4 Server
if(!grepl("PULL", mt4.command))
remote.send(reqSocket, mt4.command)
# Pull from ZeroMQ MetaTrader 4 Server
pull.msg <- remote.pull(pullSocket)
}
你已经准备好了你的圣杯? 有人工智能))。
就是这样......你们已经是寡头了))。
当然,马克西姆科总是能实现他的目标。
当然,马克西姆科总是能完成工作
)))
就是这样...我们放弃所有的机器人,排队等待神奇的智能机器人。
)))
就是这样...我们放弃所有的机器人,排队等待神奇的智能机器人。
我已经在去瑞士碉堡的半路上了,有准军事人员看守,跟着亚历山大,带着他那满是灰尘的袋子,满是笔记,别提了!
亚历山大_K2来自另一个主题
我真的不能用python工作,我只需要用python进行可视化和即时验证......现在我正在考虑是否可以通过winapi直接调用python shell,并从机器人向python发送命令,我不知道这是否可行。R和dll不消化,不知道怎么做,也不想和他们合作,虽然python不需要(看文章和老前辈的作品)越来越没有欲望去钻研--500000个数据包,输出和2MA上的机器人一样
与这样的怪物联系起来,对许多人来说是有用的,但实力不足的人就不多了。
如果我想用10个MAs与第16步,做一个预测器--每一个价格开在一个MA之上/之下,还有一个--这个MA的编号,同时将所有的MAs从上到下编号,它将描述市场?
做了一个丢掉整个模型的小实验(总共给出了10个模型)。自2018.04.01起转发
没有辍学。
进一步用数字标明有多少个随机模型留下,其余的掉了。
那么某种程度上,这变成了一种情况。可能不是很能说明问题,因为这个模型在没有辍学的情况下变得相当好。而且模型之间过于相似,这很不好,需要修改学习算法(博弈论来帮助)。但仍然出现了一些选择的灵活性。
看起来不错!停在一个(1个模型)。
与这样的怪物联系起来,对许多人来说是有用的,但没有多少人能够做到。
至于MAs,我刚才睡着了在想,如果我们把10个有16个台阶的MAs,做一个预测器--对每一个--在MA之上/之下开盘的价格,还有一个--当把所有的MAs从图表的顶部到底部编号时,这样的模型能描述市场吗?
这不是提出问题的方式。实验,实验......因为在理论上没有什么是显而易见的。六个月来,我已经尝试了大约一百种不同的TS变体,想想都觉得可怕。
分支机构的历史存储了很多关于如何不 做(有时是如何做) 相当有用的信息。
与这样的怪物联系起来,对许多人来说是有用的,但没有多少人能够做到。
关于MAs,我只是在睡着的时候想了想。 如果我拿10个箭头,16个台阶,做一个预测器--每一个价格开在MA之上/之下,还有一个--从图表顶部到底部对所有MA进行编号时的MA数量,这样的模型能描述市场吗?
大约10年前有一篇文章,用MA从2到100做了这样一个实验。
如果我没弄错的话,我想这叫风扇......
它似乎解决了mql4与不同语言沟通的所有问题。甚至还有一个R的代码。这里是原理图。
整个描述分为三个部分。
https://blog.darwinex.com/zeromq-interface-python-r-metatrader4/
https://blog.darwinex.com/zeromq-trade-execution-metatrader-zmq2/
https://blog.darwinex.com/zeromq-transaction-reporting-metatrader-zmq3/
批准。
为什么是ZeroMQ?
1.使程序员能够以多种方式将任何代码连接到任何其他代码。
2.消除MetaTrader 用户对MetaTrader支持的技术(功能、指标、语言结构、库等)的依赖。
3.交易者可以用C/C#/C++、Python、R和Java(仅举几例)开发指标和策略,并通过MetaTrader 4部署到市场。
利用Python和R的机器学习 工具包进行复杂的数据分析和策略开发,同时与MetaTrader 4对接进行交易执行和管理。
5.ZeroMQ可作为复杂的分布式交易系统的高性能传输层,否则难以用MQL实现。
6.如果需要,不同的策略组件可以用不同的语言构建,并通过TCP、进程内、进程间或组播协议无缝地相互对话。
7.多种通信模式和断线操作。
以下是代码
这里是r的代码