技術辞典

MQL5時系列・価格取得関数辞典|CopyRates・iClose・SymbolInfo・Time系まとめ

EAファンクラブ

MQL5でEAやインジケーターを開発する場合、ローソク足、価格、時刻、銘柄仕様を正しく取得できるかどうかは、シグナル判定、エントリー判定、決済判定、リスク管理、ログ確認のすべてに影響します。

特に、CopyRatesCopyOpen / CopyHigh / CopyLow / CopyCloseCopyTimeiOpen / iHigh / iLow / iClose / iTimeSymbolInfoDouble / SymbolInfoInteger / SymbolInfoStringTimeCurrentTimeTradeServerPeriodSeconds は、EA開発で頻繁に使う基本関数です。

この記事では、MQL5の時系列・価格取得関数を、EA開発や不具合調査で確認しやすい辞典形式で整理します。公式リファレンスの代わりに丸暗記するためではなく、どの関数を、どの場面で使い、どの戻り値・取得件数・時刻基準・ログを確認するかを整理するための記事です。

注意:この記事はMQL5開発・EA動作確認・インジケーター連携・不具合調査のための技術解説です。特定の売買判断、推奨エントリー、推奨ロット、推奨銘柄、利益保証、勝率保証、損失回避保証を行うものではありません。実運用前には、必ずデモ環境や検証環境で動作を確認してください。

MQL5時系列・価格取得関数の全体像

MQL5の時系列・価格取得関数は、ローソク足をまとめて取得する関数、単一価格を取得する関数、銘柄仕様を取得する関数、時刻を取得する関数に分けて理解すると整理しやすくなります。

分類主な用途代表関数確認すること
ローソク足一括取得OHLC、時刻、tick volume、spreadなどをまとめて取得するCopyRates取得件数、MqlRates配列、現在足と確定足、履歴不足
OHLC個別取得Open、High、Low、Closeを配列で取得するCopyOpen、CopyHigh、CopyLow、CopyClose取得件数、start position、copy count、配列方向
時刻配列取得バー時刻を配列で取得するCopyTimebar time、新バー判定、MTF同期、履歴不足
単一バー取得指定shiftの価格や時刻を簡易取得するiOpen、iHigh、iLow、iClose、iTimeshift、0値、履歴不足、現在足と確定足
銘柄情報取得Bid、Ask、point、digits、spread、volume条件などを取得するSymbolInfoDouble、SymbolInfoInteger、SymbolInfoString銘柄仕様、ロット条件、StopsLevel、取引可否
時刻取得サーバー時刻、取引サーバー時刻、時間足秒数を取得するTimeCurrent、TimeTradeServer、PeriodSeconds時刻basis、無tick時間帯、サーバー時間、時間足

価格取得関数は目的別に選ぶ

価格取得では、何を確認したいかによって使う関数が変わります。直近の終値だけならiCloseでも確認できますが、複数本のローソク足を使う判定ではCopyRatesやCopyCloseの方が管理しやすい場合があります。

目的使いやすい関数確認ポイント
直近の終値だけ確認したいiCloseshift=0かshift=1かを明確にします。
複数本の終値を使いたいCopyClose取得件数、配列方向、必要本数を確認します。
OHLCをまとめて確認したいCopyRatesMqlRates配列でtime、open、high、low、closeをまとめて扱います。
新バー判定をしたいCopyTime、iTimebar timeが前回値と変わったか確認します。
スプレッドを確認したいSymbolInfoInteger、SymbolInfoTickSYMBOL_SPREAD、Bid/Ask、point換算を確認します。
ロット条件を確認したいSymbolInfoDoubleSYMBOL_VOLUME_MIN、SYMBOL_VOLUME_STEP、SYMBOL_VOLUME_MAXを確認します。
時間制御をしたいTimeCurrent、TimeTradeServerサーバー時刻、PC時刻、バー時刻を混同しないようにします。

CopyRates

