このアルゴリズムは,価格アクションに基づいて金を取引する.価格変動範囲を決定するために,最近の20個のキャンドルスタイルの最高値と最低値を計算する.価格は最新のキャンドルスタイルの最高価格を突破するとロングになり,価格が最新のキャンドルスタイルの最低価格を突破するとショートする.ロングまたはショートポジションを開いた後,利益とストップ損失の価格を設定する.
このアルゴリズムのコアロジックはブレイクアウト理論に基づいている.価格変動範囲を決定するために,最新の20のキャンドルスタイクの最高値と最低値を記録する.価格がこの範囲を超えると,ブレイクアウトとみなされ,したがって取引信号が起動する.具体的には,アルゴリズムの流れは:
このアルゴリズムの取引信号は 価格ブレイク判断から来ます 鍵は価格ブレイクのタイミングを特定することです
アルゴリズムには以下の利点があります
このアルゴリズムの基本考え方は,一般的には明確で論理的です. 導入のタイミングは簡単で,理解しやすいです. また,単一の取引損失を制御することができます. したがって,これは強力な実用性を持つ定量的な取引戦略です.
アルゴリズムにはリスクもあります
これらのリスクを制御し,最適化するために,以下の措置をとることができます.
アルゴリズムは次の側面で最適化できます:
他の指標と組み合わせる移動平均値,ボリンジャー帯なども導入して ブレイクアウト信号を二重確認し信頼性を高めることができます
パラメータ最適化異なるパラメータの組み合わせをテストして,ブレイクアウト期間長さを最適化し,より信頼性の高いパラメータ設定を見つけることができます.
利益とストップ損失の最適化. 動的に変動等に基づいて利益とストップ損失距離を取って調整します.
位置サイズ最適化ポジションサイズアルゴリズムを最適化し,単一の取引損失を減らす.
機械学習. より良いパラメータの組み合わせを自動的に見つけるために,膨大な量の歴史的データから学ぶ.
上記の最適化は,アルゴリズムの安定性,勝利率,収益性をさらに高めることができます.
金取引アルゴリズムは価格アクションとブレイクアウト理論に基づいて取引信号を生成する.このアイデアはシンプルで明確で,実行しやすい,非常に実践的です.一方,安定性と収益性を向上させるためにいくつかのリスクがあり,さらなる最適化が必要です.全体的に言えば,金取引と効率的な定量戦略に適しています.他の指標,パラメータ最適化,利益/ストップ損失最適化などを組み合わせることで,より良い戦略パフォーマンスを達成することができます.
/*backtest start: 2022-12-06 00:00:00 end: 2023-12-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("XAUUSD Price Action Strategy", overlay=true) // Define input parameters takeProfit = input(500, "Take Profit") stopLoss = input(200, "Stop Loss") // Calculate price action highs = ta.highest(high, 20) lows = ta.lowest(low, 20) priceRange = highs - lows breakoutLevel = highs[1] // Define conditions for long and short trades longCondition = high > breakoutLevel and close > highs[1] shortCondition = low < breakoutLevel and close < lows[1] // Execute long and short trades with take profit and stop loss if longCondition strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", limit = close + takeProfit, stop = close - stopLoss) if shortCondition strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", limit = close - takeProfit, stop = close + stopLoss) // Plot breakout level plot(breakoutLevel, color=color.blue, title="Breakout Level") // Highlight long and short trade signals on the chart bgcolor(longCondition ? color.green : na, transp=80) bgcolor(shortCondition ? color.red : na, transp=80)