#+------------------------------------------------------------------+
#| 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)
}
AIと一緒に?)
まあいいや、お前らはもうオリガルヒだ))
もちろん、マキシムコはいつも目標を達成する。
もちろん、マキシムコウはいつも仕事をこなしています。
)))
ザッツオール私たちはすべてのロボットを捨て、不思議な知能を持つロボットの列に並びます。
)))
ザッツオールロボットを全部捨てて、不思議な知能を持ったロボットの列に並びましょう。
アレクサンダーの埃だらけのバッグにメモを詰めて、警備員と一緒にスイスのバンカーに入るところだ。
別スレッドよりAlexander_K2
Pythonを使った作業はあまりできず、可視化と即時検証のためにpythonを使うだけです... 現在、winapiを通して直接pythonシェルを呼び出し、botからpythonにコマンドを送ることを検討していますが、可能かどうかわかりません。RとDLLは、パイソンは(記事や古いタイマーの仕事を見て)あまり、それの厚さに取得する欲求を必要とされていませんが、どのように消化しないと、彼らと仕事をしたくない - 500000パケットと出力は2MAのボットからと同じである。
そのようなモンスターとリンクすることは、多くの人にとって便利ですが、強さの下ではそう多くはないでしょう。
私はステップ16と10 MAを使用し、予測器を作りたかった場合 - 各1価格はMAと1より上に/下に開いた - 上から下へすべてのMAに番号を付けながら、このMAの番号、それは市場を記述するのだろうか。
モデル全体を落とす実験を少ししてみました(全部で10モデル用意されています)。2018.04.01より順次
ドロップアウトなし。
さらに、ランダムなモデルが何台残って、残りが何台落ちたかを数字で表示しました。
まあある種のこれは判明していることなのですが。おそらく、ドロップアウトなしでかなり良いモデルに仕上がったので、あまり明らかにならないでしょう。また、モデル同士が似すぎていて良くない。学習アルゴリズムを見直す必要がある(ゲーム理論が役立つ)。しかし、それでもある程度の選択の自由度は出てきています。
良さそうですねぇ。1台(1モデル)で停止する。
そんなモンスターとリンクすることは、多くの人にとって有益なことですが、それができる人は多くありません。
そして、MAについては、私はちょうど考えて眠りに落ちていた、我々は16ステップで10のMAを取ると予測器を作る場合はどうなります - それぞれについて - MAともう一つの上に/下に開いた価格 - チャートの上から下にすべてのMAに番号を付けたときにMAの数、そのようなモデルは、市場を記述するのでしょうか?
質問の仕方が違う。実験、実験...。...理論的には何も明らかではないからです。半年で100種類くらいのTSのバリエーションを試しましたが、それを考えると怖いくらいです。
支店の履歴には、かなり有用な「やってはいけない 方法(時にはやり方)」の情報がたくさん保存されています。
そんなモンスターとリンクすることは、多くの人にとって有益なことですが、それができる人は多くありません。
MAはどうなんだろう、寝落ちしながら考えてました。 16段階の矢印を10個取って、予測器を作ったらどうだろう - チャートの上から下まですべてのMAに番号を振ったとき、MAの数ともう一つ - それぞれの価格はMAの上/下に開いた、そのようなモデルは市場を記述するだろうか。
10年ほど前に、MAを2~100まで使ってそのような実験をした記事がありました。
それに、確か扇風機って言うんじゃなかったかな...。
mql4の異言語間通信の問題をすべて解決してくれそうです。Rのコードもあります。以下はその回路図です。
全体の描写は3部構成になっています。
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のコード です。