記事"MetaTrader 5 から MetaTrader 4へトレードをコピーする方法"についてのディスカッション - ページ 13

 
zhserg:

簡単なコピー機を作った。どこから、どこへ、コピー間隔を設定する。

アーカイブ内のexe ファイル
 
Warstein:
素晴らしいものをありがとう!
とても大きな要望なのですが、特定のマジックの番号の注文にのみ仕事を追加してください。

私はそのアイデアを支持します、多分誰かが書くでしょう、それでコードは作者のおかげで素晴らしいですすべてがスーパーです!私はちょうど良いトレーダーを見つけて、投資を依頼する必要があります;)

 

さらに付け加えなければならないことがある。

1.ロットの比例配分 - 5 桁から 4 桁へ - ロットも 1 桁移動する。

一般的には、ロットではなく、フリー・マージン、ロット、ダイトを引き、レシーバーで利用可能なフリー・マージンと引用小数点以下の桁数に従ってロットを再計算する方がよい。

こうすることで、管理は維持され、それなしではプログラムは意味を失う。

2.シンボルへの接頭辞-接尾辞 - DCが取引シンボルをEURUSDではなく、EURUSD_byakaと呼ぶことがある(「どのシンボルからどのシンボルへ」という対応は、別の設定ファイルで重複させたほうがよいだろう)。

3.1つのファイルを 複数のmt4ファイルにコピー できると良い。

例えば、mt5フォルダからmt4ファイルを受信する:

#import "kernel32.dll"
   bool CopyFileA(string lpExistingFileName, string lpNewFileName, bool bFailIfExists);
#import

/////////////////

CopyFileA(TerminalPath()+CharToStr(92)+"experts"+CharToStr(92)+"files"+CharToStr(92)+fSymbol+".txt",CopyTo1+fSymbol+".txt",false);

こうすれば、mt4ファイルのサンドボックスを超えることができる。

mql5では、残念ながら、これと同様のMSDNのトリックは機能しない。

一般的には、試してみて、バグがなければ、今のところ自分では書きません。ありがとう。

 
zhserg:

簡単なコピー機を作った。どこから、どこへ、コピー間隔を設定する。

Save/start」ボタンでコピー開始。作業中は点滅します))。

Translator positions.MQ5では、int han=FileOpen(subfolder+" \+folder+".csv", FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,","); という行を、int han=FileOpen(folder+".csv", "FILE_WRITE|FILE_SHARE_READ|FILE_ANSI,",");つまり、このファイルは「Program FilesMetaTrader 5MQL5Files」フォルダに書き込まれます。

bootnikを使用できる。ブートニクを使うことができる。

@Echo off
:loop
xcopy "F:\folder\*.txt" "\\Comp1\folder" /Y /R /C /I /G /Z /D >nul
xcopy "C:\Program Files\MetaTrader 5\MQL5\Files\Translator positions.csv" "C:\Program Files\MetaTrader 4\experts\files" /Y /R /C /I /G /Z /D >nul
timeout /t 1
goto :loop

ちなみに、メガファイルの同期には、Microsoft SyncToy 2.1http://www.microsoft.com/en-us/download/details.aspx?id=15155 をお勧めします

SyncToy 2.1
SyncToy 2.1
  • www.microsoft.com
Note: There are multiple files available for this download. Once you click on the “Download” button, you will be prompted to select the files you need. Overview There are files from all kinds of sources that we want to store and manage. Files are created by our digital cameras, e-mail, cell phones, portable media players...
 
この記事はもう時代遅れで、高度な機能を備えた新しいコンパイラmql4++がまもなくリリースされ、すべてが変わるだろう。
 

メタトレーダーがデータを保存する場所に問題があると思います。Windowsの最新バージョンでは、インストールフォルダのサブフォルダを使用しません。

サーバー2008(私の場合)では、MT5は
C:◆Users[username]◆AppData◆Roaming◆MetaQuotes◆Terminal◆[長い16進数]◆MQL5◆etc...を使います。

各ターミナルのインストールは、この場所に一意の[長い16進数]を持つ独自のフォルダを使う。 MT4を上記のフォルダパスにインストールしてみたが、独自のデータフォルダからも読み書きするので、これもうまくいかない。 いずれにせよ、この場所からプログラムを実行するのは、おそらく良いアイデアではない。

Windows 8でも同様の問題があると思われます。

現時点ではアイデアに行き詰まっているが、この情報が役に立つことを願っている。

 

Windows Server 2008での私のMT4データファイルの場所:

C:╱AppData╱Local╱VirtualStore╱Program Files╱[MT4のプログラムフォルダ名]です。

OSがファイル操作をリダイレクトしているのではないかと推測しています。

 

4103 - erroropening file(ファイルを開く際の エラー)とは、MT5が何らかのファイルにトレードを書き込んでいて、MT4がそれを「見つける」ことができないことを意味します。

