MetaTrader用ポジションコピーEA

MetaTrader4 とMetaTrader5用のポジションコピーを行うEAになる。既存のものを探したが、単純な機能の割に有償だったので勉強のつもりで作ってみた。気が向いたらcTrader版も作る。ライセンスはGPL v3。
ソースコードはgithubにアップロードしてある。

注意点

サーバとクライアントを同じMetaTrader上で動かさないこと。動かすとコピーの無限ループになってしまい証拠金を使い尽くすまでコピーしてしまう。

使い方(サーバ側)

コピーされる側で動かす。一応EAなので何かしらのチャートに埋め込む必要がある。どのチャートでも良い。
パラメータが1つあって、shareName(共有名)というものだが、これはクライアント側と一致させることによって識別する名前になっている。1つのマシンにMetaTraderを複数立ち上げて、サーバーも複数立ち上げる、という場合には別の名前を指定する。

使い方(クライアント側)

コピーする側で動かす。サーバ同様EAなので何かしらのチャートに埋め込む必要がる。やはり、どのチャートでも良い。
クライアント側にはパラメータがいくつかあるので状況に応じて設定する。

magicNuber他のEAとバッティングしない番号を指定する。
serverサーバのコンピュータ名。同一マシンの場合は.(ドット)を指定する。異なるマシンの場合はコンピュータ名を指定すれば動くはずであるが、試してない。
shareNameサーバのshareNameと同一の名前を指定する。
syncTime同期を取る時間。ミリ秒で指定する。通常は変える必要なし。
copyTypeコピーするポジションの数量を計算する方法を指定する。
fixed: 固定ロットで注文する。ロット数はfixVolumeで指定する。
oneness: サーバと同一数量を注文する。
balanceProp: 残高に比例した数量を注文する。
marginProp: 有効証拠金に比例した数量を注文する。
marginFreProp: 余剰証拠金に比例した数量を注文する。
fixVolumecopyTypeでfixedを指定した場合に有効。
サーバでのロット数に関わらず、指定したロット数を発注する。
proportinalcopyTypeでfixed以外を指定した場合に有効。
サーバのポジションから計算したロット数に対して、ロット数の倍率を指定する。1以上を指定しないことを推奨。
disntaceサーバの発注価格に対して、どれくらい離れていても発注するか(pips)