PrescienTraderは、AmiBrokerに次のAFL関数を追加します。 ほとんどのユーザーは、 PrescienTrader() 、PTPlotFLDs()およびPTBacktest()関数.
チャートを分析するためのスタンドアロンツールとしてPrescienTraderを使用する場合、次のことができます。 PrescienTrader AFL数式をダブルクリックするだけです、新しいPrescienTraderチャートペインを作成します。 この記事の残りを読む必要はありません。
残りの機能は 上級ユーザー トレーディングシステム開発のために、カスタムAFL scriPTからアルゴリズムを呼び出したい人。
PrescienTrader
PrescienTrader()
- これは メイン機能 PrescienTraderチャートペインを表示し、すべてのプロットを表示し、解釈ウィンドウにレポートを生成します。
- の すべてのパラメータはAmiBrokerパラメータウィンドウで設定されるため、関数はパラメータを受け入れません。
- PrescienTraderを既存の価格チャートペインにプロットすることは可能ですが、多数のインジケーターやグラフが含まれているため、乱雑になりすぎて、既存のインジケーターと競合する可能性があります。したがって、PrescienTrader専用の別のペインを作成することをお勧めします。
- [パラメータ]ウィンドウでAPIキーを設定する必要があります。 APIキーを設定しない場合、PrescienTraderは 無効なAPIキー メッセージ。
- これらの各パラメーターの使用方法については、記事をご覧ください。 PrescienTraderパラメーター.
PTPlotFLDs
PTPlotFLDs()
- この関数は、 将来の境界線 (FLD)PrescienTraderによって識別された各サイクルのピーク。
- すべてのパラメーターはAmiBrokerパラメーターウィンドウで設定されるため、関数はパラメーターを受け入れません。
- FLDは価格と密接に関連しており、価格と同じスケールを使用するため、 FLDは、PrescienTraderペインではなく、価格チャートペインにプロットすることをお勧めします.
- この関数は、データソースとしてPrescienTraderを使用してFLDプロットを生成します。したがって、 それは必要です PrescienTrader() 別のチャートペインで実行される関数.
- 「パラメータ」ウィンドウで次のパラメータを設定できます。
- FLD(1〜10) –これにより、チャートに表示するFLDプロットを選択できます。各サイクルのピーク周波数には、関連するFLDプロットがありますが、このパラメーターを使用すると、プロットの数を制限することにより、チャートの混乱を回避できます。
- PrescienTraderと同期 –これが有効になっている場合、関数は毎秒1回自動的に実行され、PrescienTraderから最新のデータをフェッチして、FLDプロットがPrescienTraderによって生成されたサイクル分析と同期を保つようにします。同期を無効にすると、チャートを毎回手動で更新しなければならない場合があります。
- この関数は、過去、現在、未来のFLDをプロットします。ただし、 過去 FLDプロットでは、PrescienTraderで静的インジケーターを有効にする必要があります。これは、新しいバーごとにサイクル周波数が変化するためです。したがって、過去のFLDをプロットするには、関数は過去のサイクル分析にアクセスする必要があり、静的インジケーターが必要です。静的インジケーターが無効になっている場合、現在のバーと将来のバーのFLDプロットのみが表示されます。覚えておいてください、 将来のFLDプロットは推定にすぎず、新しいバーがチャートに追加されると変更される可能性があります.
PTBarAnalysis
PTBarAnalysis(データシリーズ、極性、PL基準、ルックバック範囲、最小周波数、最大周波数、調和フィルター、最小適合度、最高Xサイクル、分析バー、プロットスタートバー、プロットエンドバー、キャッシュインデックス)
PTBarAnalysis 単一のバーでポイントインタイムサイクル分析を実行します。次に、指定されたプロット範囲内でさまざまなプロットを生成し、時間を遡って、オプションで前方に移動します。後方プロットは、その形状が対応する価格バーに従うことを確認することにより、サイクル分析の精度を視覚的に確認するために使用できます。フォワードプロットを使用して 将来の価格を予測する または、過去のバーの予測の精度を表示します。これはあなたが使用する関数です ライブ取引.
この関数は値を直接返しません。代わりに、スカラー、配列、行列などのAFL変数のセットを設定します。これらの配列は、AFL配列と同様にプロットできます。
パラメーター
- データシリーズ (アレイ)
- このパラメーターは、 AmiBrokerアレイ、分析する実際のデータシリーズが含まれています。たとえば、終値を分析する場合は、組み込みのAmiBrokerを渡します 閉じる(C) 変数。データ系列の終値を含む配列です。
- 極性 (整数)
- 0 =ポジティブ
- 1 =負
- PLベース (整数)
- 0 =振幅
- 1 =強度
- ルックバック範囲 (整数)
- 1〜15
- 最小頻度 (整数)
- 通常10〜100
- 最大周波数 (整数)
- 通常150〜300
- 高調波フィルター (整数)
- 0〜100
- 最小フィットネス (整数)
- 0〜100
- ベストXサイクル (整数)
- 1 – 10
- 分析バー (整数)
- これは、分析が実行されるバーインデックスです。
- ライブ取引の分析を実行するとき、分析バーをチャートの最後のバーのバーインデックスに等しく設定します。
- AmiBrokerは、チャートの最初のバーをバー番号1として表示します。ただし、AFLが使用する内部インデックスはバー0から始まります。したがって、特定のバーを分析する場合は、AmiBrokerに表示されるバー番号から1を引く必要があります。正しいバー番号を取得します。チャートに5,000バーがある場合、最後のバー番号は5,000ではなく4,999になります。
- 過去のバーインデックスを指定して、そのバーのポイントインタイム分析を実行できます。たとえば、1,000のバーインデックスを指定した場合、バー1,001からチャートの最後のバーまでのPrescient Lineをそのバー範囲の実際の価格バーと比較して、予測がどれほど正確であったかを確認できます その時点で。サイクルプロットを生成するとき、関数は指定されたバー番号の右側にある価格データを無視します。
- プロットスタートバー (整数)
- プロットを開始するバーインデックスを指定します。
- 通常、シリーズ全体のプロットを計算する必要はありません。たとえば、チャートビューに100本の棒が表示される場合、系列全体ではなく、それらの100本の棒のプロットのみが必要です。
- プロット終了バー (整数)
- プロットを終了するバーのインデックスを指定します。
- グラフの棒の数よりも多いプロット終了バーを指定することで、プロットを将来に投影できます。
- キャッシュインデックス (整数)
- この関数には、同じデータに対する複数の連続したAPIリクエストの送信を防ぐことを目的とした内部キャッシュメカニズムが含まれています。キャッシュには、各APIリクエストのデータ系列、パラメーター、および結果が格納されます。まったく同じデータ系列とパラメーターを2回続けて受け取ると、APIリクエストをスキップし、キャッシュされた結果をすぐに返します。
- チャート上の単一のデータシリーズを分析するだけの場合は、キャッシュインデックスを0に設定する必要があります。
- チャート上の複数のデータシリーズを分析する場合、各データシリーズに一意のキャッシュインデックスを指定する必要があります。たとえば、ベース期間と2つの高い期間を分析する場合、ベース期間にキャッシュインデックス0、HTP 1にキャッシュインデックス1、HTP 2にキャッシュインデックス2を指定します。これにより、個別のキャッシュが作成されます。期間ごとに。
応答
AFLアレイ:
これらの配列の各要素は、バー0から始まるバーを表します。
設定した場合 プロット終了バー より大きい数に LastValue(BarIndex())、自動的に 配列を後方にシフト 違いによって。次に、プロットを将来に投影することができます プロット 機能 XShift パラメータ。
たとえば、グラフに5,000の棒が含まれているとします。つまり、最後の棒のインデックスは4,999です。設定した場合 プロット終了バー 5,009の場合、配列は左に10小節シフトされます。次に、XShiftを10に設定して、10本のバーを将来に向けてプロットします。配列は10バー分左にシフトされているため、XShiftedプロットはチャートに正しく配置されます。
- PTPL – 予知ライン プロット
- PTPLSlope – スロープ プレゼントラインの。正の値は上向きに傾斜していることを意味し、負の値は下向きに傾斜していることを意味します。
- PTTrendBar – 相対バー番号 現在のPrescient Lineトレンド内。各トレンドの最初のバー番号はバー0で、後続のすべてのバー番号はトレンドの最初のバーを基準にしています。
- PTTrendBars – バーの総数 現在のPrescient Lineトレンド。
- PTTrendPct – 完了した割合 現在のPrescient Lineトレンドのパーセンテージが100に達することはありません。これは、新しいトレンドが0パーセントの完了で始まったことを意味するためです。したがって、古いトレンドの100%は、新しいトレンドの0%に相当します。
AFLマトリックス:
- PTCycles –によって指定された範囲で、個々のサイクル周波数ごとに1行が含まれます minFrequency そして maxFrequency パラメーター。各行には8つの列があり、列番号はAFL変数によって識別されます。行列から値を読み取るとき、 常に、関連付けられたAFL変数を使用して列番号を参照する必要があります。 列番号をハードコーディングするのではなく。そうすれば、列番号が将来変更されても、コードは引き続き機能します。
- 周波数 (PTColFrequency)–サイクルの頻度。
- 振幅 (PTColAmplitude)–周期の振幅。
- 力 (PTColStrength)–振幅を周波数で割ったサイクル強度。
- スタートバー (PTColStartBar)–サイクルプロットが開始するバーインデックス。これは、サイクルプロットの正しい位相を設定するために使用されますが、関数は以下で説明するPTPlotsマトリックスでプロットを提供するため、通常は必要ありません。
- フィットネス (PTColFitness)– 0%から100%までのサイクルの信頼性の統計的尺度。
- ピーク (PTColPeak)–サイクルがピークであるかどうか、そうである場合は、パラメーター設定で指定されたフィルターの1つでフィルター処理されたかどうかを示します。
- 0 =ピークではない
- 1 =有効なピーク
- -1 =によってフィルタリングされたピーク 最小フィットネス フィルタ
- -2 =によってフィルタリングされたピーク 高調波フィルター
- -3 =によってフィルタリングされたピーク ベストXサイクル フィルタ
- スロープ (PTColSlope)–サイクルが上向きか下向きかを示します。スロープは、有効なピークであるサイクルでのみ計算されます(ピーク= 1):
- 1 =傾斜 アップ
- -1 =傾斜 ダウン
- FLD価格 (PTColFLDPrice)–サイクルのFLDの価格を示します。これは、有効なピーク(ピーク= 1)であるサイクルでのみ計算されます。
- PTPeaks – PTPeaks マトリックスには、同じ情報が同じ形式で含まれています PTCycles マトリックス。ただし、有効なピーク(ピーク= 1)のサイクルのみが含まれます。サイクルは頻度でソートされます。
- PTPlots – PTPlots 行列には、有効なピーク(ピーク= 1)である各サイクルのプロットが含まれ、サイクル周波数で並べ替えられています。各行は、 ピークサイクル周波数 各列は バー。配列と同様に、 プロット終了バー チャートの最後のバーを超えると、行列の行はその差だけ左にシフトします。あなたは使うかもしれません MxGetBlock 行列の行をAFL配列に変換する関数。
- PTFLDPrices – PTFLDPricesマトリックスには、有効なピーク(ピーク= 1)である各サイクルのFLD価格が、サイクル頻度でソートされて含まれています。各行はピークサイクル周波数を表し、各列はバーを表します。このマトリックスには、現在のバーと将来のバーのFLD価格のみが含まれます。使用 PTRangeAnalysis 過去のFLDデータを取得する関数。配列の場合と同様に、グラフの最後のバーを超えてプロット終了バーを指定すると、行列の行はその差だけ左にシフトします。 MxGetBlock関数を使用して、行列の行をAFL配列に変換できます。
AFLスカラー
- PTFLDScore – FLDスコア Prescient Lineと他のサイクル指標によって提案された取引を確認または拒否するのに役立つ強力な指標です。
- FLDスコアは、強度または振幅を掛けて計算されます( PLベース シリーズの価格がFLDの価格より上か下かに応じて、各ピークサイクル周波数を1または-1で設定し、それらをすべて合計します。
- FLDスコアが ポジティブ、それは市場が循環的であることを示しています 上昇傾向.
- FLDスコアが 負、それは市場が循環的であることを示しています 下降傾向.
PTRangeAnalysis
PTRangeAnalysis(データシリーズ、極性、PL基準、ルックバック範囲、最小周波数、最大周波数、ハーモニックフィルター、最小適合度、ベストXサイクル、開始バー、終了バー、プロセス配列)
PTRangeAnalysis 分析する バーの全範囲、 特定時点 分析範囲の各バーの値。呼び出す PTRangeAnalysis 1,000小節の範囲の場合、呼び出しに相当します PTBarAnalysis 範囲内のバーごとに1回、1,000回。これは使用する関数です バックテスト そして 最適化, ない ライブ取引用。
この関数は値を直接返しません。代わりに、AFL配列と行列のセットを設定します。これらの配列は、AFL配列と同様にプロットできます。
パラメーター
- データシリーズ (アレイ)
- このパラメーターは、 AmiBrokerアレイ、分析する実際のデータシリーズが含まれています。たとえば、終値を分析する場合は、組み込みのAmiBrokerを渡します 閉じる(C) 変数。データ系列の終値を含む配列です。
- 極性 (整数または配列
- 0 =ポジティブ
- 1 =負
- PLベース (整数または配列)
- 0 =振幅
- 1 =強度
- ルックバック範囲 (整数または配列)
- 1〜15
- 最小頻度 (整数または配列)
- 通常10〜100
- 最大周波数 (整数または配列)
- 通常150〜300
- 高調波フィルター (整数または配列)
- 10〜100
- 最小フィットネス (整数または配列)
- 0〜95
- ベストXサイクル (整数または配列)
- 1 – 10
- 開始/終了バー (整数)
- の スタートバー そして エンドバー パラメータは、分析するバーの範囲を指定します。とは異なり PTBarAnalysis、エンドバーは ない チャートの最後の値のバーインデックスを超える。この関数は、 バックテスト、ライブ取引ではないため、プロットを将来に投影しても意味がありません。
- プロセス配列 (整数)
- このパラメーターは、関数がパラメーターを整数と配列のどちらとして処理するかを決定します。これは、極性またはPL基準、ルックバック範囲、最小周波数、最大周波数、ハーモニックフィルター、最小適合度、ベストXサイクルなどの整数または配列のパラメーターにのみ適用されます。
- 通常、これらのパラメーターは整数です。つまり、同じパラメーター設定が分析されるバーの範囲全体に適用されます。これはデフォルト設定であり、ほとんどのユーザーはこれをそのままにしておきます。ただし、上級ユーザーの場合は、値を配列として渡すことにより、パラメーター設定をバーごとに変化させる非常に強力な機能が提供されます。
- 配列を使用する場合は、Process Arraysパラメーターを1に設定して、PrescienTraderが配列として処理することを認識できるようにする必要があります。 この機能を有効にすると、各APIリクエストのファイルサイズが大幅に増加し、帯域幅が消費されて処理時間が遅くなりますなので、何をしているのかがわかっていて、それを行う正当な理由がある場合にのみ有効にしてください。
- 0 =オフ
- 1 =オン
応答
AFLアレイ
これらの配列の各要素は、バー0から始まるバーを表します。
- PTStaticPL –静的 予知ライン。これには、 指定された範囲内の各バーの特定の時点。これは 非常に異なります によって返される標準のPrescient Line分析から PTBarAnalysisでのプレシエントラインを計算します シングル 特定の時点で、プロットを時間の前後に投影します。
- PTStaticPLSlope –の傾斜 静的 Prescient Line。正の値は上向きに傾斜していることを意味し、負の値は下向きに傾斜していることを意味します。
- PTStaticPLSlopeCum – 累計 静的なPrescient Lineの傾き。これはあなたが使うものです プロット 静的なPrescient Line。
- PTStaticTrendBar – 相対バー番号 現在の静的Prescient Lineトレンド内。各トレンドの最初のバー番号はバー0で、後続のすべてのバー番号はトレンドの最初のバーを基準にしています。
- PTStaticTrendBars – バーの総数 現在の静的Prescient Lineトレンド。
- PTStaticTrendPct – 完了した割合 現在の静的Prescient Lineトレンドのパーセンテージが100に達することはありません。これは、新しいトレンドが0パーセントの完了で始まったことを意味するためです。したがって、古いトレンドの100%は、新しいトレンドの0%に相当します。
- PTStaticFLDScore –の説明を参照してください PTBarAnalysis FLDスコアの説明については、セクションをご覧ください。
AFLマトリックス
これらの行列は、関連する値のリストを返します ピークサイクル周波数 各バーの。各行列は異なる指標を表しますが、それらはすべて頻度で並べ替えられています。したがって、たとえば、行3、列999は、 同じ すべての行列で、バー1,000のピークサイクル周波数。行列には、すべてのバーのすべてのピークサイクル周波数をリストするために必要な行数が含まれています。
- PTStaticFrequencies –この行列の各行は、 ピークサイクル周波数.
- PTStaticSlopes –この行列の各行は、 PTStaticFrequencies 同じ行と列の行列。
- PTStaticFLDPrices –この行列の各行は、PTStaticFrequencies行列の同じ行と列にある頻度のFLD価格に対応しています。
PTBacktest
PTBacktest()
この関数は、 走る a シングルスレッド 探索、バックテスト、最適化のための分析。ですべてのパラメーターを構成するため、パラメーターは必要ありません。 パラメーター 窓。実行すると、 PTRangeAnalysis PTRangeAnalysis関数で説明されているAFL配列と行列を生成します。
2つの長い期間をサポートするPrescienTrader関数とは異なり、 PTBacktest 関数サポート 無制限 より長い期間。
読む 探索、バックテスト、最適化 この関数の使用方法の詳細については、記事をご覧ください。
PTBacktestMultiPrepare
PTBacktestMultiPrepare()
この関数は、 準備する a マルチスレッド 探索、バックテスト、最適化のための分析。 「パラメーター」ウィンドウで定義されたパラメーターを使用して、API要求に適した形式でデータを生成します。
読む 探索、バックテスト、最適化 この関数の使用方法の詳細については、記事をご覧ください。
PTBacktestMultiExecute
PrescientAnalysisExecute()
この関数は、 実行する a マルチスレッド 探索、バックテスト、最適化のための分析。データを解析し、結果を探索列に出力し、結果を含むAFL配列を生成します。
読む 探索、バックテスト、最適化 この関数の使用方法の詳細については、記事をご覧ください。
PTLogToFile
PTLogToFile(メッセージ)
使用できます PTLogToFile バックテストパラメータウィンドウで定義されたログファイルにメッセージを書き込みます。
PTWait
PTWait(秒)
使用できます PTWait 指定した秒数の間実行を一時停止します。通常、これはAPIリクエストを行うときに使用されます。インターネット接続のダウンが原因でAPI要求が失敗した場合、PTWaitを使用して、再試行する前に特定の秒数待機することができます。
PTPositionSize
PTPositionSize(リスクポイント、リスクエクイティの割合、アカウントの基本通貨)
この機能は、AmiBrokerでのVan Tharpスタイルのボラティリティに基づく位置のサイジングを自動化します。ボラティリティとポートフォリオエクイティに基づいてリスクを自動的に管理するため、これがポジションサイジングへの最適なアプローチであると考えています。
AmiBrokerの組み込み SetPositionSize 関数には、ポジションサイズを自己資本の割合として指定するオプションが含まれていますが、ポジションサイズは マージン ポジションを開くのに必要な量。問題は、 マージンはリスクと大まかに関連付けられているだけです。その本当のリスクの高い楽器ながら 一般的に マージン要件が高い場合、ブローカーに頼ってリスクを管理するのではなく、各取引の正確なリスクに基づいてポジションサイズを計算するのが最善であると考えています。したがって、使用する必要があります 現金 マージン値ではなく、位置の値。たとえば、先物契約を購入し、その価格が2%低下した場合、2%を失いました。 現金価値 証拠金の2%ではなく、その契約の!
この関数は、AmiBrokerが取引の実行に使用するポジションサイズを設定します。値を返しません。組み込みのSetPositionSize関数を置き換えることを目的としています。
- の リスクポイント 引数は配列で、各取引でリスクを負うポイントの数を指定する必要があります。通常、これはストップに使用しているポイントと同じ数になります。ストップを使用していない場合、取引システムがポジションを終了または逆転する前に通常失うポイントの最大数を見積もってください。現在の機器の一般的な価格帯を考慮した式を使用することをお勧めします。例えば、 ATR(20)* 2 平均真の範囲の2倍の最大リスクを指定します。複数の商品のバックテスト(ポートフォリオのバックテスト)を行う場合、静的な値ではなく式を使用することが特に重要です。そのため、Points Riskedは各商品の価格帯とボラティリティに自動的に適応します。
- リスクのある株式の割合 は、各取引でリスクを負う意思がある現在の株式の割合です。通常2%を使用しますが、リスク許容度に応じて、より高い値またはより低い値を使用できます。
- アカウントの基本通貨 は、取引口座の基本通貨を含む文字列です。たとえば、「USD」。
この関数は、AmiBroker Informationウィンドウの次のフィールドを使用します。
- 証拠金
- ポイント値
- 通貨
さらに、関数は以下をサポートします マルチ通貨ポジションのサイジング、商品の基本通貨がアカウントの基本通貨と異なる場合に必要です。最も一般的には、これは米ドル以外の通貨建ての外国為替ペアで発生します。マルチ通貨ポジションのサイジングを実行するために、この関数は、アカウントの基本通貨とバックテストされる外国為替ペアの基本通貨の組み合わせである外国為替ペアの価格を検索します。たとえば、CHFJPYをバックテストする場合、基本通貨はJPYになります。アカウントの基本通貨がUSDの場合、この関数はUSDJPYの価格を調べてJPYの価格を米ドルで計算し、CHFJPYのポジションサイズを計算できます。したがって、マルチ通貨ポジションのサイジングを機能させるには、次のデータが必要です。
- あなたは正しいを入力する必要があります ポイント値 バックテストしている各機器に対して。ポイント値の説明については、AmiBrokerのドキュメントを参照してください。
- を入力する必要があります 証拠金 バックテストしている各機器に対して。負の数としてパーセンテージを入力することにより、固定証拠金を正の数として、または契約の現金価値のパーセンテージとして入力できます。たとえば、ブローカーが20:1のレバレッジを提供している場合、証拠金は5%になります。したがって、証拠金として-5を入力します。
- どんな楽器にも ない アカウントの基本通貨建ての場合、基本通貨を入力する必要があります 通貨 フィールド。 CHFJPYの例を使用すると、その金融商品の通貨フィールドにJPYを入力します。
- AmiBrokerデータベースには、ティッカーシンボルXXXOOOまたはOOOXXXの引用符が必要です。XXXは、 アカウント 基本通貨とOOOは 計器 基本通貨。 アカウントの基本通貨がシンボル(XXXOOO)の最初に表示されている場合、関数は通貨ペアの価格を自動的に反転させます。 繰り返しますが、CHFJPYの例を使用すると、アカウントの基本通貨がUSDの場合、データベースにUSDJPYの見積りが必要になります。シンボルは、XXXOOOまたはOOOXXXXとして正確にフォーマットする必要があり、XXX-OOOまたはその他のバリエーションではありません。 データプロバイダーが非標準のティッカーシンボル形式を使用している場合、標準形式にちなんで命名された変数を作成し、非標準形式を値として割り当てることにより、標準形式をデータベースの非標準形式にマッピングできます。繰り返しますが、上記の例を使用して、データベースにシンボルUSD-JPYが含まれている場合、次のコードを使用してUSDJPYをUSD-JPYにマップできます。
USDJPY = "USD-JPY";
または、変数を数値に等しく設定することにより、固定変換値を設定できます。例えば:
USDJPY = 108.68;
- 固定変換値を設定すると、データベース内の値が上書きされます。これは、変換通貨の引用符がデータベースにない場合に最も役立ちます。
- すべてのシンボルマップの変数を作成する必要があります 前 PrescientPositionSize関数を呼び出します。
- PrescientPositionSize関数は、AmiBrokerの組み込み通貨換算設定を無視します。したがって、この機能を使用する場合、次の設定を無視できます。 設定->通貨 画面。実際にお勧めします AmiBrokerの動的通貨変換機能を無効にします からシンボルを削除することにより ダイナミックレートシンボル この画面の列。これは、AmiBrokerに組み込まれている動的通貨変換が、分析対象の金融商品よりも見積通貨が短い場合、問題が発生するためです。この例では、変換通貨の見積履歴の範囲外の日付については、ポジションサイズがゼロに設定されます。 [ダイナミックレートシンボル]列からシンボルを削除すると、動的通貨変換が無効になり、この問題が修正されます。変換通貨の相場履歴が分析対象の金融商品の相場履歴よりも短い場合、PresicentPositionSize関数は、 最後のバー 変換通貨の見積履歴の範囲外のバーの場合は、変換通貨の