Idea teras strategi ini ialah pelabur sentiasa mengekalkan bahagian pelaburan aset tertentu dalam aset. Apabila nilai aset meningkat, pelabur akan menjual sebahagian untuk mengekalkan bahagian pelaburan; apabila nilai aset menurun, pelabur akan membeli untuk menambah bahagian pelaburan. Strategi ini berlaku untuk aset yang agak stabil.
Strategi ini perlu menetapkan parameter peratusan pelaburan, iaitu bahagian aset yang dimiliki dalam portofolio. Kemudian sesuaikan kedudukan mengikut logik berikut:
Apabila kedudukan adalah 0, jumlah kontrak yang perlu dibeli dikira berdasarkan peratusan pelaburan yang ditetapkan dan modal awal.
Apabila memegang kedudukan, bandingkan jumlah yang telah dilaburkan dengan peratusan hak milik akaun dan persentasus pelaburan yang ditetapkan. Jika peratusan jumlah yang telah dilaburkan terlalu rendah, beli kontrak untuk menambah bahagian pelaburan; Jika peratusan jumlah yang telah dilaburkan terlalu tinggi, jual kontrak untuk mengekalkan bahagian pelaburan.
Repeat langkah 2, mengekalkan bahagian pelaburan pada tahap tetap.
Anda boleh memegang aset yang agak stabil untuk jangka masa yang panjang, tanpa perlu berdagang dengan kerap.
Sesuaikan kedudukan anda secara berkala untuk mendapatkan keuntungan daripada turun naik aset.
Ia boleh menyebarkan pelaburan ke dalam pelbagai aset yang tidak berkaitan, mengurangkan risiko portfolio.
Ia boleh menghalang kerugian keseluruhan dan mengelakkan kehilangan semua pelaburan jika gelembung pecah.
Aset yang lebih turun naik, risiko kerugian lebih besar.
Bayaran untuk transaksi yang kerap diperlukan.
Pembaikan kedudukan mungkin terlewat masa, terlepas titik jual beli terbaik.
Peratusan yang tidak betul boleh menyebabkan perdagangan berlebihan.
Anda boleh mengurangkan risiko anda dengan:
Pilih aset dengan berhati-hati dan elakkan aset yang bergelombang tinggi.
Mengoptimumkan logik penyesuaian kedudukan dan mengurangkan kekerapan dagangan.
Tetapkan satuan minimum perubahan kedudukan untuk mengelakkan perdagangan berlebihan.
Optimumkan peratusan untuk mengelakkan pemusatan dana yang berlebihan.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Menambah logik stop loss, secara automatik menghentikan kerugian apabila harga aset turun ke tahap tertentu.
Menambah pengesahan isyarat perdagangan untuk penyesuaian kedudukan, mengelakkan penyesuaian kedudukan di tempat yang tidak berubah trend.
Parameter seperti peratusan pelaburan yang berbeza untuk aset yang berbeza, nisbah stop loss.
Tambah modul pengoptimuman parameter untuk mengoptimumkan parameter secara automatik berdasarkan data sejarah.
Membantu pelaburan semula aset lain untuk penempatan aset dinamik.
Strategi ini boleh digunakan untuk memegang aset yang stabil dalam jangka masa panjang, dengan tujuan untuk menyebarkan pelaburan dan mengawal risiko melalui bahagian pelaburan tetap. Tetapi strategi ini mempunyai masalah seperti ketinggalan penyesuaian kedudukan dan risiko pelaburan aset berisiko. Kemudian, kestabilan strategi dapat ditingkatkan lagi dengan mengoptimumkan logik stop-loss dan pengesahan isyarat.
/*backtest
start: 2022-09-21 00:00:00
end: 2022-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// strategy("Fixed Fractioning", overlay=true, initial_capital=100000.0)
percent_invested=input(50.0,title="Percent Invested",maxval=100.0,minval=0.0)
fraction_invested=percent_invested/100
from_day=input(1,title="From Day",maxval=31,minval=1)
from_month=input(1,title="From Month",maxval=12,minval=1)
from_year=input(2017,title="From Year",maxval=2018,minval=1900)
to_day=input(1,title="To Day",maxval=31,minval=1)
to_month=input(1,title="To Month",maxval=12,minval=1)
to_year=input(2018,title="To Year",maxval=2018,minval=1900)
// === FUNCTION EXAMPLE === from: https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/
start = timestamp(from_year, from_month, from_day, 00, 00) // backtest start window
finish = timestamp(to_year, to_month, to_day, 23, 59) // backtest finish window
window() => true // create function "within window of time"
strategy.initial_capital = 50000
if strategy.position_size==0 and window()
contracts_to_buy=(fraction_invested*strategy.initial_capital)/close
strategy.entry("long",long=true,qty=contracts_to_buy,limit=close,when=contracts_to_buy>1)
invested=(strategy.position_size*close)/strategy.equity
if invested<fraction_invested and window()
contracts_to_buy=((fraction_invested-invested)*strategy.equity)/close
strategy.order("long",long=true,qty=contracts_to_buy,limit=close,when=contracts_to_buy>1)
else
if invested>fraction_invested and window()
contracts_to_sell=((invested-fraction_invested)*strategy.equity)/close
strategy.order("sell",long=false,qty=contracts_to_sell,limit=close,when=contracts_to_sell>1)