CopyRatesは、指定した銘柄・時間足のローソク足情報をMqlRates配列として取得する関数です。OHLCだけでなく、バー時刻、tick volume、spread、real volumeもまとめて扱えるため、EAやインジケーターの判定で使いやすい関数です。

項目内容
主な用途ローソク足データをまとめて取得する
取得できる値time、open、high、low、close、tick_volume、spread、real_volume
主な確認値CopyRates戻り値、取得件数、配列サイズ、symbol、timeframe、start position
よくある失敗履歴不足、対象symbol/timeframe違い、必要本数不足、配列方向の誤認
確認ログCOPYRATES_READ、RATES_COUNT、BAR_BASIS、HISTORY_WAIT

CopyRatesで確認すること

確認項目内容理由
symbol取得対象の銘柄チャート銘柄と異なる銘柄を取得する場合、Market Watch表示や履歴ロードが関係するため
timeframe取得対象の時間足マルチタイムフレーム判定では、チャート時間足と異なる場合があるため
取得件数戻り値が期待本数以上か必要本数が足りないまま判定すると、配列範囲外や誤判定につながるため
配列サイズArraySizeで取得後の件数を確認コピー件数と配列アクセスの整合を取るため
bar timerates[0].timeやrates[1].time現在足と確定足、新バー判定を確認するため
spreadMqlRates.spread過去バーのspread確認や検証条件の補助に使うため

CopyOpen / CopyHigh / CopyLow / CopyClose

CopyOpen、CopyHigh、CopyLow、CopyCloseは、それぞれOpen、High、Low、Closeを配列で取得する関数です。終値だけ、安値だけ、高値だけなど、必要な価格だけを複数本取得したい場合に使います。

関数取得できる値使う場面戻り値確認データ不足時の確認関連ログ
CopyOpen始値配列始値条件、ギャップ確認、ローソク足形状確認コピー件数Bars、SeriesInfoInteger、取得件数COPYOPEN_READ、OHLC_CHECK
CopyHigh高値配列ブレイク判定、高値更新、レンジ上限確認コピー件数履歴不足、必要本数不足COPYHIGH_READ、BREAKOUT_CHECK
CopyLow安値配列安値更新、レンジ下限確認、SL候補確認コピー件数履歴不足、配列サイズ不足COPYLOW_READ、RANGE_CHECK
CopyClose終値配列確定足終値判定、移動平均計算補助、連続条件コピー件数shift、現在足/確定足、取得本数COPYCLOSE_READ、CLOSE_BASIS

CopyCloseでよくある確認ミス

症状よくある原因確認すること
終値判定がずれる現在足と確定足の混同start position、shift、bar time
配列範囲外になる取得件数不足のままアクセスしているCopyClose戻り値、ArraySize、必要本数
値が0になる履歴未ロード、対象バーなしBars、SeriesInfoInteger、GetLastError
MTFで値が合わないチャート時間足と取得時間足のバー位置が違うCopyTime、iBarShift、bar time

CopyTime

CopyTimeは、指定した銘柄・時間足のバー時刻を配列で取得する関数です。新バー判定、マルチタイムフレーム同期、履歴データ確認でよく使います。

項目内容
主な用途バー時刻の取得、新バー判定、MTF同期、履歴確認
取得できる値datetime配列
主な確認値CopyTime戻り値、bar time、配列サイズ、timeframe
よくある失敗履歴不足、時間足違い、現在足と確定足の混同、MTFの時刻ズレ
確認ログCOPYTIME_READ、NEW_BAR_CHECK、BAR_TIME_AUDIT

新バー判定で確認すること

確認項目内容理由
現在バー時刻time[0] または iTime(symbol,timeframe,0)前回処理したバーと同じか確認するため
確定バー時刻time[1] または iTime(symbol,timeframe,1)確定足判定を行う場合に使うため
時間足チャート時間足か指定時間足かMTFでは対象時間足が変わるため
履歴取得件数CopyTimeの戻り値必要なバー時刻が取得できているか確認するため

