Event Count

書式:EventCount ('Logical Variable')

トレーディングシステムが稼働されてから停止されるまでに何度Logical VariableのTrueのステートメントが返されたかを数えます。

関数:EventCount()は主にユーザーが稼働中のトレーディングシステムが使用しているLogical Variableに対しどのくらい自動で売買されたかを管理しやすくする目的で使用されます。

Logical Variableはトレーディングシステムの出力変数を指します。(トレーディングシステム編集→出力内の変数でトレーディング可とされているもの)Logical Variableには2つの状態True(1)/False(2)しかありません。

例:Logical Variable’A’のある特定の状態を下記の様に計算するとします。
A:= cross(Close,mov(Close,13,S);
この場合、EventCount('A')はトレーディングシステムが稼働後、終値が移動平均を何回上抜けたかを計算します。

注意:

  1. トレーディングシステムの稼働が停止された場合、EventCount ('Logical Variable')は0(ゼロ)にリセットされます。
  2. VTトレーダーが一時的に切断され、再接続した場合はEventCount ('Logical Variable')の値は保存され、切断される前の値から始められます。
  3. VTトレーダーが突然停電、パソコンのクラッシュや再起動等によりシャットダウンされ、VTトレーダーが閉じられなかった場合はEventCount ('Logical Variable')の値はVTトレーダーが再起動し、チャート上にトレーディングシステムが設定され稼働した時に0(ゼロ)にリセットされます。

実際にEventCount ('Logical Variable')を使用し、機能をチェックしてみましょう。(※関数 cross() をご参照ください。)

下記の画像では2つの条件が指定されています。

  • Long:= cross(Close,mov(Close,13,S)); {青い矢印で表示}
  • Short:= cross(mov(Close,13,S),Close); {赤い矢印で表示}
Event Count

次に、買いの新規成行注文/決済成行注文を決めるLogical Variablesの定義について説明します。
※各Logical Variableについては【トレーディングシステム編集】を確認してください。

  • OpenBuy:新規買い注文
  • CloseBuy:買い決済注文
  • OpenSell:新規売り注文
  • CloseSell:売り決済注文
  • OpenBuy:= Long and (EventCount('OpenBuy') = EventCount('CloseBuy'));
  • CloseBuy:= Short and (EventCount('OpenBuy') > EventCount('CloseBuy'));

OpenBuyは買いポジションを保有するための買いの成行注文、CloseBuyはOpenBuyで建てられたポジションの決済注文の売り成行注文とします。トレーディングシステムが稼働され始めた時はEventCount('OpenBuy') と EventCount('CloseBuy')の値は0(ゼロ)です。

Longの変数がTrueであり、またOpenBuyの条件のEventCount('OpenBuy') のアクションとCloseBuyの条件のEvenCount(‘CloseBuy’)のアクションが等しかった場合、Logical Variable’OpenBuy’は+1になります。

Shortの変数がTrueであり、またOpenBuyの条件のEventCount('OpenBuy') のアクションがCloseBuyの条件のEvenCount(‘CloseBuy’)のアクションより大きい場合、Logical Variable’CloseBuy’は+1になります。また、EventCount(‘OpenBuy’)の値がEventCount(‘CloseBuy’)の値より大きい場合、買いの取引がOpenBuyにより発注され、現在保有する買い取引を決済するために売り成行注文が必要と見なされます。

売り新規/決済の成行注文を決めるLogical Variablesの定義について説明します。※各Logical Variableについてはトレーディングシステム編集を確認してください。

  • OpenSell:= Short and (EventCount('OpenSell') = EventCount('CloseSell'));
  • CloseSell:= Long and (EventCount('OpenSell') > EventCount('CloseSell'));

OpenSellは売りポジションを保有するための売りの成行注文、CloseSellはOpenSellにより建てられた保有している売りポジションの決済注文の買いの成行注文とします。トレーディングシステムが稼働され始めた時はEventCount('OpenSell') と EventCount('CloseSell')の値は0(ゼロ)です。

Shortの変数がTrueであり、またOpenSellの条件のEventCount('OpenSell') のアクションとCloseSellの条件のEvenCount(‘CloseSell’)のアクションが等しかった場合、Logical Variable’CloseSell’は+1になります。

Longの変数がTrueであり、またOpenSellの条件のEventCount('OpenSell') のアクションがCloseSellの条件のEvenCount(‘CloseSell’)のアクションより大きい場合、Logical Variable’CloseSell’は+1になります。また、EventCount(‘OpenSell’)の値がEventCount(‘CloseSell’)の値より大きい場合、売りの取引がOpenSellにより発注され、現在保有する買い取引を決済するために売りの成行注文が必要と見なされます。

Logical Variablesをトレーディングシステムの作成に使用する場合、簡単なトレーディングシステムテンプレートを推奨します。

{トレーディングシステムテンプレート サンプル}

{トレーディングシステムの試算...
使用するインディケーター等を含みます。}
{ここでは2つの移動平均線を作成します。}

  • Output1:= close;
  • Output2:= mov(close,13,S);

{買い(Long)と売り(Short)のシグナルの条件を定義します。}
{サンプルの出力変数を使用し、簡単な価格と移動平均の交差システムを作成します。}

  • Long:= Cross(Output1,Output2);
  • Short:= Cross(Output2,Output1);

{トレーディングシステムの稼働機能のため、出力変数を定義します。}
{OpenBuyとCloseBuy で買いの新規/決済をコントロールします。}

  • OpenBuy:= Long and (EventCount('OpenBuy') = EventCount('CloseBuy'));
  • CloseBuy:= Short and (EventCount('OpenBuy') > EventCount('CloseBuy'));

{OpenSell とCloseSell で売りの新規/決済をコントロールします。}

  • OpenSell:= Short and (EventCount('OpenSell') = EventCount('CloseSell'));
  • CloseSell:= Long and (EventCount('OpenSell') > EventCount('CloseSell'));

{トレーディングシステムテンプレート サンプルはここまで}

EventCount

DL:EventCount

注意:トレーディングシステムを開始させてポジションを持つとカウントしますが、トレーディングシステムを稼働中に 手動で決済されてもカウントは変わらないので、この変数を使ったトレーディングシステムでは、稼働中に手動で取引すると誤動作することになります。

VTトレーダー関数一覧に戻る