Strategi ini menggunakan persetujuan penunjuk merentasi pelbagai jangka masa untuk mengesan trend. Ia pergi panjang atau pendek apabila jangka masa harian, 10 hari, 15 hari dan 30 hari secara serentak memberikan isyarat menaik atau menurun, dengan stop loss dinamik.
Strategi ini menilai arah trend menggunakan empat bingkai masa - harian, 10 hari, 15 hari dan 30 hari. Apabila harga penutupan lebih tinggi daripada harga pembukaan di semua empat bingkai masa, ia menunjukkan isyarat kenaikan. Apabila harga penutupan lebih rendah daripada harga pembukaan di semua empat bingkai masa, ia menunjukkan isyarat penurunan.
Apabila isyarat bullish, ia pergi panjang. Apabila isyarat bearish, ia pergi pendek. Selepas memasuki, saluran KC digunakan untuk stop loss dinamik.
Secara khusus, strategi ini membandingkan harga pembukaan dan harga penutupan dalam jangka masa yang berbeza untuk menentukan arah trend. Jika harga penutupan lebih tinggi daripada harga pembukaan, jangka masa dianggap bullish dan digambarkan dengan warna hijau. Jika harga penutupan lebih rendah daripada harga pembukaan, jangka masa dianggap menurun dan digambarkan dengan warna merah.
Apabila semua empat bingkai masa bersetuju dengan isyarat kenaikan, strategi akan membuka kedudukan panjang. Apabila semua empat bingkai masa bersetuju dengan isyarat penurunan, strategi akan membuka kedudukan pendek. Ia akan keluar apabila mencapai stop loss atau trend berbalik.
Menggunakan pelbagai jangka masa untuk mengesahkan trend dapat menapis penembusan palsu dengan berkesan dan menentukan arah trend.
Stop loss dinamik boleh memaksimumkan perlindungan modal.
Kriteria kemasukan yang ketat mengurangkan perdagangan yang tidak perlu dan kos slippage.
Menggabungkan pelbagai jangka masa menyeimbangkan kelajuan keuntungan dan kestabilan.
Kriteria kemasukan mungkin terlalu ketat, kehilangan beberapa peluang.
Tetapan stop loss yang tidak betul mungkin terlalu agresif atau konservatif.
Pilihan jangka masa yang tidak sesuai mungkin tidak sejajar dengan trend jangka panjang atau jangka pendek.
Pengubahsuaian tiba-tiba daripada peristiwa mungkin tidak mencetuskan stop loss.
Mengoptimumkan pilihan jangka masa untuk menyeimbangkan kelajuan keuntungan dan kestabilan.
Uji tetapan parameter yang berbeza untuk mengoptimumkan tahap stop loss.
Tambah algoritma pembelajaran mesin untuk membantu menilai titik pembalikan.
Memantau peristiwa penting untuk mengelakkan kerugian daripada perubahan tiba-tiba.
Strategi ini mengintegrasikan pertimbangan dalam pelbagai jangka masa, dengan kriteria kemasukan yang ketat dan berhenti dinamik, bertujuan untuk pulangan yang stabil. Ia mempunyai risiko peluang yang hilang dan kawalan risiko yang tidak tepat. Langkah seterusnya adalah untuk terus mengoptimumkan parameter untuk kestabilan yang lebih tinggi.
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("[RichG] Easy MTF Strategy v1.1", overlay=false) TF_1_time = input("D", "Timeframe 1") TF_2_time = input("10D", "Timeframe 2") TF_3_time = input("15D", "Timeframe 3") TF_4_time = input("30D", "Timeframe 4") lengthKC=input(20, title="KC Length") multKC = input(1.5, title="KC MultFactor") lengthBB=input(20, title="BB Length") transaction_size = input(1, "Contract/Share Amount") src = close, len = 20 out = sma(src, len) width = 5 upcolor = green downcolor = red neutralcolor = blue linestyle = line kc() => ma = sma(close, lengthKC) range = tr rangema = sma(range, lengthKC) upperKC = ma + rangema * multKC lowerKC = ma - rangema * multKC [lowerKC, upperKC] bb() => source = close basis = sma(source, lengthBB) dev = multKC * stdev(source, lengthBB) upperBB = basis + dev lowerBB = basis - dev [upperBB, lowerBB] TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false TF_1_color = TF_1 ? upcolor:downcolor TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false TF_2_color = TF_2 ? upcolor:downcolor TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false TF_3_color = TF_3 ? upcolor:downcolor TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false TF_4_color = TF_4 ? upcolor:downcolor TF_global = TF_1 and TF_2 and TF_3 and TF_4 TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false TF_global_color = TF_global ? green : TF_global_bear ? red : white TF_trigger_width = TF_global ? 6 : width plot(1, style=linestyle, linewidth=width, color=TF_1_color) plot(5, style=linestyle, linewidth=width, color=TF_2_color) plot(10, style=linestyle, linewidth=width, color=TF_3_color) plot(15, style=linestyle, linewidth=width, color=TF_4_color) plot(25, style=linestyle, linewidth=4, color=TF_global_color) exitCondition_Long = TF_global_bear exitCondition_Short = TF_global longCondition = TF_global if (longCondition) strategy.entry("MTF_Long", strategy.long, qty=transaction_size) shortCondition = TF_global_bear if (shortCondition) strategy.entry("MTF_Short", strategy.short, qty=transaction_size) [kc_lower,kc_upper] = kc() strategy.close("MTF_Long", when=close < kc_upper) strategy.close("MTF_Short", when=close > kc_lower)