iOpen / iHigh / iLow / iClose / iTime

iOpen、iHigh、iLow、iClose、iTimeは、指定したsymbol、timeframe、shiftの価格や時刻を取得する関数です。単発で特定バーの値を確認したい場合に使いやすい一方、複数本を扱う場合はCopy系関数の方がログ追跡しやすい場合があります。

関数取得できる値使う場面戻り値確認データ不足時の確認関連ログ
iOpen指定shiftの始値始値条件、ローソク足形状確認0値、GetLastErrorBars、履歴ロード、対象shiftIOPEN_READ、BAR_VALUE
iHigh指定shiftの高値高値更新、ブレイク、レンジ確認0値、GetLastError履歴不足、symbol/timeframe違いIHIGH_READ、HIGH_CHECK
iLow指定shiftの安値安値更新、SL候補、レンジ確認0値、GetLastError履歴不足、対象バーなしILOW_READ、LOW_CHECK
iClose指定shiftの終値確定足終値、簡易条件判定0値、GetLastError現在足/確定足、履歴不足ICLOSE_READ、CLOSE_BASIS
iTime指定shiftのバー時刻新バー判定、MTF同期、bar time確認0値、GetLastError履歴不足、timeframe違いITIME_READ、BAR_TIME

iCloseで確認すること

確認項目内容理由
shift=0現在形成中の足足確定前に値が変わる可能性があるため
shift=11本前の確定足確定足基準のEA判定で使いやすいため
戻り値0本当に価格0なのか、取得失敗なのかを確認GetLastErrorや履歴状態を確認するため
timeframeチャート時間足か、指定時間足かMTF判定ではバー位置が変わるため

SymbolInfoDouble / SymbolInfoInteger / SymbolInfoString

SymbolInfo系関数は、銘柄の価格、仕様、取引条件、文字列情報を取得するために使います。発注前のロット確認、spread確認、point換算、StopsLevel確認、銘柄名確認で重要です。

関数取得できる値使う場面戻り値確認データ不足時の確認関連ログ
SymbolInfoDoubleBid、Ask、Point、TickValue、VolumeMin、VolumeStepなどのdouble値価格確認、ロット正規化、損益計算、銘柄仕様確認true/false、取得値銘柄選択、Market Watch、値0SYMBOL_DOUBLE、SYMBOL_SPEC
SymbolInfoIntegerDigits、Spread、TradeMode、StopsLevel、FillingModeなどの整数値取引可否、SL/TP距離、spread、filling方式確認true/false、取得値銘柄仕様、取引状態、プロパティ種別SYMBOL_INTEGER、TRADE_MODE_CHECK
SymbolInfoString銘柄説明、通貨、pathなどの文字列値銘柄名確認、通貨確認、ログ表示true/false、取得文字列symbol違い、プロパティ種別SYMBOL_STRING、SYMBOL_IDENTITY

SymbolInfoDoubleでよく確認する値

プロパティ例意味使う場面
SYMBOL_BIDBid価格SELL決済、現在価格確認、spread計算
SYMBOL_ASKAsk価格BUY発注、現在価格確認、spread計算
SYMBOL_POINT最小価格単位point換算、spread、SL/TP距離、pips換算補助
SYMBOL_TRADE_TICK_VALUEtick value損益計算、リスク計算、銘柄仕様確認
SYMBOL_VOLUME_MIN最小ロットロットvalidation
SYMBOL_VOLUME_STEPロット刻みロット丸め、NormalizeVolume処理
SYMBOL_VOLUME_MAX最大ロットロット上限確認

SymbolInfoIntegerでよく確認する値

