Чтобы предоставить вам различные методы дневной торговли акциями, я опишу несколько популярных стратегий вместе с примерами кода. Однако учтите, что дневная торговля может быть очень рискованной, и важно досконально понять стратегии и провести тщательное исследование, прежде чем приступать к какой-либо торговой деятельности. Вот несколько методов:
-
Пересечение скользящих средних.
Эта стратегия включает в себя отслеживание двух скользящих средних разных периодов (например, краткосрочную и долгосрочную скользящую среднюю) и генерацию сигналов покупки, когда краткосрочная скользящая средняя скользящая средняя пересекает долгосрочную скользящую среднюю.# Moving Average Crossover Strategy short_ma = df['close'].rolling(window=10).mean() # Short-term moving average long_ma = df['close'].rolling(window=50).mean() # Long-term moving average # Generate buy signals df['signal'] = np.where(short_ma > long_ma, 1, 0) df['positions'] = df['signal'].diff() -
Полосы Боллинджера.
Полосы Боллинджера состоят из средней полосы (обычно скользящей средней), а также верхней и нижней полос, которые представляют собой стандартное отклонение цены. Эта стратегия генерирует сигналы покупки, когда цена пересекает нижнюю полосу, и сигналы продажи, когда она пересекает верхнюю полосу.# Bollinger Bands Strategy rolling_mean = df['close'].rolling(window=20).mean() rolling_std = df['close'].rolling(window=20).std() df['upper_band'] = rolling_mean + (2 * rolling_std) df['lower_band'] = rolling_mean - (2 * rolling_std) # Generate buy signals df['signal'] = np.where(df['close'] < df['lower_band'], 1, 0) df['positions'] = df['signal'].diff() -
Индекс относительной силы (RSI):
RSI — это импульсный осциллятор, который измеряет скорость и изменение ценовых движений. Эта стратегия генерирует сигналы покупки, когда RSI пересекает порог перепроданности (например, 30), и сигналы продажи, когда он пересекает порог перекупленности (например, 70).# RSI Strategy delta = df['close'].diff() gain = delta.where(delta > 0, 0) loss = -delta.where(delta < 0, 0) avg_gain = gain.rolling(window=14).mean() avg_loss = loss.rolling(window=14).mean() rs = avg_gain / avg_loss rsi = 100 - (100 / (1 + rs)) # Generate buy signals df['signal'] = np.where(rsi < 30, 1, 0) df['positions'] = df['signal'].diff() -
Стратегия прорыва.
Эта стратегия включает в себя определение уровней поддержки и сопротивления и подачу сигналов на покупку, когда цена пробивает уровень сопротивления.# Breakout Strategy support_level = df['low'].rolling(window=20).min() resistance_level = df['high'].rolling(window=20).max() # Generate buy signals df['signal'] = np.where(df['close'] > resistance_level, 1, 0) df['positions'] = df['signal'].diff()
Это всего лишь несколько примеров стратегий дневной торговли. Помните, что очень важно тщательно протестировать и проверить любую стратегию, прежде чем применять ее в реальной торговле.