R-Breaker戦略は、アメリカのトレーダーでありプログラミングの専門家であるリチャード・サイデンバーグによって開発された有名な取引戦略です。この戦略は1990年代初頭に公にされました。主に先物市場で使用されており、特にS&P 500指数先物で優れた成果を上げていますが、他の金融市場にも適用可能です。R-Breakerはトレンドフォローと逆張りの要素を組み合わせており、市場の価格変動を特定し、利益を得ることを目的としています。

R-Breaker戦略の基本概念

R-Breaker戦略は、前日の高値、安値、終値を使用して毎日計算される特定の価格レベルに基づいています。これらのレベルには以下が含まれます:

  • ピボットポイント: 前日の価格から計算された中心のレベルで、当日のサポートとレジスタンスの可能性を判断するために使用されます。
  • レジスタンスレベル: ピボットポイントの上に設定された一連の価格ポイントで、R1、R2などとラベル付けされ、売り信号の特定に使用されます。
  • サポートレベル: ピボットポイントの下に設定された一連の価格ポイントで、S1、S2などとラベル付けされ、買い信号の特定に使用されます。

R-Breaker戦略の取引ルール

R-Breaker戦略は、これらの計算されたレベルを使用して売買の決定を行います。具体的なルールは以下の通りです:

  • ブレイクアウト買い: 価格がR1レジスタンスレベルを超えると、買い信号が発生します。
  • 逆張り売り: 価格がR1を超えた後、ピボットポイントを下回ると、売り信号と見なされます。
  • ブレイクアウト売り: 価格がS1サポートレベルを下回ると、売り信号が発生します。
  • 逆張り買い: 価格がS1を下回った後、ピボットポイントを超えて上昇すると、買い信号と見なされます。

さらに、R-Breaker戦略にはリスク管理と利益確定のためのストップロスおよび利益目標設定が含まれています。

応用と効果

R-Breaker戦略は、その明確なルールとさまざまな市場条件への適応性により、トレーダーの間で人気があります。しかし、すべての取引戦略と同様に、市場のボラティリティ、取引コスト、スリッページなどの要因によってパフォーマンスが影響を受ける可能性があります。したがって、この戦略は歴史的に良好な成果を上げてきましたが、トレーダーは市場分析と自分のリスクの好みに基づいて戦略を調整し、最適化する必要があります。

Javaコード例

import java.util.List;

public class RBreakerStrategy {
    public static void main(String[] args) {
        List<Double> prices = 

        double highest = prices.stream().max(Double::compareTo).get();
        double lowest = prices.stream().min(Double::compareTo).get();
        double range = highest - lowest;

        double buyLevel = prices.get(prices.size() - 2) + 0.1 * range;
        double sellLevel = prices.get(prices.size() - 2) - 0.1 * range;


    }
}

Pythonコード例

def r_breaker_strategy(prices):
    highest = max(prices)
    lowest = min(prices)
    range = highest - lowest

    buy_level = prices[-2] + 0.1 * range
    sell_level = prices[-2] - 0.1 * range



prices = 
r_breaker_strategy(prices)