プロパティ例意味使う場面
SYMBOL_DIGITS価格の小数桁NormalizeDouble、価格表示、SL/TP計算
SYMBOL_SPREADスプレッドスプレッド制限、ログ表示
SYMBOL_TRADE_MODE取引モード取引可能か確認
SYMBOL_TRADE_STOPS_LEVELSL/TPの最小距離TRADE_RETCODE_INVALID_STOPS対策
SYMBOL_TRADE_FREEZE_LEVEL変更制限距離SL/TP変更、注文変更の確認
SYMBOL_FILLING_MODE約定方式TRADE_RETCODE_INVALID_FILL対策

SymbolInfoTick

SymbolInfoTickは、指定銘柄の最新tick情報をMqlTick構造体で取得する関数です。Bid、Ask、last、volume、timeをまとめて確認できます。

項目内容
主な用途最新Bid/Ask、tick時刻、価格更新状態の確認
取得できる値bid、ask、last、volume、time
主な確認値戻り値、tick.bid、tick.ask、tick.time
よくある失敗tick未配信、休場、接続不安定、symbol未選択
確認ログTICK_READ、PRICE_SNAPSHOT、BID_ASK_CHECK

TimeCurrent

TimeCurrentは、最後に受信した気配値に基づくサーバー時刻を取得する関数です。EAの時間制御、日次処理、新バー判定補助、ログ出力でよく使います。

TimeCurrentはPCローカル時刻ではありません。また、tickが来ない時間帯では更新タイミングに注意が必要です。

項目内容
主な用途サーバー時刻基準の時間制御、日次処理、ログ
取得できる値datetime
主な確認値TimeCurrent値、サーバー時刻、ログ時刻、tick更新
よくある失敗PC時刻との混同、無tick時間帯の更新誤認、日付境界の誤認
確認ログTIME_BASIS、SERVER_TIME、DAY_ROLLOVER

TimeTradeServer

TimeTradeServerは、取引サーバー時刻を取得する関数です。サーバー時刻を基準にした外部制御、日次処理、カレンダー制御、稼働時間判定で確認対象になることがあります。

項目内容
主な用途取引サーバー時刻の取得、時間制御、外部制御との照合
取得できる値datetime
主な確認値TimeTradeServer値、TimeCurrentとの差、TimeLocalとの差
よくある失敗PC時刻との混同、時刻basis不明、外部シート時刻とのズレ
確認ログTRADE_SERVER_TIME、TIME_BASIS、EXTCTRL_TIME

PeriodSeconds

PeriodSecondsは、時間足を秒数へ変換して取得する関数です。バー時間幅、タイマー処理、一定時間経過確認、MTF処理の補助に使います。

項目内容
主な用途時間足の秒数取得、バー時間幅の確認、時間制御補助
取得できる値指定時間足の秒数
主な確認値PERIOD_M1、PERIOD_M5、PERIOD_H1などの秒数
よくある失敗PERIOD_CURRENT依存、対象時間足違い、バー時刻との混同
確認ログPERIOD_SECONDS、TIMEFRAME_BASIS、BAR_INTERVAL

現在足と確定足

価格取得で最も重要な確認ポイントのひとつが、現在足と確定足の違いです。現在足は形成中のバーであり、価格が変化します。確定足はすでに閉じたバーであり、検証やEA判定で再現性を取りやすくなります。

基準意味よく使う場面注意点
shift=0現在形成中の足リアルタイム判定、現在価格表示、速報サイン足確定前に値が変化します。
shift=11本前の確定足確定足EA、検証重視、サイン確定後判定シグナルが1本遅れて見える場合があります。
bar timeバー開始時刻新バー判定、MTF同期、ログ照合チャート時間足と取得時間足を混同しないようにします。
server timeサーバー時刻稼働時間制御、日次処理、外部制御バー時刻やPC時刻とは別に扱います。

確認ポイント:EAの条件判定では、現在足を使うのか、確定足を使うのかを必ず決めてください。ログには、shift、bar time、TimeCurrent、取得した価格値をセットで残すと原因を追いやすくなります。

データ不足時の確認

