
この戦略は,平均線と超越指数を使用して市場動向を判断し,ストップを追跡するメカニズムと組み合わせて,ストップを追跡する取引戦略を設計します. 超越指数が上昇傾向であると判断された場合,収束価格に14サイクル平均線を突破した場合,多めにします.
この戦略は,平均線,超越指数,およびストップロスを追跡する3つの技術指標を使用しています.
まず,14周期と44周期の指数移動平均線を計算する.14周期の平均線は短期的な傾向を判断するために用いられ,44周期の平均線は長期的な傾向を判断するために用いられる.短期的な平均線を長期的平均線に切るときは多見信号として,逆に空見である.
次に,超越指数を計算して,現在の市場トレンドを判断する.超越指数は正向指数DI+と逆向指数DI−で構成されている.DI+がDI−より高いときは,看板傾向;DI−がDI+より高いときは,看板傾向である.
最後に,均線信号と超えた指標のトレンド判断を組み合わせて,取引信号を生成する.超えた指標が看板で,価格が14周期平均線を上越したときに,多めにする.超えた指標が看板で,価格が14周期平均線を下越したときに,空っぽにする.入場後,ストップロスを44周期平均線の近くに設定して,追跡ストップを実現する.
この戦略は,3つの技術指標の優位性を総合的に利用し,正確な判断と時効性のある止損の判断を可能にし,以下の利点があります.
この戦略にはいくつかのリスクがあります.
対応方法:
この戦略は,以下の方向から最適化できます.
他の指標の判断を追加し,誤った信号をフィルターし,戦略の勝利率を上げます.例えば,取引量指標と組み合わせて,トレンドを強化します.
ストップ追跡の最適化により,ストップがよりスマートで柔軟にできます.例えば,ATRによるストップ,Chandelier Exitなどです.
遺伝的アルゴリズム,深層学習など,最適のパラメータの組み合わせを見つける.
高周波ノイズによる干渉を避けるため,より高い時間枠で戦略を実行します.
この戦略は,平均線,指数を超え,ストップ・ロスを追跡する技術を総合的に使用し,信号の正確さとストップ・ロスのタイミングを判断し,実用的で信頼性の高いストップ・ロスを追跡する取引戦略です.その後,信号の質を向上させ,ストップ・ロスの方法を最適化することによって,戦略の効果をさらに強化することができます.
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Santanu Strategy", overlay=true)
atrPeriod = input(3, "ATR Length")
factor = input.float(1, "Factor", step = 0.01)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)
fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)
len = input.int(14, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
out = ta.ema(src, len)
len44 = input.int(44, minval=1, title="Length")
out44 = ta.ema(src, len44)
isRising = ta.rising(out, 1)
isFalling = ta.falling(out, 1)
plotColor = color.black
if isRising
plotColor := color.green
else if isFalling
plotColor := color.red
plot(out, color=plotColor, title="MA", offset=offset)
plot(out44, color=color.blue, title="MA", offset=offset)
if direction < 0
if close >= out
//if low >= out44
if isRising
strategy.entry("Buy Now", strategy.long)
if direction > 0
if close <= out
//if high <= out44
if isFalling
strategy.entry("Sell Now", strategy.short)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)