Strategi perdagangan trend pembalikan purata golden ratio mengenal pasti arah trend yang lebih kuat menggunakan penunjuk saluran dan purata bergerak, dan membuka kedudukan dalam arah trend selepas harga menarik balik kepada nisbah tertentu. Strategi ini sesuai untuk pasaran dengan ciri trend yang lebih kuat dan boleh berfungsi dengan baik di pasaran trend.
Penunjuk teras strategi ini termasuk penunjuk saluran, purata bergerak dan garis pencetus tarik balik.
Apabila harga menyentuh bahagian bawah saluran, strategi mencatat titik terendah sebagai titik rujukan dan menetapkan isyarat jual. Apabila harga naik, sebaik sahaja kenaikan mencapai nisbah pulback, kedudukan pendek akan dibuka di sekitar titik kebangkitan.
Sebaliknya, apabila harga mencapai bahagian atas saluran, strategi mencatat titik tertinggi sebagai titik rujukan dan menetapkan isyarat beli. Apabila harga jatuh, jika penurunan memenuhi keperluan nisbah pulback, kedudukan panjang dibuka di sekitar titik itu.
Oleh itu, logik perdagangan strategi ini adalah untuk mengesan saluran harga dan campur tangan dalam trend sedia ada apabila isyarat pembalikan muncul.
Kelebihan utama strategi ini ialah:
Secara khusus, kerana strategi ini terutamanya membuka kedudukan pada titik pembalikan trend, ia berfungsi dengan lebih baik di pasaran dengan turun naik harga yang lebih besar dan trend yang lebih jelas. Di samping itu, menyesuaikan parameter nisbah pulback dapat mengawal tahap agresif strategi untuk mengikuti trend. Akhirnya, stop loss dapat mengawal kerugian perdagangan tunggal dengan sangat baik.
Risiko utama strategi ini juga termasuk:
Secara khusus, jika instrumen perdagangan yang digunakan dalam strategi mempunyai trend yang lemah dan turun naik yang lebih kecil, prestasi mungkin terganggu. Di samping itu, nisbah pulback yang terlalu besar atau terlalu kecil akan mempengaruhi prestasi strategi. Akhirnya, kerana jangka masa memegang kedudukan strategi mungkin lebih lama, kawalan risiko semalam juga memerlukan perhatian.
Untuk mengelakkan risiko di atas, pertimbangkan untuk mengoptimumkan aspek berikut:
Rasio emas bermaksud strategi perdagangan trend pembalikan menilai trend harga dan isyarat tarik balik melalui penunjuk mudah, membuka kedudukan untuk mengesan trend di pasaran yang kuat, dan tergolong dalam sistem trend biasa. Strategi ini mempunyai ruang penyesuaian parameter yang besar, dapat menyesuaikan diri dengan lebih banyak persekitaran pasaran melalui pengoptimuman, dan kawalan risiko juga munasabah. Oleh itu, ia adalah idea strategi yang patut disahkan dan diperbaiki dalam perdagangan langsung.
/*backtest start: 2022-11-30 00:00:00 end: 2023-12-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // // A port of the TradeStation EasyLanguage code for a mean-revision strategy described at // http://traders.com/Documentation/FEEDbk_docs/2017/01/TradersTips.html // // "In “Mean-Reversion Swing Trading,” which appeared in the December 2016 issue of STOCKS & COMMODITIES, author Ken Calhoun // describes a trading methodology where the trader attempts to enter an existing trend after there has been a pullback. // He suggests looking for 50% pullbacks in strong trends and waiting for price to move back in the direction of the trend // before entering the trade." // // See Also: // - 9 Mistakes Quants Make that Cause Backtests to Lie (https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/) // - When Backtests Meet Reality (http://financial-hacker.com/Backtest.pdf) // - Why MT4 backtesting does not work (http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020) // // // ----------------------------------------------------------------------------- // Copyright 2018 sherwind // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // The GNU General Public License can be found here // <http://www.gnu.org/licenses/>. // // ----------------------------------------------------------------------------- // strategy("Mean-Reversion Swing Trading Strategy v1", shorttitle="MRST Strategy v1", overlay=true) channel_len = input(defval=20, title="Channel Period", minval=1) pullback_pct = input(defval=0.5, title="Percent Pull Back Trigger", minval=0.01, maxval=1, step=0.01) trend_filter_len = input(defval=50, title="Trend MA Period", minval=1) upper_band = highest(high, channel_len) lower_band = lowest(low, channel_len) trend = sma(close, trend_filter_len) low_ref = 0.0 low_ref := nz(low_ref[1]) high_ref = 0.0 high_ref := nz(high_ref[1]) long_ok = false long_ok := nz(long_ok[1]) short_ok = false short_ok := nz(short_ok[1]) long_ok2 = false long_ok2 := nz(long_ok2[1]) if (low == lower_band) low_ref := low long_ok := false short_ok := true long_ok2 := false if (high == upper_band) high_ref := high long_ok := true short_ok := false long_ok2 := true // Pull Back Level trigger = long_ok2 ? high_ref - pullback_pct * (high_ref - low_ref) : low_ref + pullback_pct * (high_ref - low_ref) plot(upper_band, title="Upper Band", color=long_ok2?green:red) plot(lower_band, title="Lower Band", color=long_ok2?green:red) plot(trigger, title="Trigger", color=purple) plot(trend, title="Trend", color=orange) enter_long = long_ok[1] and long_ok and crossover(close, trigger) and close > trend and strategy.position_size <= 0 enter_short = short_ok[1] and short_ok and crossunder(close, trigger) and close < trend and strategy.position_size >= 0 if (enter_long) long_ok := false strategy.entry("pullback-long", strategy.long, stop=close, comment="pullback-long") else strategy.cancel("pullback-long") if (enter_short) short_ok := false strategy.entry("pullback-short", strategy.short, stop=close, comment="pullback-short") else strategy.cancel("pullback-short") strategy.exit("exit-long", "pullback-long", limit=upper_band, stop=lower_band) strategy.exit("exit-short", "pullback-short", limit=lower_band, stop=upper_band)