コンテンツにスキップ

cTraderでのレンジバー戦略

レンジチャートは、価格がその動きを完了するのにどれくらい時間がかかるかに関係なく、指定された価格変動の範囲を表すために構築されます。 これにより、レンジサイズよりも小さい価格変動がフィルタリングされ、トレンドを視覚化しやすくなります。 cTraderでは、レンジバーに基づいて意思決定を行う自動取引戦略を開発するプロセスは、標準の時間ベースのローソク足に基づいてそのような戦略を作成するプロセスと同じです。 この記事とその対応するビデオでは、レンジバーに基づいた簡単な戦略を開発し、バックテストする方法をデモンストレーションします。

買いと売りのシグナルを定義する

取引ロジックを簡単に説明します。

  • 買いシグナル - 弱気のレンジバーに続く強気のレンジバーが、弱気バーの始値を上回って終了したときに発生します。
  • 売りシグナル - 強気のレンジバーに続く弱気のレンジバーが、強気バーの始値を下回って終了したときに発生します。

買いシグナルの解釈は、弱気トレンドが強い抵抗に遭遇したときに、反発を期待して買いを入れる時が来たということです。 売りシグナルには逆の設定が適用されます:強気トレンドが抵抗に遭遇し、これに乗じて売り注文を出す必要があります。

例の cBot を作成する

cBotの作成を開始できます。 まず、必要なパラメーターを定義します。

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 10000)]
public double Volume { get; set; }

[Parameter(DefaultValue = 20)]
public double StopLoss { get; set; }

[Parameter(DefaultValue = 20)]
public double TakeProfit { get; set; }

買いシグナルは次のようにコーディングできます。

1
2
3
4
if (Bars.Last(0).Close > Bars.Last(0).Open && Bars.Last(1).Close < Bars.Last(1).Open && Bars.Last(0).Close > Bars.Last(1).Open)
{
    ExecuteMarketOrder(TradeType.Buy, SymbolName, Volume,InstanceId, StopLoss, TakeProfit);
}

売りシグナルは次のようになります。

1
2
3
4
if (Bars.Last(0).Close < Bars.Last(0).Open && Bars.Last(1).Close > Bars.Last(1).Open && Bars.Last(0).Close < Bars.Last(1).Open)
{
    ExecuteMarketOrder(TradeType.Sell, SymbolName, Volume,InstanceId, StopLoss, TakeProfit);
}

戦略をバックテストする

新しいcBotをビルドした後、バックテストタブに切り替えてバックテストを実行します。 結果は以下の通りです。

注意

レンジバー戦略は、ローソク足に基づく戦略と同じデータ構造を使用します。 例えば、レンジバーを取得するためにBarsコレクションを使用しましたが、ローソク足を取得しようとするときにも同じコレクションを使用したでしょう。 cTraderのこの機能により、チャートタイプを問わず、変更を加えることなく戦略をテストおよび実行できる戦略を開発できます。

このチュートリアルでは、レンジチャートに基づいた簡単な戦略を迅速に開発する方法をデモンストレーションしました。 また、そのような戦略を時間ベースのローソク足を含むチャートで自由に再利用できることを提案しました。