川蝉のFX自動売買MT4を利用したFX自動売買で資産1億円を目指すFXブログです。bars(過去のローソク足データ)」を扱う方法について解説します。足のデータを読み出す方法としては主に3つの方法があります。手段が用意されています。同期関数を使用して足データを読み出す同一スレッド内で処理を行う同期関数は、関数名がgetから始まります。getBars関数を使用します。同期関数を使用する場合、処理が完了してから呼出し元に復帰する形となるため、大量のヒストリーデータを要求するとその後の処理が長時間とまってしまう可能性があります。getTicksやgetBars関数はバーやティックのリストを返すため、相応のメモリーを消費します。数千以上のティックやバーデータを返したり、「OutOfMemoryException」の例外が発生する可能性があることを知りながら、これらの関数を使用することは推奨されません。現在のバーからのシフト値を使って読み出す方法getBar関数の引数に、現在のバーからのシフト値を指定することで特定のIBarオブジェクトを取得できます。:足のタイムフレームside:BidとAskのどちらかを指定shift:現在の足から何本前の情報を取得するかを指定、0は現在の足、1は1つ前の足、2なら2つ前の足となります戻り値:IBarオブジェクト、取得できなかった場合はNULLshiftに0を指定すると、現在の足(形成途中)の情報を取得できます。以下はドル円1時間足の1つ前の足の情報を取得する例です。」引数で時間間隔を指定してやると、指定期間の「IBars」オブジェクトのリストを取得することができます。JFException引数:instrument:どの通貨ペアの足を取得するのかを指定period:足のタイムフレームside:BidとAskのどちらかを指定from:指定する時間間隔の開始時刻。正確な足の開始時間を指定する必要があります。いっても、バーが終了する時刻ではなく、取得したい最後の足の開始時刻を指定します。戻り値:ロードされたIBarオブジェクトのリスト以下は、USDJPYの1時間足で一つ前の足から5本分のデータを取得する例です。prevBarTime);getPreviousBarStart関数は、特定時間足における、指定時間を含む足の1つ前の足の開始時間を取得できます。引数の「period」に「Period.ONE_HOUR」を、「barTime」にドル円最新ティックの時間を指定し、prevBarTimeに一つ前の1時間足の開始時間を取得しています。getTimeForNBarsBack関数は、特定時間足における、指定時間を含む足から指定本数分前の足の開始時間を取得することができます。引数の「period」に「Period.ONE_HOUR」を、「to」に先ほど設定した「prevBarTime」を、「numberOfBars」に5を設定し、1つ前の時間足を含めて5本前の時間足の開始時間を取得し、startTimeに設定しています。getBars関数の「from」と「to」引数に「startTime」と「prevBarTime」を指定することで、1時間足の1つ前の足から5本分のデータを取得しています。次に、SimpleDateFormatを用いてgetBars関数の「from」と「to」に渡す値を取得する例を見てみましょう。以下は、2015/05/01から2015/05/31日までの日足データを取得する例です。」引数のあるgetBars関数を使用すると、指定時間付近の前後指定数の「IBars」オブジェクトのリストを取得することができます。戻り値:ロードされたIBarオブジェクトのリストnumberOfCandlesBeforeが0の場合と>0の場合とでnumberOfCandlesAfterで計算する足の起点が変わるため注意してください。下記は、現在の時間足から5本前の足を起点として、前に5本、後に2本分の計7本の時間足を取得します。2);非同期関数を使用して足データを読み出すヒストリカルデータはローカルキャッシュから読み込まれますが、データがローカルキャッシュにない場合、サーバーからダウンロードされるため、大量のヒストリカルデータをダウンロードする場合、処理に時間がかかります。後で必要になる大量のヒストリデータがある場合、他のストラテジーロジックをブロックしてしまわない非同期関数でそれらのデータをあらかじめロードしておき、ロード完了後に同期関数を使って読み出せば効率良く処理が行えます。非同期関数は、関数名がreadから始まります。具体的には、バーのデータを読み出す場合「readBars」関数を使用します。今回は入門レベルなので使い方をここでは説明しません。WikiにあるサンプルプログラムやAPIリファレンスのIHistoryを参照してください。足データを読み出す関数で、引数にFilterを指定するものがあります。具体的には、時間間隔を指定して読み出す時のgetBarsと指定時間から前後の足の数を指定して読み出す時のgetBarsです。Filterパラメーターを持たない関数は、フィルタリングを行いません。Filterパラメーターで、Filter.ALL_FLATSを指定すると全てのフラット期間をフィルタリングできます。Filter.WEEKENDSを指定すると、週末のフラット(土日の値動きのない)期間をフィルタリングできます。フィルタを使用しない場合は、Filter.NO_FILTERを指定します。開発ツールとしては非常に貧弱で使いやすいとはいえません。2018.07.03JForexプログラミング入門JForexプログラミング入門その2-ストラテジーの骨格を知ろう今回は、JForexストラテジーのスケルトンコードを使用してJForexストラテジーの骨格(構造)について解説していきます。APIで成り行き注文と指し値注文や逆指値注文等の条件付き注文を行う方法を解説します。APIで注文情報の管理方法について解説します。既存の注文情報(IOrderオブジェクト)にアクセスしたい場合、IEngineインターフェースの関数を利用することができます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。(20)FX人気ブログランキング当サイトが役に立ちましたらクリックしていただけると嬉しいです。私が利用中のFX業者MT4自動売買においてメインで利用中。スプレッドも狭いしサーバーも安定しているのでお勧め。(20)FX人気ブログランキング当サイトが役に立ちましたらクリックしていただけると嬉しいです。