CopyRatesやCopyCloseで必要本数が取れない場合、すぐに不具合と判断せず、履歴データ、対象symbol、timeframe、Market Watch、初回ロード中かどうかを確認します。

症状よくある原因確認すること対応方針
CopyRatesの件数が足りない履歴不足、対象symbol/timeframe違い戻り値、Bars、SeriesInfoInteger、GetLastError必要本数が揃うまで判定しない設計にします。
CopyCloseが-1を返す履歴未同期、symbol未選択、取得条件不正GetLastError、Market Watch、timeframe履歴ロード待ち、再取得、ログ出力を行います。
iCloseが0になる対象バーなし、履歴不足、取得失敗shift、GetLastError、Bars0を有効値と失敗値で混同しないようにします。
MTFのバー位置がずれる時間足ごとのbar time差CopyTime、iTime、iBarShiftbar time基準で照合します。
スプレッドが想定と違うpoint換算、銘柄仕様、変動spreadSYMBOL_POINT、SYMBOL_SPREAD、Bid/Askpoint基準でログ化します。
時間制御がずれるPC時刻、サーバー時刻、バー時刻の混同TimeCurrent、TimeTradeServer、TimeLocalどの時刻basisで制御するか明記します。

EA利用者向けの確認ポイント

EAが想定どおりにエントリーしない、決済しない、サインとズレる場合は、価格取得や時刻基準が関係していることがあります。

確認すること内容開発者へ伝えるとよい情報
EA名・バージョン設置しているEA名と版対象仕様を特定するため
銘柄・時間足チャート左上のsymbol、M1/M5/M15などCopyRatesやSymbolInfoの対象確認に必要です。
setファイル読み込んだInputs設定判定時間足、対象銘柄、時間制御の確認に必要です。
発生した時刻サーバー時刻、ログ時刻、チャート時刻TimeCurrentやbar timeとの照合に使います。
ExpertsログCopyRates、CopyClose、SymbolInfo、TimeCurrentなどのログEA内部で取得した値を確認するため
Journalログ端末側ログ、接続状態、取引サーバー関連データ取得や接続状態の確認に使います。
スクリーンショットチャート、設定、ログ、取引タブ表示とログを照合するために役立ちます。

MQL5開発者向けの実装確認ポイント

MQL5開発では、時系列取得、価格取得、銘柄仕様取得、時刻取得を分けて設計すると、不具合調査がしやすくなります。

責務主な確認対象実装上の注意確認ログ
bar dataCopyRates、CopyOpen、CopyHigh、CopyLow、CopyClose必要本数、現在足/確定足、配列方向を確認します。RATES_READ、OHLC_READ、BAR_BASIS
bar timeCopyTime、iTime新バー判定、MTF同期、bar time照合を行います。BAR_TIME、NEW_BAR_CHECK
single valueiOpen、iHigh、iLow、iCloseshiftと0値の扱いを明確にします。SINGLE_PRICE_READ、SHIFT_CHECK
symbol specSymbolInfoDouble、SymbolInfoInteger、SymbolInfoStringpoint、digits、volume step、StopsLevelを確認します。SYMBOL_SPEC、LOT_SPEC、STOPS_CHECK
tick priceSymbolInfoTick、Bid、Ask発注前価格、spread、tick時刻を確認します。TICK_READ、BID_ASK_CHECK
time basisTimeCurrent、TimeTradeServer、PeriodSecondsサーバー時刻、バー時刻、PC時刻を分けます。TIME_BASIS、SERVER_TIME

実装時の注意点

  • Copy系関数の戻り値を必ず確認する
  • 取得件数が必要本数に満たない場合は判定しない
  • 現在足と確定足を混同しない
  • shift=0とshift=1の意味をログに残す
  • iCloseの0値を取得失敗と有効値で混同しない
  • SymbolInfo系でpoint、digits、volume step、StopsLevelを確認する
  • TimeCurrent、TimeTradeServer、TimeLocalを混同しない
  • マルチタイムフレームではbar time基準で照合する
  • Strategy TesterとLIVEでspreadやtick条件が違う場合を考慮する
  • ログにはsymbol、timeframe、shift、bar time、取得値、戻り値をセットで残す

