一个简单的R-Breaker 突破策略,带Python、Java源码
由arlifence创建,最终由small_q 被浏览 122 用户
R-Breaker策略是一种著名的交易策略,由美国交易员和编程专家Richard Saidenberg开发,并在1990年代初期公之于众。这种策略主要用于期货市场,尤其是在标准普尔500指数期货中表现出色,但也可以应用于其他金融市场。R-Breaker策略结合了趋势跟踪和反转交易的元素,旨在识别并利用市场价格波动。
R-Breaker策略核心概念
R-Breaker策略基于一组特定的价格水平,这些水平每天根据前一交易日的最高价、最低价和收盘价计算得出。这些价格水平包括:
- 转折点(Pivot Point):是基于前一日价格计算的中心点,用于确定当前交易日可能的支撑和阻力水平。
- 阻力位(Resistance Levels):在转折点之上设定的一系列价格点,分别标记为R1、R2等,用于识别可能的卖出信号。
- 支撑位(Support Levels):在转折点之下设定的一系列价格点,分别标记为S1、S2等,用于识别可能的买入信号。
R-Breaker策略的交易规则
R-Breaker策略的交易规则涉及到基于这些计算出的价格水平进行买入和卖出的决策。具体规则包括:
- 突破买入:当价格上涨突破R1阻力位时,视为买入信号。
- 反转卖出:如果价格在突破R1后回落至转折点以下,视为卖出信号。
- 突破卖出:当价格下跌突破S1支撑位时,视为卖出信号。
- 反转买入:如果价格在突破S1后回升至转折点以上,视为买入信号。
此外,R-Breaker策略还包括止损和盈利目标的设定,以管理风险和锁定收益。
应用和效果
R-Breaker策略因其简洁明了的规则和在多种市场条件下的适应性而受到交易者的欢迎。然而,就像所有交易策略一样,R-Breaker策略的效果会受到市场波动、交易成本和滑点等因素的影响。因此,虽然这个策略在历史上表现出色,但交易者在应用时仍需结合市场分析和个人风险偏好进行调整和优化。
用Java实现的R-Breaker突破策略示例
import java.util.List;
public class RBreakerStrategy {
public static void main(String[] args) {
List<Double> prices = // 获取价格数据的方法,例如从API或文件中读取
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;
// 根据buyLevel和sellLevel执行相应的交易操作
// ...
}
}
用Python实现的R-Breaker突破策略示例
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
# 根据buy_level和sell_level执行相应的交易操作
# ...
prices = # 获取价格数据的方法,例如从API或文件中读取
r_breaker_strategy(prices)
\