実時間の取引環境(例えば、取引仲介業者に開設した実際のアカウント)でNinjaScriptのストラテジーを使用するのに先立って理解しておくべき重要な概念は、 ストラテジー・ポジション と アカウント・ポジション の違いである。
ストラテジー・ポジション はストラテジーによって生成されるエントリー(仕掛け)やエグジット(手仕舞い)の約定により作り出される仮想的なポジションのことで、他に実行しているストラテジーが持つポジションや アカウント・ポジション からは独立している。
アカウント・ポジション
は、あなたが実時間の取引アカウントで実際に保持するポジションのことで、NinjaTrader内部のシミュレーション・アカウント(Sim101)、あるいはあなたの実際に取引仲介業者に開設したアカウントである。
多くの場合、トレーダーは、彼らの
ストラテジー・ポジション
の大きさと市場の方向性を彼らの
アカウント・ポジション
に等しく(同期)させたがるが、できない状況がある。
例えば:
極めて共通のシナリオは、例えばセッションが開始されてから1時間後というように、 取引セッションの最中にNinjaScriptのストラテジーを開始することである。
NinjaScriptのストラテジーは、セッションの最初の1時間で、それぞれのヒストリカル・バーで実行される。 現在のポジション状態を決めるために (チャートに読み出された全てのヒストリカル・データ上で実際に実行される) もしそれがセッションの開始時からライブで実行されているのなら、
このポジション状態はストラテジーの ストラテジー・ポジション になる。
historical hour?中であると仮定して、あなたのストラテジーはロング・ポジション1を取り、 そのポジションを開いたままであると仮定する。 これは ストラテジー・ポジション がロング・ポジション1であるということを意味し、 この取引は実際にはアカウント上では行われていないので、 あなたの アカウント・ポジション はフラットである。 (この項は全体的にまともに翻訳できていない、後回し)
アカウント・ポジション を ストラテジー・ポジション と一致させたいのなら、ストラテジーが動作しているアカウントで手動で取引を発行する必要がある。上の例を続けると、ストラテジーが動作しているアカウントで、取引されている市場で1ロットの市場取引を発行する必要がある。あるいは、新しいNinjaTrader 7には、ストラテジーを開始した時にあなたのアカウントをストラテジー・ポジションに自動的に同期する機能がある。この機能を使用するには、Strategyダイアログ・ウインドウで"Sync account position"をtrueに設定すること。この機能の詳細は、アカウント・ポジションのストラテジー・ポジションへの同期を参照すること。
ストラテジー・ポジション と アカウント・ポジション の同期が外れた時に生じる挙動は、ストラテジーが売りの取引でロング・ポジションを閉じるときで、それは ストラテジー・ポジション をフラットにし、 アカウント・ポジション をショート・ポジション1にする。