時系列・価格取得関数の辞典表

関数取得できる値使う場面戻り値確認データ不足時の確認関連ログ
CopyRatesMqlRates配列。time、open、high、low、close、tick_volume、spreadなどOHLCをまとめて取得する時コピー件数Bars、SeriesInfoInteger、必要本数COPYRATES_READ、RATES_COUNT
CopyOpen始値配列始値条件、ローソク足形状確認コピー件数履歴不足、配列サイズCOPYOPEN_READ
CopyHigh高値配列ブレイク、レンジ上限、高値更新コピー件数履歴不足、必要本数COPYHIGH_READ
CopyLow安値配列レンジ下限、安値更新、SL候補コピー件数履歴不足、必要本数COPYLOW_READ
CopyClose終値配列確定足判定、連続条件、検証コピー件数現在足/確定足、取得本数COPYCLOSE_READ、CLOSE_BASIS
CopyTimeバー時刻配列新バー判定、MTF同期、履歴確認コピー件数bar time、timeframe、履歴不足COPYTIME_READ、BAR_TIME
iOpen指定shiftの始値単発の始値確認0値、GetLastErrorshift、履歴不足IOPEN_READ
iHigh指定shiftの高値単発の高値確認0値、GetLastErrorshift、履歴不足IHIGH_READ
iLow指定shiftの安値単発の安値確認0値、GetLastErrorshift、履歴不足ILOW_READ
iClose指定shiftの終値単発の終値確認、確定足判定0値、GetLastErrorshift、現在足/確定足ICLOSE_READ、SHIFT_CHECK
iTime指定shiftのバー時刻新バー判定、bar time確認0値、GetLastErrortimeframe、履歴不足ITIME_READ、BAR_TIME
SymbolInfoDoubledouble系銘柄情報価格、point、ロット条件、tick value確認true/false、取得値symbol選択、値0、プロパティ種別SYMBOL_DOUBLE、SYMBOL_SPEC
SymbolInfoIntegerinteger系銘柄情報digits、spread、StopsLevel、取引モード確認true/false、取得値銘柄仕様、取引可否SYMBOL_INTEGER、TRADE_MODE_CHECK
SymbolInfoStringstring系銘柄情報銘柄名、通貨、path確認true/false、取得文字列symbol違い、プロパティ種別SYMBOL_STRING
SymbolInfoTick最新tick情報Bid/Ask、tick時刻、価格更新確認true/false、MqlTick値tick未配信、休場、接続状態TICK_READ、BID_ASK_CHECK
TimeCurrentサーバー時刻日次処理、時間制御、ログdatetime値無tick時間帯、PC時刻との違いTIME_CURRENT、SERVER_TIME
TimeTradeServer取引サーバー時刻外部制御、サーバー時刻照合datetime値TimeCurrentとの差、時刻basisTRADE_SERVER_TIME
PeriodSeconds時間足の秒数バー時間幅、タイマー、MTF補助秒数PERIOD_CURRENT、対象時間足PERIOD_SECONDS、TIMEFRAME_BASIS

開発依頼前に整理する情報

時系列・価格取得まわりの不具合調査や改修依頼を行う場合は、次の情報を整理してください。

