この戦略は,市場異常に基づいた取引システムで,主に木曜日の夕方閉店と金曜日の閉店間の市場行動特性を利用する.この戦略は固定入出時間を採用し,バックテストを通じてこの市場パターンを検証する.取引ごとに資本の10%を使用し,現実的なバックテスト結果を確保するためにスリップと佣金因子を考慮する.
戦略の基本論理は,いくつかの重要な要素に基づいています.
この戦略は,市場異常に基づいたクラシックな取引システムであり,厳格な時間管理と保守的なマネーマネジメントを通じて潜在的なリターンを求めます. 戦略の論理はシンプルですが,変化する市場環境からのリスクに注意を払わなければなりません. ライブ取引ではより保守的なポジションサイズと包括的なリスク管理メカニズムを使用することが推奨されます.
/*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")