
この戦略の主な考えは,株価が明らかな短期停滞の後,停期の形成された整合状態に基づいて価格の次の可能性のある進路を判断し,それに対応した多空操作を行うことである.
ストキャスティック・オシレータは,オーバーバイまたはオーバーセール領域の振動で,株価がオーバーバイしていることを示します.
ストキャスティックオシレータの指標が振動するときは,K線実体方向に基づいてトレンド転換点を判断する.K線が陰から陽に転じるときは,収束終了と判断して,多めにする.K線が陽から陰に転じるときは,収束終了と判断して,空きにする.
余分な空白の後,入場ポイントに応じて設定されるストップストップ損失は,移動ストップストップ損失を採用する.
この戦略は,全仓操作と分仓操作を同時にサポートする.全仓の場合,固定ストップストラップポイントを設定し,分仓の場合,移動ストップストラップポイントを設定する.
この戦略は,毎日取引時間を設定し,設定された時間帯のみで取引します.
ストキャスティックオシレータの指標を用いて,株価の変動状態を判断し,株価の短期収束を正確に判断することができる.
震災後のK線転換点での操作は,操作の正確性を向上させる.
モバイルストップ・ストップ・ロスを採用し,株価の動きに応じてストップ・ポイント・トラリングを行うことで,より多くの利益をロックすることができる.
全仓庫と分仓庫の操作をサポートし,自分のリスクの好みに応じて適切な操作方法を選択できます.
取引時間を設定することで,株価の異常な波動の時に誤った操作を回避できます.
ストキャスティック・オシレータの指標は偽信号を発信する可能性が高く,買点や売り点を逃すか乱入する可能性がある.
K線転換点判断は不正確で,非転換点での操作が行われる可能性がある。
移動ストップポイントは株価の変動に伴い,ストップポイントを突破する可能性があります.
分仓操作はリスクが高いため,株価の逆転がLossの拡大を引き起こす可能性があります.
ストップポイントと移動幅を異なる株の特徴に合わせて調整する必要があります.
大事な出来事による株価の異常な変動が戦略に与える影響を回避する必要がある.
ストキャスティックオシレータのパラメータを最適化して,整合区間をより正確に識別する.
他の指標と組み合わせてK線回転信号を確認し,操作の正確性を向上させる.
モバイル・ストップ・アルゴリズムの最適化により,ストップ・ポイントが株価をよく追跡できるようになります.
ポジションコントロールを追加し,単一株で多額の損失を回避する.
株価の異常な波動を避けるために,重大イベントの発表時間と組み合わせる.
市場を動かすために,ポジション分割を最適化して,より大きなトレンドを追跡する.
ストップ・リバース戦略は,ストーキャスティック・オシレータの指標を用いて短線整合を識別し,震動後の価格転換点で操作する.この戦略は,高い勝利率を持ち,トレンド中の利益をロックすることができる.しかし,ストーキャスティック・オシレータは,偽信号を発信する可能性があり,操作の正確さはさらに改善される必要がある.指標パラメータを最適化し,フィルター条件を追加することによって誤信号率を減らすことができる.さらに,ストップ・損失算法とポジション制御を最適化し,重大イベントの影響を回避することは,この戦略の重点的な最適化の方向である.全体的に言えば,ストップ・リバース戦略には一定の参照価値がありますが,実際の取引方法に応じて適切な調整と最適化を行い,リスクを制御する必要があります.
/*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 )