資源の読み込みに... 荷物...

多次元ゴールド金曜日の異常戦略分析システム

作者: リン・ハーンチャオチャン,日付: 2024-12-12 16:32:12
タグ:マルチRSIROCSLTPマックドエイマリスクPNLATR

img

概要

この戦略は,市場異常に基づいた取引システムで,主に木曜日の夕方閉店と金曜日の閉店間の市場行動特性を利用する.この戦略は固定入出時間を採用し,バックテストを通じてこの市場パターンを検証する.取引ごとに資本の10%を使用し,現実的なバックテスト結果を確保するためにスリップと佣金因子を考慮する.

戦略の原則

戦略の基本論理は,いくつかの重要な要素に基づいています.

  1. 入場条件:過去のデータ分析に基づいて,木曜日の閉店時にロングポジションを入力する.
  2. 出口条件: 固定保持期間で金曜日の閉店時にポジションを閉じる.
  3. マネーマネジメント:取引ごとに口座資本の10%を使用します.この保守的なポジションサイズ化によりリスクが制御されます.
  4. 取引執行: 取引は閉じる価格で実行され,日中の変動の影響は避けられます.

戦略 の 利点

  1. シンプルで明瞭: 取引規則は単純で,複雑な指標の組み合わせがないし,理解し実行するのが簡単です.
  2. 制御されたリスク: 固定保持期間とマネーマネジメントプランによりリスクの評価と制御が容易になります.
  3. 高自動化: 自動化取引の実施に適したシンプルな戦略論理.
  4. 高い柔軟性:パラメータは異なる市場環境に調整され,適応性が良好です.

戦略リスク

  1. 時間依存:戦略は特定の時間窓に大きく依存しており,取引時間以外の時間帯で重要なニュースに影響を受けることがあります.
  2. 市場環境の変化: 過去の統計パターンは将来的に無効になり,戦略のパフォーマンスの継続的なモニタリングが必要です.
  3. 執行リスク: 閉店期間中に流動性が不十分になり,スリップが増加する可能性があります. リスク管理の提案:
  • ストップ・ロストとテイク・プロフィートのレベルを設定する
  • 保持期間を動的に調整する
  • フィルタリング条件を追加する

戦略の最適化方向

  1. 波動性指標を組み込む:動的ポジションサイズの ATR インディケーターを追加し,戦略をより適応可能にする.
  2. 入場タイミングを最適化:入場精度を向上させるために価格パターンと技術指標を組み合わせます.
  3. リスク管理を強化する 既存の利益を保護するために動的なストップ損失メカニズムを追加する
  4. フィルタリング条件を追加する:不利な市場条件での取引を避けるためにトレンドフィルタを追加することを検討する.

概要

この戦略は,市場異常に基づいたクラシックな取引システムであり,厳格な時間管理と保守的なマネーマネジメントを通じて潜在的なリターンを求めます. 戦略の論理はシンプルですが,変化する市場環境からのリスクに注意を払わなければなりません. ライブ取引ではより保守的なポジションサイズと包括的なリスク管理メカニズムを使用することが推奨されます.


/*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")



関連性

もっと