MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1012

 
Alexey Viktorov:

この記事の中で、"すべての端末に共有フォルダーがある "という言葉に注目してください。


この方法に関する情報を検索して、出発...フォルダーリンクと呼ばれるものです。

だから、こんなことができるんです。ライブラリを作成し、異なる端末からこのライブラリにアクセスすることで、データのやり取り を行ったり、1台のロボットを2mの端末に接続したりすることができます。リンクについては、わかるまで少し読みました。もしかしたら、もっと詳しく聞けるトピックがあるかも?

 
Seric29:

だから、こんなことができるんです。ライブラリを作成し、異なる端末からこのライブラリにアクセスすることで、データのやり取りを行ったり、1台のロボットを2台の端末に接続したりすることができます。リンクについては、わかるまで少し読みました。もしかしたら、もっと詳しく聞けるトピックがあるかも?

掲示板のトピックは見ていませんが、いくつかの説明書を見た結果、こちらの 方が理解しやすいと思います。試してみたらうまくいったが、まだ使う必要性を感じない。全端末の履歴を1つのフォルダにまとめるといいと思いますが。

 
Alexey Viktorov:

フォーラムではこのスレッドに出会わなかったのですが、いくつかの説明書を見た結果、こちらの 方が理解しやすいと思いました。試してみると効果はあるのですが、まだ必要性を感じません。全端末の履歴を1つのフォルダにまとめるのはいいと思いますが。

アドバイスありがとうございました。ハードリンクを使用しました



この場合、端末は同じボリュームにインストールされる必要があります。

というのも、私は愚かにもユニットを追加し、ex4とmq4のファイルをマージしてしまったのですが、最終的には双方ですべてが動作し、共有ライブラリを書いて使うことができるようになりました。どこまで信頼できるかはわかりませんが、チャートカウントでロボットを投げてみました。私はコードをコンパイルするとき、ファイルは2つの側面に変更しますが、片側の計算を更新し、私はオンラインモードで動作するようにロボットを残している場合、私はプログラムが同じである必要があり、完了すると未知の動作になりますようにコンパイルし、多分誰かがチェックする機会を持って、私はまだ確認することができません。

 
Seric29:

アドバイスありがとうございました。ハードリンクを使用しました



この場合、端末は同じボリュームにインストールされる必要があります。

その結果、ex4とmq4の両方が動作するようになり、共有ライブラリを書いて使えるようになりました。どこまで信頼できるかはわかりませんが、チャートカウントでロボットを投げてみました。私は2つの側面にコードファイルの変更が、片側の計算を更新コンパイルするとき、私はオンラインモードで動作するようにロボットを残す場合、私はプログラムが同じである必要があり、完了すると動作するようにコンパイルが不明ですが、多分誰かが確認する機会を持って、私はまだテストすることはできません。

だから、コンパイラに直接マジックフォルダがある、または適切ではありません?


 
Seric29:

アドバイスありがとうございました。ハードリンクを使用しました

なぜ、特定のファイルへのリンクを作るのか?フォルダーにシンボリックリンクを張って、そのフォルダーのすべてのファイルを、そのリンクが張られたターミナルで利用できるようにした方が良いのではないでしょうか?

それはいい考えですね。

画像00.pngでは、左側がフォルダ本体、右側がある端末からのリンクです。

画像11.pngでも、他の端末からのリンク

そして、画像22.pngのコンテンツで、左側はフォルダそのもの、右側はリンクからのコンテンツです。

ファイル:
00.png  102 kb
11.png  103 kb
22.png  118 kb
 
Vitaly Muzichenko:

では、コンパイラに魔法のフォルダの権利があるのか、それとも適わないのか?


これが可能かどうか、確実に動作するかどうかを聞いているのです。答えはノーだった。あるプログラムを勧められて、もちろんいじったのですが、うまくいきませんでした。その後、コマンドラインのアドバイスを与え、私は周りを再生し、何かを得た3時間を過ごしたが、私はそれが信頼性の高い最初の更新ファイルの日付と内容ではない方法がわからないし、コンテンツのみを変更し始め、日付が変更されていない、それは少し奇妙です。あなたのメソッドはどこで読めますか?信頼性はどうなのか、ロボット同士がオンラインでコミュニケーションできるのか。

 
Alexey Viktorov:

なぜ、特定のファイルへのリンクを作るのか?フォルダにシンボリックリンクを張って、このフォルダの全ファイルをリンク先のターミナルで利用できるようにした方が良いのでは?

そんな感じで注目されています。

