#import "TestLib.dll"//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
int x=6;
TestClass::Inc(x);
Print(x);
}
struct MqlTick { datetime time; // Last price update time double bid; // Current Bid price double ask; // Current Ask price double last; // Current price of the Last trade ulong volume; // Volume for the current Last price long time_msc; // Last price update time in milliseconds uint flags; // Tick flags double volume_real; // Volume for the current Last price with greater accuracy };
struct MqlBookInfo
{
ENUM_BOOK_TYPE type; // order type from the ENUM_BOOK_TYPE enumerationdouble price; // pricelong volume; // volumedouble volume_real; // volume with greater accuracy
};
enum Main
{
PRICE_CLOSE_,
PRICE_OPEN_
};
input Main Inp=PRICE_CLOSE;
//+------------------------------------------------------------------+//| Start function |//+------------------------------------------------------------------+voidOnStart()
{
}
コンパイラは警告を表示します:
implicit conversion from 'enum ENUM_APPLIED_PRICE' to 'enum Main' 'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
bool CalendarValueHistoryByEvent(
ulong event_id, // event ID
MqlCalendarValue& values[], // array of valuesdatetime datetime_from, // period beginning datedatetime datetime_to= 0 // period end date
);
bool CalendarValueHistory(
ulong event_id, // event IDulong & change_id, // last calendar change ID
MqlCalendarValue& values[], // array of valuesstring country_code=NULL, // country codestring currency=NULL // currency
);
新しい構造
MqlCalendarCountry —国の説明。
struct MqlCalendarCountry
{
ulong id; // country ID in ISO 3166-1string name; // text name of the countrystring code; // code name of the country in ISO 3166-1 alpha-2string currency; // country currency codestring currency_symbol; // country currency symbol/signstring url_name; // country name used in URL on mql5.com
};
MqlCalendarEvent —イベントの説明。
struct MqlCalendarEvent
{
ulong id; // event ID
ENUM_CALENDAR_EVENT_TYPE type; // event type
ENUM_CALENDAR_EVENT_SECTOR sector; // sector to which the event belongs
ENUM_CALENDAR_EVENT_FREQUENCY frequency; // event release frequency
ENUM_CALENDAR_EVENT_TIMEMODE time_mode; // event release time modeulong country_id; // country ID
ENUM_CALENDAR_EVENT_UNIT unit; // unit for the event values
ENUM_CALENDAR_EVENT_IMPORTANCE importance; // event importance
ENUM_CALENDAR_EVENT_MULTIPLIER multiplier; // event importance multiplieruint digits; // number of decimal places in the event valuestring source_url; // source URLstring event_code; // event codestring name; // text name of the event in the terminal language
};
MqlCalendarValue —イベント値の説明。
struct MqlCalendarValue
{
ulong id; // value IDulong event_id; // event IDdatetime time; // event date and timedatetime period; // period, for which the event is publishedint revision; // published indicator revision in relation to the reported periodlong actual_value; // current event valuelong prev_value; // previous event valuelong revised_prev_value; // revised previous event valuelong forecast_value; // forecast event value
ENUM_CALENDAR_EVENT_IMPACRT impact_type; // potential impact on the currency rate
};
新しい列挙
enum ENUM_CALENDAR_EVENT_FREQUENCY
{
CALENDAR_FREQUENCY_NONE = 0 , // not used
CALENDAR_FREQUENCY_WEEK = 1 , // weekly
CALENDAR_FREQUENCY_MONTH = 2 , // monthly
CALENDAR_FREQUENCY_QUARTER = 3 , // quarterly
CALENDAR_FREQUENCY_YEAR = 4 , // yearly
CALENDAR_FREQUENCY_DAY = 5 , // daily
};
enum ENUM_CALENDAR_EVENT_TYPE
{
CALENDAR_TYPE_EVENT = 0 , // event (meeting, speech, etc.)
CALENDAR_TYPE_INDICATOR = 1 , // indicator
CALENDAR_TYPE_HOLIDAY = 2 , // holiday
};
enum ENUM_CALENDAR_EVENT_SECTOR
{
CALENDAR_SECTOR_NONE = 0 , // no
CALENDAR_SECTOR_MARKET = 1 , // market
CALENDAR_SECTOR_GDP = 2 , // GDP
CALENDAR_SECTOR_JOBS = 3 , // jobs
CALENDAR_SECTOR_PRICES = 4 , // prices
CALENDAR_SECTOR_MONEY = 5 , // money
CALENDAR_SECTOR_TRADE = 6 , // trade
CALENDAR_SECTOR_GOVERNMENT = 7 , // government
CALENDAR_SECTOR_BUSINESS = 8 , // business
CALENDAR_SECTOR_CONSUMER = 9 , // consumer
CALENDAR_SECTOR_HOUSING = 10 , // housing
CALENDAR_SECTOR_TAXES = 11 , // taxes
CALENDAR_SECTOR_HOLIDAYS = 12 , // holidays
};
enum ENUM_CALENDAR_EVENT_IMPORTANCE
{
CALENDAR_IMPORTANCE_LOW = 0 , // no
CALENDAR_IMPORTANCE_NONE = 1 , // low
CALENDAR_IMPORTANCE_MODERATE = 2 , // moderate
CALENDAR_IMPORTANCE_HIGH = 3 , // high
};
enum ENUM_CALENDAR_EVENT_UNIT
{
CALENDAR_UNIT_NONE = 0 , // no
CALENDAR_UNIT_PERCENT = 1 , // percent
CALENDAR_UNIT_CURRENCY = 2 , // national currency
CALENDAR_UNIT_HOUR = 3 , // number of hours
CALENDAR_UNIT_JOB = 4 , // number of jobs
CALENDAR_UNIT_RIG = 5 , // number of rigs
CALENDAR_UNIT_USD = 6 , // US dollar
CALENDAR_UNIT_PEOPLE = 7 , // number of people
CALENDAR_UNIT_MORTGAGE = 8 , // number of mortgages
CALENDAR_UNIT_VOTE = 9 , // number of votes
CALENDAR_UNIT_BARREL = 10 , // number of barrels
CALENDAR_UNIT_CUBICFEET = 11 , // volume in cubic feet
CALENDAR_UNIT_POSITION = 12 , // number of job positions
CALENDAR_UNIT_BUILDING = 13// number of buildings
};
enum ENUM_CALENDAR_EVENT_MULTIPLIER
{
CALENDAR_MULTIPLIER_NONE = 0 , // no
CALENDAR_MULTIPLIER_THOUSANDS = 1 , // thousands
CALENDAR_MULTIPLIER_MILLIONS = 2 , // millions
CALENDAR_MULTIPLIER_BILLIONS = 3 , // billions
CALENDAR_MULTIPLIER_TRILLIONS = 4 , // trillions
};
enum ENUM_CALENDAR_EVENT_IMPACRT
{
CALENDAR_IMPACT_NA = 0 , // not available
CALENDAR_IMPACT_POSITIVE = 1 , // positive
CALENDAR_IMPACT_NEGATIVE = 2 , // negative
};
enum ENUM_CALENDAR_EVENT_TIMEMODE
{
CALENDAR_TIMEMODE_DATETIME = 0 , // the source publishes the exact time
CALENDAR_TIMEMODE_DATE = 1 , // the event takes the whole day
CALENDAR_TIMEMODE_NOTIME = 2 , // the source does not publish the event time
CALENDAR_TIMEMODE_TENTATIVE = 3 , // the source provides only date, but does not publish the exact time in advance, exact time is added when event occurs
};
新しいエラーコード
ERR_CALENDAR_MORE_DATA = 5400 , // the array is small for the whole result (values which fit in the array were passed)
ERR_CALENDAR_TIMEOUT = 5401 , // timed out waiting for a response to the calendar data request
ERR_CALENDAR_NO_DATA = 5402 , // data not found
bool ArrayInsert(
void & dst_array[], // receiver arrayconstvoid & src_array[], // source arrayuint dst_start, // index in the receiver array where to insertuint src_start= 0 , // index in the source array to start copyinguint count=WHOLE_ARRAY // number of inserted elements
);
ArrayReverseは、指定されたインデックスで始まる指定された数の要素を配列内で反転します。
bool ArrayReverse(
void & array[], // array of any typeuint start= 0 , // index to start reversinguint count=WHOLE_ARRAY // number of elements
);
int CustomBookAdd(
conststring symbol, // symbol nameconst MqlBookInfo& books[] // an array with the DOM elements descriptionsuint count=WHOLE_ARRAY // number of elements to be used
);
boolCustomSymbolCreate (
conststring symbol_name, // custom symbol nameconststring symbol_path= "" , // name of the group in which the symbol will be createdconststring symbol_origin=NULL // name of the symbol based on which the custom symbol will be created
);
近日公開予定
テレグラムを模した新しい通信 システム -この記事を 読む
============
イチモク
はじめに
後
============
ヒントスレッド- 良いスレッドは、視覚化された情報を使用して作成されました。
それは強く、すべての初心者に(知るために)、そして経験豊富なユーザーに(彼らの知識をリフレッシュするために)この小さなスレッドを読むことをお勧めします。
----------------
フリーランスサービス
----------------
プラットフォーム
----------------
エキスパートアドバイザー
----------------
テスター
これは非常に重要で非常に興味深いアップデートです - それを読んでください - 。
取引、自動売買システムとテスト取引戦略に関するフォーラム
MetaTrader 5 Platform Beta Build 1910:MQL5でチャートと.Netライブラリのドラッグアンドドロップの拘束なし
MetaQuotes Software Corp., 2018.10.12 19:43
更新されたMetaTrader 5プラットフォームのベータ版は、2018年10月14日にリリースされる予定です。access.metatrader5.com:443 にある公開 MetaQuotes-Demo サーバーを更新します。更新されたプラットフォームの機能を評価し、開発者がエラーを修正するのを助けるために、すべてのトレーダーにテストに参加することをお勧めします。
新しいMetaTrader 5プラットフォームの最終ビルドは、パブリックベータテスト後にリリースされる予定です。
このアップデートでは、以下の変更が行われます。
この機能は、複数のモニターを使用する場合に便利です。このため、1つのモニターにメインプラットフォームウィンドウを設定し、口座の状態をコントロールし、チャートを2番目のスクリーンに移動して市場の状況を観察することができます。ターミナルからチャートを切り離すには、そのコンテキストメニューのDockedオプションを無効にします。その後、チャートを任意のモニターに移動してください。

デタッチャートには独立したツールバーがあり、モニターを切り替えることなく分析オブジェクトやインディケータを適用することができます。ツールバーのコンテキストメニューで利用可能なコマンドを管理したり、非表示にすることができます。。
グループチャットとチャンネルは、公開または非公開にすることができます。自由に参加するか、招待制にするかは、作成者が決定します。また、チャンネルやチャットにモデレーターを割り当て、コミュニケーションをさらにコントロールすることができます。
最小取引量とその変更ステップは、ブローカー側の金融商品設定に依存します。
。
.NETライブラリの関数を使用するには、特定の関数を定義することなく、単にDLL自体をインポートしてください。MetaEditorは自動的に使用可能なすべての関数をインポートします:
ライブラリから関数を呼び出すには、単にそれをインポートします:
TestClass の Inc 関数の C# コードは次のようになります:
実行の結果、スクリプトは7という値を返します。
。
指定子に関する詳しい情報は、MSDNで ご覧ください。
。
。
ENUM_CHART_PROPERTY_INTEGER 列挙に次のプロパティを追加した:
ENUM_TERMINAL_INFO_INTEGER 列挙に次の関数を追加した:
。
struct MqlTick
{
datetime time; // Last price update time
double bid; // Current Bid price
double ask; // Current Ask price
double last; // Current price of the Last trade
ulong volume; // Volume for the current Last price
long time_msc; // Last price update time in milliseconds
uint flags; // Tick flags
double volume_real; // Volume for the current Last price with greater accuracy
};
。
。
これらのプロパティを取得するには、SymbolInfoDouble 関数を使用してください。
次のコードの場合:
コンパイラは警告を表示します:
'Main::PRICE_OPEN_' instead of 'ENUM_APPLIED_PRICE::PRICE_CLOSE' will be used
。
。
良いスレッドが立ちました -MQL 5の始め方
取引、自動取引システム、取引戦略のテストに関するフォーラム
MQL5を始める方法
ウラジミール・カルプトフ, 2018.12.24 20:34
このスレッドでは、MQL5のコード例について説明します。インジケータからデータを取得する方法、アドバイザーをプログラムする方法...一般的に、MQL5言語への初心者からのあらゆる質問の例があることでしょう。
もしあなたがメタトレーダー5ターミナルを知り始めたばかりなら、次のスレッドをお勧めします。
メタトレーダー 5の始め方
何から始め ればいい?
フリーランスサービスでのヒントをご活 用ください
市場のすべての売り手が読むべき記事があります:それは市場の製品の検証についてです - 。
----------------
取引ロボットがマーケットで公開される前に通過しなければならないチェック事項
エキスパートやインジケーターのロジックに小さな誤りがあると取引口座に損失が発生する可能性があるため、市場に商品が公開される前に、必ず事前チェックを受けなければなりません。そのため、弊社では、マーケット商品の必要な品質レベルを確保するための一連の基本的なチェックを開発しました。
製品をチェックする過程でマーケットモデレーターによって何らかのエラーが確認された場合、それらをすべて修正する必要があります。この記事では、開発者が取引ロボットやテクニカルインディケーターで最も頻繁に発生するエラーについて考察します。また、以下の記事を読むことをお勧めします。
ありがとう男...
とても役に立った、素晴らしい努力だ...
取引、自動取引システム、および取引戦略のテストに関するフォーラム
新しいMetaTrader5プラットフォームビルド2005:経済カレンダー、サービスとしてのMQL5アプリケーションおよびR言語API
MetaQuotes Software Corp. 、2019.02.20 17:20
MetaTrader 5プラットフォームアップデートは2019年2月21日にリリースされます。新しいバージョンには、次の変更が含まれています。
- ターミナル:完全に改訂された組み込みの経済カレンダー。

- ターミナル:新しいタイプのMQL5アプリケーション—サービスを追加しました。この新しいタイプでは、端末のカスタム価格フィードを作成できます。つまり、ブローカーのトレードサーバーに実装されているのと同じように、外部システムからの価格配信をリアルタイムで実装できます。

- ターミナル:学習プログラムが追加されました。

- ターミナル: 取引口座の履歴はポジションとして表示できます。プラットフォームは、ポジションに関連する取引(オープニング、ボリュームの増加、部分的または完全なクロージング)に関するデータを収集し、情報を1つのレコードにグループ化します。したがって、ポジションの詳細にアクセスできます:始値と終値、出来高、価格、結果。この効率的なプレゼンテーションフォームは、ファイルにエクスポートされた履歴レポートで利用できるようになりました。

- ターミナル: R言語を使用するアプリケーションを介したMetaTrader5ターミナルデータのリクエストを可能にする新しいAPIを追加しました。

R CMD INSTALL --build MetaTrader
- MT5Initializeは、MetaTrader5ターミナルとの接続を初期化して確立します。必要に応じて、コマンド実行中に端末を起動します。
- MT5Shutdownは初期化を解除し、MetaTrader5から切断します。
- MT5VersionはMetaTrader5ターミナルバージョンを取得します。
- MT5TerminalInfoは、ブローカーのサーバーへの端末接続の状態とパラメーター(アカウント番号とサーバーアドレス)を取得します。
- MT5WaitTerminalは、MetaTrader5ターミナルがブローカーのサーバーに接続するのを待ちます。
- MT5CopyTicksFrom(symbol、from、count、flags)は、指定された日付から指定されたティック数をコピーします。日付は、01.01.1970以降のミリ秒単位で指定されます。
- MT5CopyTicksRange(symbol、from、to、flags)は、指定された期間内からティックをコピーします。日付は、01.01.1970以降のミリ秒単位で指定されます。
- MT5CopyRatesFrom(symbol、timeframe、from、count)は、指定された日付から始まる指定された数の1分バーをコピーします。日付は01.01.1970からの秒数で指定されます。
- MT5CopyRatesFromPos(symbol、timeframe、start_pos、count)は、最後のバーを基準にして、指定された位置から1分のバーをコピーします。
- MT5CopyRatesFromRange(symbol、timeframe、date_from、date_to)は、指定された期間内からバーをコピーします。日付は01.01.1970からの秒数で指定されます。
- ターミナル:反対側のポジションを閉じるために使用される最適化されたクローズバイダイアログ。これで、開いているポジションが多数ある場合でも、ダイアログの速度が低下することはありません。
- ターミナル:データがスキップされることがあるため、 合成シンボルの計算エラーが修正されました。
- ターミナル: カスタムシンボルが削除されると、その目盛りとバーの履歴を保存しているファイルも削除されます。これにより、ハードディスクに未使用のデータが蓄積するのを防ぎます。
- ターミナル:高DPI画面での検索結果の表示を修正しました。
- MQL5:MQL5プログラムからの経済カレンダーデータへのアクセスを実装しました。
- MQL5:ティックとバーの履歴に関連する修正と操作速度の改善。
- MQL5:カスタムトレーディングシンボル、 CustomTicks*およびCustomRates*のティッカーおよびバー履歴変更機能に関連する修正と大幅な操作速度の改善。
- MQL5:新しいデータ変換関数。
- ushort、uint、およびulong値のバイト順序を変更するためのMathSwap関数が追加されました。
- MQL5:システムソケットを介してリモートホストへのTCP接続を作成するためのネットワーク機能を追加しました。
- SocketCreateは、指定されたフラグを使用してソケットを作成し、そのハンドルを返します
- SocketCloseはソケットを閉じます
- SocketConnectは、タイムアウト制御を使用してサーバーに接続します
- SocketIsConnectedは、ソケットが現在接続されているかどうかを確認します
- SocketIsReadableは、ソケットから読み取ることができるバイト数を取得します
- SocketIsWritableは、現時点でこのソケットへのデータ書き込みが可能かどうかを確認します
- SocketTimeoutsは、システムソケットオブジェクトのデータ受信および送信タイムアウトを設定します
- SocketReadはソケットからデータを読み取ります
- SocketSendはデータをソケットに書き込みます
- SocketTlsHandshakeは、TLSハンドシェイクプロトコルを使用して、指定されたホストとの安全なTLS(SSL)接続を開始します
- SocketTlsCertificateは、安全なネットワーク接続に使用される証明書に関する情報を受け取ります
- SocketTlsReadは、安全なTLS接続からデータを読み取ります
- SocketTlsReadAvailableは、安全なTLS接続から利用可能なすべてのデータを読み取ります
- SocketTlsSendは、安全なTLS接続を使用してデータを送信します
ネットワーク機能を使用した接続が確立されているホストのアドレスは、端末設定の許可されたアドレスのリストに明示的に追加する必要があります。
- ERR_NETSOCKET_INVALIDHANDLE(5270):関数に渡された無効なソケットハンドル
- ERR_NETSOCKET_TOO_MANY_OPENED(5271):開いているソケットが多すぎます(最大128)
- ERR_NETSOCKET_CANNOT_CONNECT(5272):リモートホストへの接続中にエラーが発生しました
- ERR_NETSOCKET_IO_ERROR(5273):ソケットからのデータの送受信中にエラーが発生しました
- ERR_NETSOCKET_HANDSHAKE_FAILED(5274):セキュア接続確立エラー(TLSハンドシェイク)
- ERR_NETSOCKET_NO_CERTIFICATE(5275)—安全な接続に使用される証明書に関するデータがありません
- MQL5:文字列操作用の新しい関数を追加しました:
- MQL5:配列操作用の新しい関数を追加しました:
- MQL5:新しい「uintcount」パラメーターが関数CustomRatesUpdate 、 CustomRatesReplace 、 CustomTicksAdd 、およびCustomTicksReplaceに追加されました。これにより、これらの関数に使用される、渡された配列の要素数を指定できます。デフォルトでは、WHOLE_ARRAY値がパラメーターに使用されます。これは、アレイ全体が利用されることを意味します。
- MQL5:カスタムシンボルの市場の深さのステータスを渡すためのCustomBookAdd関数が追加されました。この機能により、ブローカーのサーバーから価格が到着したかのように、市場の深さをブロードキャストできます。
- MQL5: CustomSymbolCreate関数のオーバーロードを追加しました。これにより、既存の取引シンボルに基づいてカスタム取引シンボルを作成できます。作成後、対応する関数を使用して任意のシンボルプロパティを編集できます。
- 日付/時刻の文字列を日時値に変換するStringToTime関数が更新されました。現在、次の日付形式をサポートしています。
- yyyy.mm.dd [hh:mi]
- yyyy.mm.dd [hh:mi:ss]
- yyyymmdd [hh:mi:ss]
- yyyymmdd [hhmiss]
- yyyy / mm / dd [hh:mi:ss]
- yyyy-mm-dd [hh:mi:ss]
- MQL5: ENUM_TERMINAL_INFO_INTEGER列挙型の新しいTERMINAL_VPSプロパティ。ターミナルがMetaTrader仮想ホスティングサーバー(MetaTrader VPS)で実行されていることを示しています。アプリケーションがホスティングサーバーで実行されている場合、仮想サーバーにはグラフィカルユーザーインターフェイスがないため、そのすべての視覚的機能を無効にすることができます。
- MQL5: ENUM_SYMBOL_INFO_INTEGER列挙の新しいSYMBOL_EXISTプロパティは、この名前のシンボルが存在することを意味します。
- MQL5:テンプレート関数の事前宣言を使用する場合の入力を修正しました。
- MQL5:取引口座を変更する際のインジケーターの再初期化を追加しました。
- MQL5:最適化されたStringSplit関数。
- MQL5:標準ライブラリ操作のエラーを修正しました。
- テスター: TesterStop機能が追加されました—テストエージェントのエキスパートアドバイザーの定期的な早期シャットダウン。これで、指定された負けトレード数、事前設定されたドローダウンレベル、またはその他の基準に達した後、テストを強制的に停止できます。
- テスター:実際のティックモードでMQL5クラウドネットワークを介してエキスパートアドバイザーをテストおよび最適化する機能を無効にしました。このモードは、ローカルエージェントとローカルネットワークファームでのみ使用できます。
- テスター:視覚テスト中のインジケーターの作業を改善しました。これで、最大の視覚化速度であっても、価格チャートとインジケーターラインが同期して描画されます。
- テスター:最適化され、大幅に加速されたテストと最適化。
- テスター:履歴データのインジケーターのデバッグを修正しました。これで、OnInitおよびOnDeinitインジケーター関数を適切にデバッグできます。
- テスター:複数通貨のエキスパートアドバイザーをテストするときに、履歴データへのより高速なアクセスを実装しました。
- テスター:履歴データのデバッグ中にビジュアルテスターがフリーズすることがある問題を修正しました。
- テスター:エージェントがタスクパッケージを処理するときに、最適化パスのより高速な開始を実装しました。
- テスター:タスクパッケージをテストエージェントに配布するポリシーを変更しました。パッケージサイズが大きくなったため、ネットワーク運用でのリソース消費が大幅に削減されました。
- テスター:ローカル、ネットワーク、およびクラウドエージェントの使用を可能にするオプションの動作を変更しました。これで、オプションをオフにすると、エージェントは受信したタスクの処理を完了しますが、新しいタスクはエージェントに与えられなくなります。以前のバージョンでは、動作は「Disable」コマンドと同様で、エージェントの動作をすぐに停止していました。

- MetaEditor:デバッガーでの非ANSI文字のサポートが追加されました。キリル文字で変数名を指定しても、式が正しく表示されるようになりました。
- MetaEditor:高DPI画面での検索結果の表示を修正しました。
- クロアチア語へのユーザーインターフェイスの翻訳を追加しました。
- ドキュメントが更新されました。
アップデートはLiveUpdateシステムから入手できます。経済カレンダーは当社独自のソリューションです。その中には、米国、欧州連合、日本、英国、カナダ、オーストラリア、中国など、13の最大の世界経済に関連する600を超える金融ニュースと指標があります。関連するデータは、オープンソースからリアルタイムで収集されます。
新しいバージョンは、更新されたコンテンツと高度なイベントフィルター(時間、優先度、通貨、国別)を備えています。
MQL5プログラムからカレンダーデータにアクセスできるようになりました。詳しくは下記をご覧ください。
Expert Advisor、インジケーター、スクリプトとは異なり、サービスは特定のチャートにリンクされていません。このようなアプリケーションはバックグラウンドで実行され、端末の起動時に自動的に起動されます(このようなアプリが強制的に停止された場合を除く)。
サービスは、ナビゲータウィンドウ内の新しいセクションから管理できます。
サービスの作成方法
サービステンプレートを作成するには、対応するMQL5ウィザードオプションを使用します。スクリプトと同様に、サービスには1つのOnStartエントリポイントがあります。この時点で、ネットワーク機能を使用して、無限のデータ受信および処理サイクルを実装できます。
サービスの開始方法
異なるパラメーターを使用して複数のExpertAdvisorまたはインジケーターのコピーを実行するには、それらを異なるチャートで起動する必要があります。この場合、さまざまなプログラムインスタンスが作成され、それらは独立して動作します。サービスはチャートにリンクされていないため、サービスインスタンスを作成するための特別なメカニズムが実装されています。
ナビゲーターからサービスを選択し、コンテキストメニューの[サービスの追加]をクリックします。これにより、標準のMQL5プログラムダイアログが開きます。このダイアログでは、トレーディングとシグナル設定へのアクセスを有効/無効にしたり、さまざまなパラメーターを設定したりできます。

サービスインスタンスは、適切なインスタンスメニューを使用して起動および停止できます。すべてのインスタンスを管理するには、サービスメニューを使用します。この新機能は、初心者がプラットフォームとの対話方法を学ぶのに役立ちます。プラットフォームの主な機能に関する100を超えるインタラクティブなヒントを追加しました。
- ヒントはツールバーの進行状況バーとしてシームレスに表示されるため、ユーザーの気を散らすことはありません。
- ヒントは、プラットフォームで実行したことがないアクションに対してのみ表示されます。
- すべてのヒントには、関連するインターフェイス要素に移動できるインタラクティブリンクが含まれています。たとえば、目的のプログラムを含む取引ダイアログまたはメニューをチップから直接起動できます。
適切なアクションを実行してトレーニングを続行すると、プログレスバーの塗りつぶされた領域が増加します。特別なMetaTraderパッケージを用意しました。 RとMetaTrader5ターミナル間の相互作用のためのDLL、ドキュメント、補助rファイルが含まれています。 CRANリポジトリへのパッケージ登録が完了しました。その後、ダウンロードしてインストールできるようになります。
パッケージは、特別なコマンドを使用してインストールできます。
データ要求に関連する次のコマンドを使用できます。
サポートされているコマンドのリストはさらに拡張されます。
新機能
CalendarCountryById —識別子によって国の説明を取得します。
CalendarEventById —識別子によってイベントの説明を取得します。
CalendarValueById —識別子によってイベント値の説明を取得します。
CalendarEventByCountry —その国で利用可能なイベントの配列を取得します。
CalendarEventByCurrency —影響を受ける通貨で利用可能なイベントの配列を取得します。
CalendarValueHistoryByEvent —イベント識別子によって、指定された期間の値の配列を取得します。
CalendarValueHistory —国や通貨でフィルタリングされた、すべてのイベントの指定された期間の値の配列を取得します。
CalendarValueLastByEvent —識別子ごとに最後のイベント値の配列を取得します。この関数は、前回のリクエスト以降に表示された値のリクエストを有効にします。この操作には、入力/出力パラメーター「change_id」が追加で使用されます。
カレンダデータベースが変更されるたびに、「change_id」プロパティ(最後の変更識別子)が更新されます。データ要求中に「change_id」を指定すると、端末はそれ以降に発生したイベントと、次の要求に使用できる現在の「change_id」値を返します。最初の関数呼び出し中に、ゼロの「change_id」を指定します。この関数はイベントを返しませんが、以降の要求のために現在の「change_id」を返します。
CalendarValueLast —国や通貨でフィルタリングされた、すべてのイベントの最後の値の配列を取得します。この関数は、前回のリクエスト以降に表示された値のリクエストを有効にします。 CalendarValueLastByEventと同様に、「change_id」プロパティがリクエストに使用されます。
新しい構造
MqlCalendarCountry —国の説明。
MqlCalendarEvent —イベントの説明。
MqlCalendarValue —イベント値の説明。
新しい列挙
新しいエラーコード
CharArrayToStructは、uchar配列をPOD構造体にコピーします。
StructToCharArrayは、POD構造体をuchar配列にコピーします。
ネットワーク機能を使用した操作用に、新しいエラーコードが追加されました。
StringReserveは、指定されたサイズのメモリバッファを文字列用に予約します。
StringSetLengthは、指定された文字列の長さを文字数で設定します。
ArrayRemoveは、指定されたインデックスで始まる指定された数の要素を配列から削除します。
ArrayInsertは、指定されたインデックスから始めて、ソース配列から指定された数の要素をレシーバー配列に挿入します。
ArrayReverseは、指定されたインデックスで始まる指定された数の要素を配列内で反転します。
カスタムシンボルのプロパティのコピー元となるシンボルの名前は、「symbol_origin」パラメータで指定されます。
この関数を使用して完了したテストは、成功したと見なされます。関数呼び出しの後、テスト中に取得された取引履歴とすべての取引統計が端末に渡されます。
こんにちは。
この2005をインストールする前に、ビルド1940を削除 する必要がありますか?
アンインストールせずに試したところ、インストール後は以前と同じ1940になっています。
また、昨年からアップデートができなくなったのですが、何か理由があるのでしょうか?
全部削除してやり直した方がいいのでしょうか?
ありがとうございます...