
この戦略は,移動平均 ((MA) と相対的に強い指数 ((RSI) の2つの技術指標を組み合わせて,高速移動平均の交差とRSIの超買い超売り信号によって,買取信号を生成する. 急速移動平均の上で緩やかな移動平均を横切って,RSIが超売り値より高いとき,買取信号を生成する. 急速移動平均の下に緩やかな移動平均を横切って,RSIが超買い値より高いとき,売り信号を生成する.
この戦略は,移動平均と相対的に強い指数の2つの技術指標の特性を利用している.移動平均は価格の傾向の方向を反映することができる,急速な移動平均は価格の変化に敏感であり,ゆっくりとした移動平均は相対的に遅滞して反応する.急速な移動平均でゆっくりとした移動平均を横断すると,価格の上昇傾向を示し,購入の機会になる可能性がある.逆に,価格の下降傾向を示し,売却の機会になる可能性がある.相対的に強い指数は,期間中の価格の上昇を測定し,RSIが買い値を超えた70を超えると,市場が上昇する可能性があり,熱い価格が逆転するリスクがあることを示し,RSIが販売値を超えた30を超えると,市場が上昇する可能性があり,冷たい価格が反発する機会があることを示している.
移動平均のトレンド特性と,比較的強い指数の超買超売特性を組み合わせることで,この戦略は,トレンドの動きを捉えながら,部分的に超買超売のリスクを回避することができる.これは,トレンド追跡と平均回帰を兼ね備えた量化戦略である.
移動平均線と相対的に強い指数戦略は,トレンドを追跡し,超買い超売判断をすることで,市場動向を把握しながら部分的なリスクを制御する簡単な実用的な定量化取引戦略である. しかし,この戦略にはパラメータ感受性,波動市場およびトレンド転換リスクなどの問題があり,パラメータ最適化,トレンドフィルタリング,資金管理などの方法でさらに改善する必要がある. さらに,定量化トレーダーは,自身のリスク好みと市場の特徴を組み合わせて,戦略を柔軟に調整し,他のシグナル要因と組み合わせて,より安定した利益を得る必要があります.
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © giancarlo_meneguetti
//@version=5
strategy("GM.MA.RSI.Stra", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Configurações para Médias Móveis
ema_short_length = input(9, title="EMA.9")
ema_long_length = input(21, title="EMA.21")
ema_short = ta.ema(close, ema_short_length)
ema_long = ta.ema(close, ema_long_length)
// Configurações para RSI
rsi_length = input(14, title="RSI.14")
rsi_upper_threshold = input(70, title="RSI>70")
rsi_lower_threshold = input(30, title="RSI<30")
rsi = ta.rsi(close, rsi_length)
// Sinais de Compra e Venda
// Sinal de Compra quando a EMA curta cruza acima da EMA longa e o RSI está acima do limite inferior
buy_signal = ta.crossover(ema_short, ema_long) and rsi > rsi_lower_threshold
// Sinal de Venda quando a EMA curta cruza abaixo da EMA longa ou o RSI está acima do limite superior
sell_signal = ta.crossunder(ema_short, ema_long) or rsi > rsi_upper_threshold
// Geração de Alertas
alertcondition(buy_signal, title="Sinal de Compra", message="A EMA curta cruzou acima da EMA longa e o RSI está acima do limite inferior. Considere comprar.")
alertcondition(sell_signal, title="Sinal de Venda", message="A EMA curta cruzou abaixo da EMA longa ou o RSI está acima do limite superior. Considere vender.")
// Execução da Estratégia
if buy_signal
strategy.entry("Compra", strategy.long)
if sell_signal
strategy.close("Venda")