コンテンツにスキップ

cTraderでのRenko戦略

Renkoチャートは、価格変動のみを使用して構築されるタイプのチャートです。 新しいRenkoブリックは、シンボルの価格変動が一定のpipsの閾値を超えた場合にのみ形成されます。ローソク足チャートで通常使用される時間要素は完全にありません。 cTraderでは、トレーダーが時間ベースのローソク足バーと同じ方法で、Renkoバーに基づいた自動化された戦略を開発できます。 この記事とその対応するビデオでは、Renkoベースの戦略を使用する簡単なcBotを作成し、バックテストを行います。

取引戦略を定義する

まず、買いシグナルを定義します。 Renkoバーは時間に依存しないため、市場のノイズを自然にフィルタリングし、トレンドの枯渇や潜在的な反転を識別するのに役立ちます。 2つの弱気Renkoバーの後に2つの強気バーが続いた場合に、新しい買い注文を出します。

売りシグナルは逆の設定に従います。 2つの強気Renkoバーの後に2つの弱気バーが続いた場合に、売り注文を出します。

例の 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; }

取引戦略をOnBarClosed()メソッドに実装します。 強気の設定では、インデックス32のバーの終値が始値よりも低いかどうかを確認し、インデックス10のバーの終値が始値よりも高いかどうかも確認します。

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

弱気の設定では、逆の条件を確認します。 インデックス32のバーの終値が始値よりも高く、インデックス10のバーの始値が終値よりも高くなければなりません。

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

cBotをバックテストする

cBotを保存してビルドした後、すぐにバックテストに進むことができます。 EURUSDのチャートに20-pipのRenko閾値を設定してcBotを追加すると、期待できる結果が得られるはずです。

注意

Renkoベースの戦略は、時間ベースのローソク足と同じデータ構造を使用します。 例えば、Barsコレクションを使用してRenkoバーを取得しましたが、これはローソク足チャートからローソク足を取得するのと同じ方法です。 この機能により、どのチャートタイプでも変更なしにテストおよび実行できる戦略を開発することが可能です。 ローソク足チャートでcBotをバックテストしても、すべての操作は指定されたルールに従って実行されます。

注意

Renkoベースの戦略は、ローソク足ベースの戦略と同様に、最適化タブで最適化できます。

このガイドでは、最小限の労力で成功するRenkoベースのcBotを作成しました。