この戦略は,長いチャネルと短いチャネルを構築し,チャネルブレイクを体系的にバックテストします. これはチャネルブレイクトレンドの戦略に属します.
最低価格のショートチャネルを作ります 低価格のショートチャネルを
価格が上方チャネルラインを突破すると購入する.
価格が下チャネル線を下回ると売る
バックテストの日付範囲を設定して 戦略を検証できます
シンプルで明瞭なルール 取引チャンネルの脱出
チャンネルは価格範囲を視覚的に定義します
突破後 上向きの勢いになる可能性が高い
バックテストは戦略の有効性を 歴史的に検証します
チャネルブレイクコンセプトは シンプルで直感的です
簡潔なコードで 簡単に修正・最適化できます
偽の脱出と最初の脱出後に引き戻しのリスク
停止と出口を設定する効果的な方法はありません.
不適切なチャネルパラメータは 性能に悪影響を及ぼします
バックテストの結果は前向きな偏見がある可能性があります
実際の取引業績はバックテストと大きく異なる可能性があります.
最適な組み合わせを見つけるために テストパラメータ
偽の脱出をフィルタリングするために他の要因を追加します.
ストップ・ロスト・アンド・テイク・プロフィート・メカニズムを組み込む
バックテストデータを適切に処理して偏見を排除します
バックテストを通じて様々な市場条件で戦略を検証する.
紙取引は,ライブ取引のパラメータを設定します.
この戦略は,操作が簡単で安定性のために精製を必要とする単純なチャネルブレイクアウトルールをバックテストする.パラメータチューニングやリスク制御などのさらなる改善により,信頼性の高いブレイクアウトシステムになります.
/*backtest start: 2023-08-20 00:00:00 end: 2023-08-30 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //strategy(title = "Backtest Donchian Teixeira", default_qty_type = strategy.fixed, default_qty_value = 100, overlay = true, commission_type = strategy.commission.cash_per_order, commission_value = 2.50, precision = 2, calc_on_every_tick = true, pyramiding = 0, initial_capital = 10000) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00) testEndYear = input(2018, "Backtest End Year") testEndMonth = input(12, "Backtest End Month") testEndDay = input(1, "Backtest End Day") testPeriodEnd = timestamp(testStartYear, testStartMonth, testStartDay, 23, 59) window() => true //nao funciona length1 = input(20, minval=1, title="Upper Channel") length2 = input(20, minval=1, title="Lower Channel") dcUpper = highest(length1) dcLower = lowest(length2) plot(dcLower, style=line, linewidth=1, color=red, offset=1) plot(dcUpper, style=line, linewidth=1, color=lime, offset=1) plot(dcLower, style=line, linewidth=1, color=gray) if (strategy.position_size == 0) strategy.entry("COMPRA", true, stop = dcUpper) if (strategy.position_size > 0) strategy.exit("VENDA", stop = dcLower)