これは、MT5がMT4と異なる機能を持っているために起こっています。MT5では、インストールする フォルダと実行 するフォルダが異なります。例えば、私はMT5をC:¥Accounts¥MT5に、 MT4をC:¥Accounts¥MT5¥MQL¥Files¥MetaTrader4にインストールした

MT5は 、C:¦AppData¦Roaming¦MetaQuotes¦Terminal¦[long hex number]¦MQL5¦etc...というフォルダを作成し、実際にここから実行している。つまり、MT5はこのフォルダのどこかにトレードを書き込んでいる。

元記事にあるように、MT4はMT5フォルダの「中」にあるはずだ。そこで、MT5のインストールフォルダを 実行 フォルダと「同じ」にすることで解決します。最も簡単な方法は

1. すべてのMT5インスタンスをアンインストールする。

2.C:¥Users[username]¥AppDataRoamingから「Metaquotes」フォルダを削除する。

インストールフォルダを実行フォルダと同じにする:

3.MT5を再インストールする。Program filesフォルダに入れるのではなく、例えばC:∕Accounts∕MT5にする。インストール中、'launch after finish'のチェックを外す。

4.MT5を初めて起動する前に、デスクトップ上でMT5のショートカットを右クリックし、プロパティをクリックして、パスに「/portable」を追加します。つまり、C:¥Accounts¥MT5¥terminal.exe /portableとなる。(terminal.exeの後にスペースがあり、スラッシュがあり、portableは大文字でないことに注意)。OKをクリックする。

MT4をインストールし、EAをコピーし、ターミナルを実行します。

5.MT4をC:¥Accounts¥MT5¥MQL¥Files¥MetaTrader4にインストールする。(フォルダー名 MetaTrader 4 などは、EAs の名前と同じでなければなりません。)

6.Translator と Copyist EA をそれぞれのフォルダにコピーする。

7.MT5マスターとMT4スレーブの両方を実行する。

8.お楽しみください

ヒント何かが適切に行われていない場合は、次のステップに進まないでください。

専門的でない」言葉を使って申し訳ありません!

 
doctornasir:

4103 - erroropening file(ファイルを開く際の エラー)とは、MT5が何らかのファイルにトレードを書き込んでいて、MT4がそれを「見つける」ことができないことを意味します。

これは、MT5がMT4と異なる機能を持っているために起こっています。MT5では、インストールする フォルダと実行 するフォルダが異なります。例えば、私はMT5をC:¥Accounts¥MT5に、 MT4をC:¥Accounts¥MT5¥MQL¥Files¥MetaTrader4にインストールした

MT5は 、C:¦AppData¦Roaming¦MetaQuotes¦Terminal¦[long hex number]¦MQL5¦etc...というフォルダを作成し、実際にここから実行している。つまり、MT5はこのフォルダのどこかにトレードを書き込んでいる。

元記事にあるように、MT4はMT5フォルダの「中」にあるはずだ。そこで、MT5のインストールフォルダを 実行 フォルダと「同じ」にすることで解決します。最も簡単な方法は

1. すべてのMT5インスタンスをアンインストールする。

2.C:¥Users[username]¥AppDataRoamingから「Metaquotes」フォルダを削除する。

インストールフォルダを実行フォルダと同じにする:

3.MT5を再インストールする。Program filesフォルダに入れるのではなく、例えばC:∕Accounts∕MT5にする。インストール中、'launch after finish'のチェックを外す。

4.MT5を初めて起動する前に、デスクトップ上でMT5のショートカットを右クリックし、プロパティをクリックして、パスに「/portable」を追加します。つまり、C:¥Accounts¥MT5¥terminal.exe /portableとなる。(terminal.exeの後にスペースがあり、スラッシュがあり、portableは大文字でないことに注意)。OKをクリックする。

MT4をインストールし、EAをコピーし、ターミナルを実行します。

5.MT4をC:¥Accounts¥MT5¥MQL¥Files¥MetaTrader4にインストールする。(フォルダー名 MetaTrader 4 などは、EAs の名前と同じでなければなりません。)

6.Translator と Copyist EA をそれぞれのフォルダにコピーする。

7.MT5マスターとMT4スレーブの両方を実行する。

8.お楽しみください

ヒント何かが適切に行われていない場合は、次のステップに進まないでください。

専門的でない」言葉を使って申し訳ありません!

時間を割いて書いてくれてありがとう。

もう一つの方法は、デフォルトのインストール設定のまま、2つのフォルダをシンボリックリンクで接続することです。

http://en.wikipedia.org/wiki/NTFS_symbolic_link

 

mql4++ コンパイラ

これはmt4のレシーバー用の新バージョンで、パラメータが追加されているのでしょうか?