Эта стратегия нацелена на рынок SPY, используя часовые колебания цен для определения движения рынка и совершения короткой обратной торговли.
Обратный ход цены в часовом уровне с использованием пересечения перемещающейся средней линии 5 и 13 дней.
Когда RSI должен быть выше 50, движущийся средний линейный форк генерирует сигнал покупки.
13 дней под средней линией через 5-дневную среднюю линию, MACD отклонение от значения при прохождении линии сигнала производит сигнал продажи.
Устанавливается стоп-лосс и стоп-стрит, а также частично ликвидируется при достижении целевой прибыли в два раза.
Можно выбрать пустую сделку, и после завершения этого раунда сделки определить, войдет ли она в следующий раунд пустоты.
Входные параметры могут быть настроены на среднюю линию, стоп-стоп-пропорцию и т. д.
Поиск возможностей для краткосрочных сделок с использованием часовых колебаний цен.
Проверка комбинации показателей повышает точность сигнала.
Установка стратегии стоп-стоп помогает контролировать риск.
Частичные блокировки блокируют прибыль.
Входные параметры можно настроить, чтобы они были подходящими для краткосрочных трейдеров.
Почасовые колебания цен могут привести к ложным сигналам и привести к убыткам.
Неправильно настроенная Stop Loss Ratio может привести к преждевременной остановке или длительному удержанию позиции.
Некоторые параметры породы нуждаются в оптимизации для достижения хорошего эффекта отслеживания.
При оптимизации может возникнуть опасность перенастройки.
Частые транзакции увеличивают стоимость транзакций с комиссионными.
Тестирование различных комбинаций параметров для поиска оптимальных.
Оценка других показателей помогает подтвердить торговые сигналы.
Оптимизация стратегии стоп-стоп, баланс риска и дохода.
Добавить фильтр тренда, чтобы избежать обратной торговли.
При этом, по мнению экспертов, это может привести к снижению доходов, а также к снижению доходов.
Оценка других сортов, подходящих для этой стратегии.
Эта стратегия пытается захватить возможности короткой линии SPY на часовом уровне. Достоверность может быть повышена с помощью оптимизации параметров, фильтрации сигналов и т. Д., что делает ее эффективной стратегией короткой линии.
//@version=5
strategy(title="SPY 1 Hour Swing Trader", initial_capital=300000, default_qty_type=strategy.percent_of_equity, default_qty_value=15, pyramiding=0, commission_type=strategy.commission.cash_per_order, commission_value=0, overlay=true, calc_on_every_tick=false, process_orders_on_close=true, max_labels_count=500)
//The purpose of this script is to spot 1 hour pivots that indicate ~5 to 6 trading day swings.
//Results indicate that swings are held approximately 5 to 6 trading days on average, over the last 6 years.
//This indicator spots a go long opportunity when the 5 ema crosses the 13 ema on the 1 hour along with the RSI > 50.
//It also spots uses a couple different means to determine when to exit the trade. Sell condition is
//primarily when the 13 ema crosses the 5 ema and the MACD line crosses below the signal line and
//the smoothed Stoichastic appears oversold (greater than 60). Stop Losses and Take Profits are configurable
//in Inputs along with ability to include short trades plus other MACD and Stoichastic settings.
//If a stop loss is encountered the trade will close. Also once twice the expected move is encountered
//partial profits will taken and stop losses and take profits will be re-established based on most recent close
//Once long trades are exited, short trades will be initiated if recent conditions appeared oversold and
//input option for short trading is enabled. If trying to use this for something other than SPXL it is best
//to update stop losses and take profit percentages and check backtest results to ensure proper levels have
//been selected and the script gives satisfactory results.
// Initialize variables
var float long_entry_price = na
var float short_entry_price = na
var float stop_loss = na
var float take_profit = na
var float twoxtake_profit = na
var float short_stop_loss = na
var float short_take_profit = na
var float short_twoxtake_profit = na
var int startshort = 0
// Inputs
short = input.bool(true, "Include Short Trades!")
option_SL_P = input.float(0.02, "Input Stop Loss Percentage (0.02 = 2%)")
option_TP_P = input.float(0.03, "Input Take Profit Percentage (0.03 = 3%)")
pp = input.int(50, "Partial Profit Percentage in whole numbers (50 is 50%)")
ema5 = input.int(5, "Fast EMA Period", minval=1)
ema13 = input.int(13, "Slow EMA Period", minval=1)
rsi_length = input.int(14, "RSI Length", minval=1)
macd_fast_length = input.int(8, "MACD Fast Length", minval=1)
macd_slow_length = input.int(21, "MACD Slow Length", minval=1)
macd_signal_length = input.int(5, "MACD Signal Length", minval=1)
len = input.int(14, title="ADX Length", minval=1)
length = input.int(14, "Stochastic Length")
smoothK = input.int(3, "Stoicastic Smooth K")
src = input(close, "Stoicastic Source")
// Calculating EMA
ema_13 = ta.ema(close, ema13)
ema_5 = ta.ema(close, ema5)
// Calculate RSI
rsi = ta.rsi(close, rsi_length)
smooth_rsi = ta.ema(rsi, 5)
// Calculate MACD
[macd_line, signal_line, _] = ta.macd(close, macd_fast_length, macd_slow_length, macd_signal_length)
// Calculate the True Range
tr = ta.tr(true)
// Calculate slope of MACD line
rsiSlope = (smooth_rsi - smooth_rsi[3]) / (bar_index - bar_index[3])
// Calculate the Directional Movement
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
// Calculate the Smoothed Directional Movement
plusDI = 100 * ta.ema(plusDM, len) / ta.ema(tr, len)
minusDI = 100 * ta.ema(minusDM, len) / ta.ema(tr, len)
// Calculate the Directional Index (DX)
DX = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
// Calculate the ADX
adx = ta.ema(DX, len)
//Stochastic Calculation
highestHigh = ta.highest(src, length)
lowestLow = ta.lowest(src, length)
k = 100 * ((src - lowestLow) / (highestHigh - lowestLow))
d = ta.sma(k, smoothK)
// Determine current VIX
vixClose = request.security("VIX", timeframe.period, close[3])
//plot(vixClose, title="VIX Close", color=color.red)
// Buy and Sell Conditions
buy_condition = ta.crossover(ema_5 , ema_13) and rsi > 50
sell_condition = ema_13 > ema_5 and macd_line < signal_line and (d > 60)
// Plotting indicators
plot(ema_13, color=color.orange, title="Slow EMA Period")
plot(ema_5, color=color.blue, title="Fast EMA Period")
// Executing trades
if buy_condition and strategy.position_size == 0 and barstate.isconfirmed
strategy.entry("Pivot Up", strategy.long, alert_message = "Pivoting Up")
long_entry_price := close
stop_loss := long_entry_price - (option_SL_P * close)
take_profit := long_entry_price + (option_TP_P * close)
twoxtake_profit := long_entry_price + (2 * option_TP_P * close)
if strategy.position_size > 0 and barstate.isconfirmed
if close < stop_loss and barstate.isconfirmed
strategy.close("Pivot Up", "Exit Longs Stopped")
if short == 1
startshort := 1
else if sell_condition and barstate.isconfirmed
if short == 1
startshort := 1
strategy.close("Pivot Up", "Exit Longs Sell Condition Met")
else if close >= twoxtake_profit and barstate.isconfirmed
stop_loss := close - (.5*option_TP_P*close)
take_profit := close + (.5*option_TP_P*close)
strategy.exit("Exit Partial Longs", "Pivot Up", stop=stop_loss, limit = take_profit, qty_percent = pp)
if startshort == 1
if (d[6] > 80) and barstate.isconfirmed
strategy.entry("Pivot Down", strategy.short, alert_message = "Pivoting Down")
short_entry_price := close
short_stop_loss := short_entry_price + (option_SL_P * close)
short_take_profit := short_entry_price - (option_TP_P * close)
short_twoxtake_profit := short_entry_price - (2 * option_TP_P * close)
startshort := 0
else
startshort := 0
if strategy.position_size < 0 and barstate.isconfirmed
if close > short_stop_loss and barstate.isconfirmed
strategy.close("Pivot Down", "Exit Shorts Stopped")
else if close <= short_twoxtake_profit and barstate.isconfirmed
short_stop_loss := close + (.5*option_TP_P*close)
short_take_profit := close - (.5*option_TP_P*close)
strategy.exit("Exit Partial Shorts", "Pivot Down", stop=short_stop_loss, limit = short_take_profit, qty_percent = pp)