整理する情報内容理由
対象EA名・インジ名・バージョンmq5/ex5名、商品名、バージョン対象ファイルと仕様を特定するため
対象機能価格取得、MTF判定、時間制御、spread制限、銘柄仕様確認など見るべき関数を絞るため
対象銘柄・時間足symbol、timeframe、ブローカー表記CopyRates、SymbolInfo、iCloseの対象確認に必要です。
判定足現在足か確定足かshift=0 / shift=1の整理に必要です。
取得本数何本分のバーを使うかCopy系関数の必要本数確認に必要です。
時刻基準サーバー時刻、PC時刻、バー時刻、外部シート時刻など時間制御や日次処理のズレを確認するため
ExpertsログCopyRates、CopyClose、SymbolInfo、TimeCurrentなどのログEA内部の取得状態を追うため
Journalログ端末側ログ、接続状態、取引サーバー状態接続やデータ取得状態を確認するため
setファイルInputs設定対象時間足、銘柄、時間制御、spread制限の再現に必要です。
スクリーンショットチャート、設定画面、ログ、取引タブ表示とログを照合するため
再現手順どの操作・条件で発生したかOnInit、OnTick、OnTimer、OnCalculateなどの発生箇所を特定するため

送ってはいけない情報:口座パスワード、投資家パスワード、Webhook URL、GAS URL、APIキー、認証トークン、口座番号の全桁、個人情報は、そのまま送らないでください。必要に応じて必ずマスクしてください。

関連するMQL5技術辞典

時系列・価格取得の確認では、関数全体、エラーコード、インジケーター連携、注文処理、ファイル操作、チャート表示、列挙型、標準ライブラリの理解も関係します。関連するMQL5技術辞典もあわせて確認してください。

技術辞典確認できる内容リンク
MQL5エラーコード辞典GetLastError、TRADE_RETCODE、コンパイルエラー、WebRequest、Strategy Tester関連エラーを確認できます。MQL5エラーコード辞典
MQL5関数辞典EA・インジケーター開発で使う主要関数を、目的別・確認ログ別に確認できます。MQL5関数辞典
MQL5注文関数・取引構造体辞典OrderSend、OrderCheck、MqlTradeRequest、MqlTradeResult、TRADE_RETCODEなどを確認できます。MQL5注文関数・取引構造体辞典
MQL5ポジション・注文・約定・履歴用語辞典Order、Position、Deal、History、ticket、magic、commentなど、取引管理で混同しやすい用語を確認できます。MQL5ポジション・注文・約定・履歴用語辞典
MQL5インジケーター関数辞典iCustom、CopyBuffer、SetIndexBuffer、OnCalculate、IndicatorRelease、buffer index、shiftなどを確認できます。MQL5インジケーター関数辞典
MQL5ファイル操作関数辞典FileOpen、FileRead、FileWrite、FileClose、FILE_COMMON、CSV出力、ログ保存を確認できます。MQL5ファイル操作関数辞典
MQL5チャートオブジェクト辞典ObjectCreate、ObjectSetInteger、ObjectSetString、OBJ_LABEL、OBJ_BUTTON、OnChartEventなどを確認できます。MQL5チャートオブジェクト辞典
MQL5列挙型・定数辞典ENUM_TIMEFRAMES、ENUM_ORDER_TYPE、ORDER_FILLING、POSITION_TYPE、SymbolInfo系定数などを確認できます。MQL5列挙型・定数辞典
MQL5標準ライブラリ辞典CTrade、CPositionInfo、COrderInfo、CDealInfo、CSymbolInfo、CAccountInfoなどを確認できます。MQL5標準ライブラリ辞典

確認ポイント:時系列・価格取得では、関数名だけで原因を断定せず、symbol、timeframe、shift、取得件数、bar time、TimeCurrent、SymbolInfo系の銘柄仕様、Expertsログ、Journalログをセットで確認してください。

関連する技術講座

関連ページ確認できる内容
技術講座ハブMT5・MQL5・EA開発関連の技術講座一覧を確認できます。
MQL5時系列データ・価格取得完全ガイドCopyRates、CopyClose、iClose、iTime、SymbolInfo系の確認に使えます。
MQL5ロット・証拠金・銘柄仕様完全ガイドSymbolInfo系、ロット条件、point、tick value、銘柄仕様の確認に使えます。
MQL5マルチシンボル・マルチタイムフレーム完全ガイド別銘柄、別時間足、MTF同期、bar time確認に使えます。
MT5ストラテジーテスター・最適化完全ガイドバックテスト時の履歴データ、spread、時間足、検証条件確認に使えます。
MT5開発依頼前に用意する資料まとめ開発依頼前に整理するログ、setファイル、再現条件を確認できます。

