
この戦略は,RSI,平均線MACD,ブリン帯,の止まる要因を総合的に利用して,多要因の動量輪廻取引を実現する.戦略は,まず,複数の技術指標が同時に購入または販売の信号を発信しているかどうかを判断し,もしそうなら,それに応じて購入または販売の操作を行う.同時に,戦略は,利潤をロックし,リスクを制御するために移動のストップとストップを使用する.
この戦略は以下の部分から構成されています.
判断する要素
入場と出場
戦略の最適化
この戦略は,単一の技術指標を考慮するだけでなく,RSI,MACD,TD序列などの複数の要因を組み合わせることで,単一の指標によって引き起こされる偽信号を軽減し,入場の正確性を向上させることができます.
RSI,MACDなどの指標は,より明らかな動力特性を有し,株価のトレンドの変化を捕捉することができる.平均線などのトレンド追跡指標と比較して,これらの指標の転換はより敏感である.
移動ストップは,行情運行動態でストップし,利潤をよりよくロックすることができる.ストップロスの設定は,単一損失を制御することができる.
この戦略は,一般的な技術指標と組み合わせて,ある程度の普遍性を持っています. 規則は比較的シンプルで明確で,理解し操作しやすいです.
この戦略は逆市操作を主として,逆転戦略に属している.牛市では,この戦略を適用すると,しばしば損耗が起こり,効果が悪くなる可能性がある.
参数設定が過度に敏感であれば,取引頻度が高くなり,取引コストとスライドポイントの損失が増加する可能性があります.
この戦略は,複数の指標が同じ方向の信号に依存しているが,時には各指標が異なることもあり,誤った信号を発する.
固定ストップポイントを設定すると,破損が起こりうる.このリスクを回避するために,ダイナミックストップを設定するか,株の交換を検討することができます.
RSIのパラメータと平均線の周期パラメータをテストして,取引頻度が低い組み合わせを見つけることができます.
株の自体の統計的特性 (変動率,流動性など) を組み合わせてパラメータを設定し,戦略の効率性を高めることができる.
VIXなどの全市場パニック指数に基づいて戦略のパラメータを調整することができ,市場パニック時に取引頻度を減らす.
長期の持有または短期の回転が戦略の効果に与える影響を判断するために,異なるポジション保持周期をテストすることができます.
動的止止損のより高度な方法が研究され,その効果を測ることができる.
この戦略は,複数の技術指標を総合的に考慮し,より高い入場率の正確性を確保した上で,移動ストップ・ストローを活用して利益をロックし,リスクをコントロールする.戦略の構想は,シンプルで明確で,操作を容易に理解し,パラメータ最適化と指標優遇によって効果をさらに向上させることができる.しかし,この戦略は,逆市と震動の状況に適しており,継続的な上昇の状況では効果が劣る可能性がある.この戦略は,典型的な多因量動反転策であり,株式の輪動取引の構想と参考を提供することができる.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)
RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference")
TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)
[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0 and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)
RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)
basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false
BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)
ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5)
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5)
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5)
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100)
ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000
if (strategy.position_size > 0)
strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (strategy.position_size < 0)
strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (BuyCheck == true and strategy.position_size == 0)
strategy.entry("Buy", strategy.long, comment="Long Entry")
if (SellCheck == true and strategy.position_size == 0)
strategy.entry("Sell", strategy.short, comment="Short Entry")
plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)