Вот несколько популярных стратегий внутридневной торговли, а также примеры кода на Python:
- Стратегия пересечения скользящих средних:
В этой стратегии используются две скользящие средние: краткосрочная скользящая средняя и долгосрочная скользящая средняя. Когда краткосрочная скользящая средняя пересекает долгосрочную скользящую среднюю выше, она генерирует сигнал на покупку, а когда она пересекает ниже, она генерирует сигнал на продажу.
# Moving Average Crossover Strategy
# Calculate short-term moving average
short_ma = df['Close'].rolling(window=10).mean()
# Calculate long-term moving average
long_ma = df['Close'].rolling(window=50).mean()
# Generate buy/sell signals
df['Signal'] = np.where(short_ma > long_ma, 1, -1)
<ол старт="2">
Полосы Боллинджера состоят из средней полосы (простой скользящей средней), а также верхней и нижней полос, которые обычно находятся на расстоянии двух стандартных отклонений от средней полосы. Когда цена поднимается выше верхней полосы, генерируется сигнал на продажу, а когда цена опускается ниже нижней полосы, генерируется сигнал на покупку.
# Bollinger Bands Strategy
# Calculate the rolling mean and standard deviation
rolling_mean = df['Close'].rolling(window=20).mean()
rolling_std = df['Close'].rolling(window=20).std()
# Calculate the upper and lower bands
upper_band = rolling_mean + (rolling_std * 2)
lower_band = rolling_mean - (rolling_std * 2)
# Generate buy/sell signals
df['Signal'] = np.where(df['Close'] > upper_band, -1, np.where(df['Close'] < lower_band, 1, 0))
- Стратегия RSI (индекс относительной силы):
RSI — это импульсный осциллятор, который измеряет скорость и изменение ценовых движений. Когда RSI пересекает определенный порог (например, 30), он генерирует сигнал на покупку, а когда он пересекает другой порог (например, 70), он генерирует сигнал на продажу.
# RSI Strategy
# Calculate the RSI indicator
delta = df['Close'].diff()
gain = delta.where(delta > 0, 0)
loss = -delta.where(delta < 0, 0)
average_gain = gain.rolling(window=14).mean()
average_loss = loss.rolling(window=14).mean()
rs = average_gain / average_loss
rsi = 100 - (100 / (1 + rs))
# Generate buy/sell signals
df['Signal'] = np.where(rsi < 30, 1, np.where(rsi > 70, -1, 0))
- Стратегия MACD (схождение и расхождение скользящих средних):
MACD — это индикатор импульса, следующий за трендом, который рассчитывает разницу между двумя экспоненциальными скользящими средними. Когда линия MACD пересекает сигнальную линию выше, она генерирует сигнал на покупку, а когда она пересекает ниже, генерирует сигнал на продажу.
# MACD Strategy
# Calculate the MACD line and signal line
ema_12 = df['Close'].ewm(span=12, adjust=False).mean()
ema_26 = df['Close'].ewm(span=26, adjust=False).mean()
macd_line = ema_12 - ema_26
signal_line = macd_line.ewm(span=9, adjust=False).mean()
# Generate buy/sell signals
df['Signal'] = np.where(macd_line > signal_line, 1, -1)
- Стратегия прорыва:
Эта стратегия включает в себя определение ключевых уровней поддержки и сопротивления и размещение сделок, когда цена пробивает эти уровни. Например, когда цена преодолевает уровень сопротивления, это генерирует сигнал на покупку.
# Breakout Strategy
# Calculate the rolling high and low
rolling_high = df['High'].rolling(window=20).max()
rolling_low = df['Low'].rolling(window=20).min()
# Generate buy/sell signals
df['Signal'] = np.where(df['Close'] > rolling_high, 1, np.where(df['Close'] < rolling_low, -1, 0))