Strategi ini mengenal pasti bahagian bawah jangka pendek dengan mengesan jumlah yang luar biasa dalam trend penurunan, dan mengambil kedudukan panjang semasa keadaan oversold.
Apabila jumlah melebihi 2 penyimpangan standard di atas jumlah purata berasaskan SMA, ia dianggap jumlah yang belum dibayar. Sementara itu, RSI di bawah 30 menunjukkan status oversold. Apabila kedua-dua syarat dipenuhi, ia dinilai sebagai bawah jangka pendek dan kedudukan panjang diambil dengan serta-merta. Posisi akan ditutup selepas tempoh masa tertentu (contohnya 10 bar).
Jadi logik strategi ini mudah:
Kelebihan strategi ini termasuk:
Ringkasnya, strategi ini mengambil kesempatan daripada pecah jumlah untuk menangkap pembalikan trend, sambil mengawal risiko dengan ketat.
Risiko utama strategi ini termasuk:
Untuk menangani risiko ini, pengoptimuman boleh dilakukan dalam aspek berikut:
Strategi ini boleh dioptimumkan lagi dalam aspek berikut:
Dengan memperkenalkan teknik yang lebih maju, peningkatan yang ketara dapat dicapai pada kestabilan, nisbah alfa dan Sharpe.
Ringkasnya, ini adalah strategi breakout jangka pendek yang sangat mudah, mudah dan logik. Dengan memanfaatkan jumlah dengan betul untuk mengesan pembalikan trend, dan mengawal risiko dengan ketat, prestasi yang kukuh dapat dicapai. Tetapi risiko isyarat palsu dan ketahanan parameter ada. Ini boleh ditangani secara bertahap dengan memperkenalkan teknik yang lebih maju untuk meningkatkan lagi strategi.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © footlz //@version=4 strategy("Bottom catch strategy", overlay=true) v_len = input(20, title="Volume SMA Length") mult = input(2) rsi_len = input(20, title="RSI Length") oversold = input(30, title="Oversold") close_time = input(10, title="Close After") v = volume basis = sma(v, v_len) dev = mult * stdev(v, v_len) upper_volume = basis + dev rsi = rsi(close, rsi_len) long = v > upper_volume and rsi < oversold strategy.entry("Long", true, when=long) passed_time = 0.0 if strategy.position_size != 0 passed_time := 1 else passed_time := 0 if strategy.position_size != 0 and strategy.position_size[1] != 0 passed_time := passed_time[1] + 1 if passed_time >= close_time strategy.close_all() // If want to enable plot, change overlay=false. v_color = close >= close[1] ? color.new(#3eb370, 0) : color.new(#e9546b, 0) // plot(v, title="volume", color=v_color, style=plot.style_columns) // plot(upper_volume, title="Threshold", color=color.aqua)