copy_ticks_from

指定された日以降のティックをMetaTrader 5ターミナルから取得します。

copy_ticks_from(
  symbol,      // 銘柄名
  date_from,   // ティックがリクエストされている最初の日
  count,       // リクエストされたティック数
  flags       // リクエストされたティックの種類を定義するためのフラグの組み合わせ
  )

パラメータ

symbol

[in] 金融商品名(例: EURUSD)。名前なし必須パラメータ。

date_from

[in] ティックがリクエストされている最初の日。「datetime」オブジェクトまたは1970年1月1日からの経過秒数として設定されます。名前なし必須パラメータ。

count

[in] 受信するティックの数。名前なし必須パラメータ。

フラグ

[in] リクエストされたティックのタイプを定義するフラグCOPY_TICKS_INFO – 買値と売値の変更でのティック、COPY_TICKS_TRADE –ラストと数量の変更でのティック、COPY_TICKS_ALL – 全てのティック。フラグ値はCOPY_TICKS列挙体で説明されています。名前なし必須パラメータ。

戻り値

ティックを名前付きのtime、bid、ask、last、flags列を持つNumPy配列として返します。「flags」値はTICK_FLAG列挙体からのフラグの組み合わせです。エラーの場合はNoneを返します。エラーに関する情報はlast_error()を使用して取得できます。

注意事項

詳細はCopyTicks関数をご覧ください。

「datetime」オブジェクトを作成する際にPythonがローカルな時間帯を使用する一方、MetaTrader 5ではティックとバー開始時間はUTC時間帯(シフトなし)で保存されます。よって。時間を使用する関数を実行するためには「datetime」はUTC時間で作成されるべきです。MetaTrader 5ターミナルから受信したデータにはUTC時間があります。

COPY_TICKSは、copy_ticks_from()およびcopy_ticks_range()関数を使用してリクエストできるティックの種類を定義します。

ID

説明

COPY_TICKS_ALL

すべてのティック

COPY_TICKS_INFO

買い気配値および/または売り気配値の変化を含むティック

COPY_TICKS_TRADE

Lastおよび/またはVolume価格の変化を含むティック

TICK_FLAG はティックの可能なフラグを定義します。これらのフラグはcopy_ticks_from()およびcopy_ticks_range()関数で取得されるティックを説明するために使用されます。

ID

説明

TICK_FLAG_BID

売り気配値が変化した

TICK_FLAG_ASK

買い気配値が変化した

TICK_FLAG_LAST

Last価格が変化した

TICK_FLAG_VOLUME

出来高が変化した

TICK_FLAG_BUY

最後の買値が変化した

TICK_FLAG_SELL

最後の売値が変化した

 

例:

from datetime import datetime
import MetaTrader5 as mt5
# MetaTrader 5パッケージについてのデータを表示する
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
 
# 表形式で得られたデータを表示するための「pandas」モジュールをインポートする
import pandas as pd
pd.set_option('display.max_columns', 500) # 表示される列の数
pd.set_option('display.width', 1500)     # 表示する表の最高幅
# 時間帯を使用するためのpytzモジュールをインポートする
import pytz
 
# MetaTrader 5ターミナルとの接続を確立する
if not mt5.initialize():
   print("initialize() failed, error code =",mt5.last_error())
  quit()
 
# タイムゾーンをUTCに設定する
timezone = pytz.timezone("Etc/UTC")
# ローカルタイムゾーンオフセットの実装を回避するために、UTCタイムゾーンで「datetime」オブジェクトを作成する
utc_from = datetime(2020, 1, 10, tzinfo=timezone)
# 10.01.2019 UTCから開始して100 000 EURUSDティックをリクエストする
ticks = mt5.copy_ticks_from("EURUSD", utc_from, 100000, mt5.COPY_TICKS_ALL)
print("Ticks received:",len(ticks))
 
# MetaTrader 5ターミナルへの接続をシャットダウンする
mt5.shutdown()
 
# 各ティックのデータを新しい行に表示する
print("Display obtained ticks 'as is'")
count = 0
for tick in ticks:
   count+=1
  print(tick)
  if count >= 10:
      break
 
# 取得したデータからDataFrameを作成する
ticks_frame = pd.DataFrame(ticks)
# 秒での時間をdatetime形式に変換する
ticks_frame['time']=pd.to_datetime(ticks_frame['time'], unit='s')
 
# データを表示する
print("\nDisplay dataframe with ticks")
print(ticks_frame.head(10))  
 
結果:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Ticks received: 100000
Display obtained ticks 'as is'
(1578614400, 1.11051, 1.11069, 0., 0, 1578614400987, 134, 0.)
(1578614402, 1.11049, 1.11067, 0., 0, 1578614402025, 134, 0.)
(1578614404, 1.1105, 1.11066, 0., 0, 1578614404057, 134, 0.)
(1578614404, 1.11049, 1.11067, 0., 0, 1578614404344, 134, 0.)
(1578614412, 1.11052, 1.11064, 0., 0, 1578614412106, 134, 0.)
(1578614418, 1.11039, 1.11051, 0., 0, 1578614418265, 134, 0.)
(1578614418, 1.1104, 1.1105, 0., 0, 1578614418905, 134, 0.)
(1578614419, 1.11039, 1.11051, 0., 0, 1578614419519, 134, 0.)
(1578614456, 1.11037, 1.11065, 0., 0, 1578614456011, 134, 0.)
(1578614456, 1.11039, 1.11051, 0., 0, 1578614456015, 134, 0.)
 
Display dataframe with ticks
                time      bid      ask  last  volume       time_msc  flags  volume_real
0 2020-01-10 00:00:00  1.11051  1.11069   0.0       0  1578614400987    134          0.0
1 2020-01-10 00:00:02  1.11049  1.11067   0.0       0  1578614402025    134          0.0
2 2020-01-10 00:00:04  1.11050  1.11066   0.0       0  1578614404057    134          0.0
3 2020-01-10 00:00:04  1.11049  1.11067   0.0       0  1578614404344    134          0.0
4 2020-01-10 00:00:12  1.11052  1.11064   0.0       0  1578614412106    134          0.0
5 2020-01-10 00:00:18  1.11039  1.11051   0.0       0  1578614418265    134          0.0
6 2020-01-10 00:00:18  1.11040  1.11050   0.0       0  1578614418905    134          0.0
7 2020-01-10 00:00:19  1.11039  1.11051   0.0       0  1578614419519    134          0.0
8 2020-01-10 00:00:56  1.11037  1.11065   0.0       0  1578614456011    134          0.0
9 2020-01-10 00:00:56  1.11039  1.11051   0.0       0  1578614456015    134          0.0

参照

CopyRatescopy_rates_from_poscopy_rates_rangecopy_ticks_fromcopy_ticks_range