
Основная идея этой стратегии заключается в том, что после очевидного кратковременного остановки цены на акции, а затем, исходя из консолидированной ситуации, сформированной во время стадии остановки, оценивается возможный следующий шаг цены, в результате чего проводится соответствующая многофункциональная операция.
Стохастический осциллятор указывает на то, что акция вошла в свертывание, когда она перекупается или перепродается.
При колебании показателя стохастического осциллятора, по направлению сущности K-линии судить о точке перехода тренда. Когда K-линия с отрицательного поворачивает к солнцу, судить о завершении свертывания, делать больше; когда K-линия с отрицательного поворачивает к солнцу, судить о завершении свертывания, делать пустое место.
Стоп-стоп после дополнительного пробега устанавливается в зависимости от точки входа, используя мобильный стоп-стоп.
Стратегия поддерживает одновременно полный и разделённый операции. При полном положении устанавливается фиксированный стоп-стоп; при разделении - мобильный стоп-стоп.
Также в стратегии устанавливаются ежедневные торговые часы, которые будут торговаться только в установленный период времени.
Используя индикатор стохастического осциллятора, можно точно определить краткосрочную консолидацию цен на акции.
Операции в точках поворота K-линии после землетрясения позволяют повысить точность операций.
Применение мобильного стоп-стоп-потери, можно в зависимости от движения цены акций, чтобы остановить потерю, можно зафиксировать больше прибыли.
Поддержка полного и разделённого портфеля операций, с возможностью выбора подходящего способа работы в соответствии с собственными предпочтениями в отношении риска.
Настройка времени торговли позволяет избежать ошибочных операций в периоды необычных колебаний цен на акции.
Стохастический осциллятор имеет большую вероятность подачи ложного сигнала, может пропустить точку купли-продажи или запутаться.
Определение точки поворота K-линии неточно, возможно, операция будет выполнена в не поворотной точке.
Перемещающаяся точка остановки убытков может быть преодолена в связи с колебаниями цен на акции.
Разделение позиций может быть рискованным, а обратный курс может привести к увеличению убытков.
Необходимо скорректировать стоп-потери и частоту движения в соответствии с особенностями различных акций.
Необходимо избегать влияния на стратегию необычных колебаний цен на акции, вызванных крупными событиями.
Оптимизация параметров стохастического осциллятора для более точного определения диапазона сверки.
В сочетании с другими показателями подтверждает K-линейный поворотный сигнал, повышает операционную точность
Оптимизация мобильных алгоритмов стоп-ложа, позволяющих лучше отслеживать цены на акции.
Добавить контроль позиций, чтобы избежать слишком больших потерь по одной акции.
Вместе с публикацией крупных событий, чтобы избежать необычных колебаний цен на акции.
Оптимизируйте дифференцированную позицию, чтобы отслеживать более крупные тенденции.
Стоп-обратная стратегия использует Stochastic oscillator показатель для выявления коротких линий, чтобы совершить операцию в ценовых поворотных точках после потрясения. Эта стратегия имеет высокую выигрышную вероятность и может быть использована для блокировки прибыли в тренде. Однако Stochastic oscillator имеет возможность посылать ложные сигналы, и операционная точность должна быть улучшена.
/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Cross', overlay=true, initial_capital=1000 )
// Creditos : Cleber.martinelli
////////////////////////////////////////////////////////
// //
// //
// CALENDARIO //
// //
// //
////////////////////////////////////////////////////////
//052)
// trading view solicita que se ja informado data para gerar backtest a partir de tal data
//começa backtest do trading sistem em qual data ?
ano = input.int(2022, minval=1, title="Ano")
mes = input.int(1, minval=1, maxval=12, title="Mes")
dia = input.int(1, minval=1, maxval=31, title="Dia")
hora = input.int(1, minval=1, maxval=23, title="hora")
minuto = input.int(0, minval=0, maxval=59, title="minuto")
horaabertura = input.int(10, minval=1, maxval=23, title="hora Inicio Operacao Robo")
minutoabertura = input.int(40, minval=1, maxval=59, title="Minuto Encerra Tudo")
horaencerra = input.int(17, minval=1, maxval=23, title="hora Fechamento")
minutoencerra = input.int(50, minval=1, maxval=59, title="Minuto Encerra Novas Operacoes")
minutofinaliza = input.int(50, minval=1, maxval=59, title="Minuto Encerra Tudo")
//valida se o dia de hoje é posterior ao dia informado acima
Validadia = year >= ano and month >= mes and dayofmonth >= dia
//cria horario de abertura de negociaçao, considerar default 10 hs, pois os indicadores ja estarão corrigidos
abreloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaabertura
//and minute >= minutoabertura)
//cria horario de fechamento de todas as negociaçoes, considerar default 17:00 hs
//nenhuma ordem pode ser aberta depois dessa data e as abertas devem ser fechadas
fechaloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra
//and minute >= minutoencerra)
fechaloja2 = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra
//and minute >= minutofinaliza)
//valida horario de negociação, pra liberar as operacoes.
lojaaberta = abreloja == true and fechaloja == false and fechaloja2 == false
////////////////////////////////////////////////////////
// //
// //
// Codigo Operacional //
// //
// //
////////////////////////////////////////////////////////
// Inputs da Estratégia
pmax = input.int(90, minval=0, maxval=100, title="Estocastico Alvo - Para Short")
pmin = input.int(10, minval=0, maxval=100, title="Estocastico Alvo - Para Buy ")
parcial = input(title="Parcial ? ", defval=true)
p_gain = input.int(150, minval=0, maxval=1000, title="Pontos para Gain ")
p_loss = input.int(150, minval=0, maxval=1000, title="Pontos para Loss")
p_parcial = input.int(50, minval=0, maxval=100, title="Pontos para Parcial ")
// puxando os indicadores que usaremos
estoc = ta.stoch(close,high,low,5)
if (estoc >=pmax and close < open)
strategy.entry("Vende", strategy.short ,qty = 2)
if (estoc <=pmax and close > open)
strategy.entry("Compra", strategy.long ,qty = 2 )
pm_ativo = strategy.opentrades.entry_price(0)
if strategy.position_size > 0 and parcial// Posicionado na compra
if strategy.position_size == 2 // Mão cheia
if close < pm_ativo - 100
strategy.exit("Fecha Compra", "Compra", loss=p_loss , qty = 2 )
if close > pm_ativo + 50
strategy.exit("Fecha Compra", "Compra", profit=p_gain , qty = 1 )
if strategy.position_size == 1// Mão cheia
if close < pm_ativo
strategy.exit("Fecha Compra", "Compra", loss=0 , qty = 1 )
if close > pm_ativo + 100
strategy.exit("Fecha Compra", "Compra", profit= p_gain * 1.5 , qty = 1 )
if strategy.position_size < 0 and parcial // Posicionado na Venda
if strategy.position_size == -2 // Mão cheia
if close > pm_ativo - 100
strategy.exit("Fecha Venda", "Vende", loss=p_loss , qty = 2 )
if close < pm_ativo + 50
strategy.exit("Fecha Venda", "Vende", profit=p_gain , qty = 1 )
if strategy.position_size == -1// Mão cheia
if close > pm_ativo
strategy.exit("Fecha Venda", "Vende", loss=0 , qty = 1 )
if close < pm_ativo + 100
strategy.exit("Fecha Venda", "Vende", profit=p_gain*1.5 , qty = 1 )
if strategy.position_size > 0 and parcial == false // Sem Parcial
strategy.exit("Fecha Compra", "Compra", loss=p_loss , profit = p_gain , qty = 2 )
if strategy.position_size < 0 and parcial == false // Sem Parcial
strategy.exit("Fecha Venda", "Vende", loss=p_loss , profit = p_gain , qty = 2 )