The namespace provides access to classes that represent the ADO.NET architecture. ADO.NET lets you build components that efficiently manage data from multiple data sources. In a disconnected scenario such as the Internet, ADO.NET provides the tools to request, update, and reconcile data in multiple tier systems. The ADO.NET architecture is...
////////////////////////////////////////////////////////////////////////////////// Object classes, used in working the trade system //////////////////////////////////////////////////////////////////////////////////
#include <\Units\Objects\UManagerConnect.mqh> //Class - CMqlManagerConnect
3.CMqlManagerConnect 型の変数を作成します。
////////////////////////////////////////////////////////////////////////////////// Global variables, used in working the trade system ////////////////////////////////////////////////////////////////////////////////////****************************************************************************//// Objects created on the grounds of the classes ////****************************************************************************//
CMqlManagerConnect ManagerConnect; //Менеджер контролирующий состояние коннекта
4.タイマーでは、次のようになります。
voidOnTimer()
{
//----------------------------------------------------------------------------////Work variables / Служебные переменные//----------------------------------------------------------------------------////****************************************************************************//// Контроль состояния соединения с сервером // //****************************************************************************//
ManagerConnect.OnEventTimer();
//----------------------------------------------------------------------------//
}
voidOnChartEvent(constint id, // идентификатор события constlong& lparam, // параметр события типа longconstdouble& dparam, // параметр события типа doubleconststring& sparam // параметр события типа string
)
{
//----------------------------------------------------------------------------////Work variables / Служебные переменные//----------------------------------------------------------------------------////****************************************************************************//// Processing user events ////****************************************************************************//if(id>CHARTEVENT_CUSTOM)
//User event is received / Получено пользовательское событие
{
//Выводим текстовое сообщение о событии в комментарийComment("User Event ",sparam);
if(id==CHARTEVENT_CUSTOM+1)
//Соединеие с сервером востановлено
{
//тут обрабатываем все что нам нужно
}
if(id==CHARTEVENT_CUSTOM+2)
//Соединеие с сервером потеряно
{
//тут обрабатываем все что нам нужно
}
}
//----------------------------------------------------------------------------//
}
ご検討ください
MQL5にインジケーターやエキスパート、スクリプトから変更できる機能の追加を提案
窓際のマックスバー...
プログラム制御可能な制限を設けると便利な場合がある
追記
また、可能であれば、通常モードでテストを行う場合、最適化 結果と最適化グラフを削除するようにしてください。
それとも、いつでも見られるというのは、そんな芸当なんでしょうか?
追記
また、可能であれば、通常モードでテストを行う場合、最適化結果と最適化グラフを削除するようにしてください。
それとも、いつでも見られるようにするための仕掛けなのでしょうか?
そのような提案には、異議を唱えたい。最適化後、結果を分析するために、通常モードで複数のパスを別々にチェックする必要があります(該当するパスをクリックすることで実現)。通常モードでの最初のテスト後に最適化の結果が消えて しまうと、その結果を使って作業する貴重な機会が失われてしまいます。
私はこの提案に異議を唱えたい。最適化した後、通常モードで多くのパスを個別にテストして結果を分析する必要があります(該当するパスをクリックすることで実現)。通常モードでの最初のテスト後に最適化の結果が消えてしまうと、その結果を使って作業する貴重な機会が失われてしまいます。
まあ、主張しない、というのがこのセリフなのですが......>それとも、いつでも見られるというのは、そんな芸当なのでしょうか?
1)実装されているものではなく、通常のイベントを追加する必要があります。
最初に頭に浮かんだのは
OnBar、OnBarClose、OnQuote、OnDomChanged...
OnPositionOpened,OnPositionClosed...
OnConnected,Ondisconnected...
リクエストステータスの変更など
2) 人間のようなドキュメントを作る、例えばここhttp://msdn.microsoft.com/en-us/library/system.data.aspx。
3) 「APIを大衆に届ける」 -)
ps 開発者は、初心者向けのソフトを作っているか、自分がそうであるかのどちらかだと思う。
1)実装されているものではなく、通常のイベントを追加する必要があります。
最初に頭に浮かんだのは
OnBar、OnBarClose、OnQuote、OnDomChanged...
OnPositionOpened,OnPositionClosed...
OnConnected,Ondisconnected...
リクエストステータスの変更など
2) 人間のようなドキュメントを作る、例えばここhttp://msdn.microsoft.com/en-us/library/system.data.aspx。
3) 「APIを大衆に届ける」 -)
ps ps 開発者は初心者のためにソフトを作るか、自分が初心者のようなものであるかのどちらかだと思います。
USERイベントなんて のもあるんですね。自分でいくつでも実装できる。
OnConnectedとOnDisconnectedのイベントをタイマーでキャッチするのは以前からやっていたことです。必要であれば、OnBarやOnBarCloseなどのイベントも作成することができます。
そして、このようなブロックの助けを借りて、OnChartEventで それらを簡単にキャッチすることができます(ヘルプにすべて書いてあります、なぜ車輪を再発明するのですか?)
追記
そして、クラスレベルでは、どんな(まあ、ほとんど)イベントにも対応できる......。
USERイベントなんて のもあるんですね。自分でいくつでも実装できる。
OnConnectedとOnDisconnectedをタイマーでキャッチするのは以前からやっていたことです。必要であれば、OnBarやOnBarCloseなどのイベントも作成することができます。
その後、このブロックの助けを借りて、OnChartEventで それらをキャッチするだけです(ヘルプにすべて書いてあります、なぜ車輪を再発明するのですか?)
追記
そして、クラスレベルでは、どんな(まあ、ほとんど)イベントにも対応できる......。
どのように実装するのか興味深い(OnConnected?)
dentraf:
どのように実装するのか興味深い(OnConnected?)
はい、お願いします :)
Expert AdvisorでCMqlManagerConnectクラス(投稿に添付されたモジュール)を使って、これらのイベントを処理する例を紹介します。
1.モジュールを\MQL5Include フォルダ(サブディレクトリが望ましい)にコピーします。
I have it all here - MQL5IncludeUnits
2.Expert Advisorに、このファイルへのリンクを追加します。
3.CMqlManagerConnect 型の変数を作成します。
4.タイマーでは、次のようになります。
5OnChartEventに 以下のテキストを記述する必要があります。
追記
もちろん、OnChartEventにイベントを渡さず、クラス内で直接処理することも可能です(ベースまたは子孫のいずれでも)。しかし、この方法であっても、OnChartEventへの参照を残すことをお勧めします。なぜなら、他のチャートにイベントを伝える必要があるかもしれないからです...:)
はい、お願いします :)
ここでは、CMqlManagerConnect クラスを使用して Expert Advisor でこれらのイベントがどのように処理されるかの例を示します(モジュールは投稿に添付されています)。
1.モジュールを\MQL5Include フォルダ(サブディレクトリが望ましい)にコピーします。
I have it all here - MQL5IncludeUnits
2.Expert Advisorに、このファイルへのリンクを追加します。
3.CMqlManagerConnect 型の変数を作成します。
4.タイマーでは、次のようになります。
5 OnChartEventに以下のテキストを記述する必要があります。
追記
もちろん、OnChartEventにイベントを渡さず、クラス内で直接処理することも可能です(ベースまたは子孫のいずれでも)。しかし、この方法であっても、OnChartEventへの参照を残すことをお勧めします。なぜなら、他のチャートにイベントを伝える必要があるかもしれないからです...:)
CMqlManagerConnect クラスを自分で書いたのですか? サーバーへの接続を失ったときのサーバー列挙の解決策はありますか?