スクリーンショット00.pngの左側はフォルダそのもの、右側はある端末からのリンクです

写真11.pngは、別の端末からのリンクもあります。

そして、画像22.pngにはコンテンツがあり、左側にはフォルダそのものがあり、右側にはコンテンツへのリンクがあります。

私はそれを見た、TotalComander経由で同期しますが、私が理解するように、それはファイル(例えば写真)を転送するだけであり、我々はテキストファイルがあり、それが変化するという話であれば、私がファイルに何かを追加した場合、それは変更されるのでしょうか?TotalComanderの通信の信頼性はどうなのか、ロボット同士がオンラインで通信できるのか、それともコードを書くためだけなのか。

 
Seric29:

TotalComander経由の同期、見たことがありますが、私の理解ではファイル(写真など)の転送だけですが、テキストファイルの話で、ファイルに何かを追加したら変わってしまうのでしょうか?TotalComanderによる通信の信頼性は?ロボット同士がオンラインで通信できるようになるのか、それともコードを書くときだけ使えるようになるのか?

TotalComanderは、2つのフォルダの中身を表示するためだけのものです。Windowsのエクスプローラーよりも身近に感じられる。シンボリックリンクも全てコマンドラインで行いました。ただ、/Hの代わりに/Dを使い、ファイルではなく、フォルダを使用しました。そして、異なる場所からのこのリンクは、同じファイルへのアクセスを持っています。

とはいえ、1つの端末で使用する際に、そのファイルが使えるかどうかが気になっただけですが...。セゲイ・タルボリンに直接連絡した方がいい。私の理解では、彼はそれを使っていて、おそらく正確に知っているのでしょう。

 
Alexey Viktorov:

TotalComanderは、2つのフォルダの中身を表示するだけのものです。Windowsのエクスプローラーよりも馴染みがあるのも特徴です。そして、すべてのシンボリックリンクをコマンドラインから同じように行いました。ただ、/Hの代わりに/Dを使い、ファイルではなく、フォルダを使用しました。そして、異なる場所からのこのリンクは、同じファイルへのアクセスを持っています。

ただ、今思ったのですが、ある端末で使用する際に、そのファイルが利用できるかどうか・・・。個人的にセゲイタルボリンに書いた方がいい。私の理解では、彼はそれを使っていて、おそらく正確に知っているのでしょう。

私はそれを理解するように、一般的に、合計司令官で遊んで、その後、ボタンを押すの時点で唯一の同期が起こっているとコンソールキーHを介して、ファイルの内容がリアルタイムで変化しているが、あなたはロボットが参照によって行われた元の計算でコンパイルをクリックすると変更されていない、私はコンパイルボタンとリンクを押す必要がありますが、ロボットが同じである場合はコードの作品を触れない、それがオンラインで動作するかどうかはわからない、まだテストすることが可能未完成の設定プログラムをもたらすことができます。しかし、ファイルはプロパティを変更するので、私は動作するはずだと思います。一般的に、ここまたはコンソールを介して、または男は、上記の何かを提案したが、私は正常な情報を見つけていない。アドバイスしてくれた男性に手紙を書きます。

 

こんにちは、MQL4からMQL5へ正しく関数を書き換える方法を教えてください。

//+------------------------------------------------------------------+
//最後のバーで決済されたSell_Orderの数
int Anz_g_Sell_Order()
{
int count = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == true)
&& OrderSymbol() == Symbol() && OrderType() == OP_SELL
&& OrderMagicNumber() == Magic_Nr
&& OrderCloseTime() > iTime(NULL,PERIOD_M15,0))
{
count++です。
}
}
return(count)です。
}
//+---------------------------------------------------------------------+

書き直したのですが、なぜかうまくいきません、どこがエラーなのでしょうか?:

//+------------------------------------------------------------------+
//直近のバーでクローズしたSell_Orderの数
int Anzahl_g_Sell_Order()
{
int count = 0;
if(HistorySelect(0,INT_MAX))
{
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong ticket = HistoryDealGetTicket(i);
if(HistoryDealGetString(ticket,DEAL_SYMBOL) == _Symbol)
&& HistoryDealGetInteger(ticket,DEAL_TYPE) == DEAL_TYPE_SELL(チケットのタイプ)。
&& HistoryDealGetInteger(ticket,DEAL_ENTRY ) ==DEAL_ENTRY_OUT
&& DEAL_ENTRY_OUT > iTime(NULL,PERIOD_M15,0))
{
count++です。
}
}
}
return(count)です。
}
//+---------------------------------------------------------------------+

理由: