Strategi ini adalah sistem dagangan berdasarkan anomali pasaran, terutamanya menggunakan ciri-ciri tingkah laku pasaran antara penutupan petang Khamis dan penutupan Jumaat. Strategi ini menggunakan masa masuk dan keluar tetap, mengesahkan corak pasaran ini melalui backtesting. Ia menggunakan 10% modal setiap perdagangan dan mempertimbangkan faktor slippage dan komisen untuk memastikan hasil backtesting yang realistik.
Logik teras strategi ini berdasarkan beberapa elemen utama:
Strategi ini adalah sistem perdagangan klasik berdasarkan anomali pasaran, mencari potensi pulangan melalui pengurusan masa yang ketat dan pengurusan wang konservatif. Walaupun logik strategi adalah mudah, perhatian mesti diberikan kepada risiko dari perubahan persekitaran pasaran.
/*backtest start: 2024-11-11 00:00:00 end: 2024-12-10 08:00:00 period: 4h basePeriod: 4h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © piirsalu //@version=5 strategy("Gold Friday Anomaly Strategy", default_qty_type=strategy.percent_of_equity, slippage = 1, commission_value=0.0005, process_orders_on_close = true, initial_capital = 50000, default_qty_value=500, overlay = true) ///////////////////////////////////////////////////////////////////////////////////// // . USER INPUTS . // ///////////////////////////////////////////////////////////////////////////////////// // Define backtest start and end dates st_yr_inp = input(defval=2000, title='Backtest Start Year') st_mn_inp = input(defval=01, title='Backtest Start Month') st_dy_inp = input(defval=01, title='Backtest Start Day') en_yr_inp = input(defval=2025, title='Backtest End Year') en_mn_inp = input(defval=01, title='Backtest End Month') en_dy_inp = input(defval=01, title='Backtest End Day') // Set start and end timestamps for backtesting start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp, 00, 00) end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp, 00, 00) ///////////////////////////////////////////////////////////////////////////////////// // . STRATEGY LOGIC . // ///////////////////////////////////////////////////////////////////////////////////// // Check if the current day is Friday isFriday = (dayofweek == dayofweek.friday) // Initialize a candle counter var int barCounter = 0 // Increment the candle counter on each new bar barCounter := barCounter + 1 // Define trading session time ranges pre_mkt = time(timeframe.period, '0400-0800:23456') mkt_hrs = time(timeframe.period, '0800-1600:23456') eod = time(timeframe.period, '1200-1600:23456') ///////////////////////////////////////////////////////////////////////////////////// // . STRATEGY ENTRY & EXIT . // ///////////////////////////////////////////////////////////////////////////////////// // Enter a long position on the first candle of Friday within the backtest period if dayofweek == 4 and time >= start and time <= end strategy.entry("BuyOnFriday", strategy.long) // Close the position after holding it for 4 candles if (barCounter % 1 == 0) strategy.close("BuyOnFriday")