FAQ

CopyRatesとiCloseはどちらを使えばよいですか?

目的によります。複数本のローソク足やOHLCをまとめて扱う場合はCopyRatesが便利です。指定shiftの終値だけを簡易的に確認する場合はiCloseでも対応できます。ただし、どちらの場合も取得件数、shift、現在足・確定足の扱いを確認してください。

CopyCloseが失敗する場合は何を確認しますか?

CopyCloseの戻り値、GetLastError、対象symbol、timeframe、必要本数、Bars、SeriesInfoInteger、Market Watch表示、履歴データの有無を確認してください。

iCloseが0を返した場合はサインなしですか?

断定できません。対象バーの価格が取得できていない可能性があります。GetLastError、Bars、対象shift、symbol、timeframeを確認してください。

現在足と確定足は何が違いますか?

現在足は形成中のバーで、価格が変化します。確定足はすでに閉じたバーです。EAの再現性を重視する場合は、shift=1の確定足を使うことが多くなります。

TimeCurrentとTimeTradeServerは何が違いますか?

TimeCurrentは最後に受信した気配値に基づくサーバー時刻として扱います。TimeTradeServerは取引サーバー時刻を確認するために使います。PCローカル時刻とは別に扱ってください。

SymbolInfoDoubleでは何を確認しますか?

Bid、Ask、Point、TickValue、最小ロット、ロット刻み、最大ロットなどを確認します。ロット計算、SL/TP計算、spread確認、銘柄仕様確認で重要です。

マルチタイムフレームで値がずれる場合は何を確認しますか?

CopyTimeやiTimeでbar timeを確認し、チャート時間足と取得時間足のバー位置を照合してください。shiftだけで判断すると、時間足の違いによりズレる場合があります。

Strategy Testerとリアルで価格取得が違うことはありますか?

あります。spread、tickデータ、ヒストリーデータ、テスター条件、外部通信条件が異なる場合があります。テスター条件、Expertsログ、Journalログ、対象期間、銘柄、時間足を整理してください。

開発依頼前に何を整理すればよいですか?

EA名、インジケーター名、バージョン、対象銘柄、時間足、setファイル、判定足、取得本数、時刻基準、Expertsログ、Journalログ、スクリーンショット、再現手順を整理してください。

この記事にない項目はどのように確認すればよいですか?

まず公式リファレンス、MetaEditorのコンパイル結果、Expertsログ、Journalログ、実際のチャート表示を確認してください。価格取得が関係する場合は、symbol、timeframe、shift、取得件数、bar time、時刻basisを整理して確認します。

まとめ

MQL5の時系列・価格取得では、CopyRates、CopyOpen、CopyHigh、CopyLow、CopyClose、CopyTime、iOpen、iHigh、iLow、iClose、iTime、SymbolInfo系、TimeCurrent、TimeTradeServer、PeriodSecondsを目的別に使い分けることが重要です。

価格取得の不具合では、関数名だけで原因を断定せず、symbol、timeframe、shift、現在足・確定足、取得件数、bar time、履歴データ、SymbolInfo系の銘柄仕様をセットで確認してください。

EAの判定に使う場合は、現在足を使うのか、確定足を使うのかを明確にし、ログには取得値、取得件数、時刻、対象銘柄、対象時間足を残すと原因を追いやすくなります。

不具合調査や開発依頼を行う場合は、EA名、インジケーター名、バージョン、銘柄、時間足、setファイル、判定足、Expertsログ、Journalログ、スクリーンショット、再現手順を整理してください。

ABOUT ME
記事URLをコピーしました