二重指標の下位購入戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-04 17:39:13
タグ:

img

概要

この戦略は,取引量とRSI指標を組み合わせて購入機会を特定する.段階的な利益目標を使用してポジションを管理し,徐々に利益をロックする.この戦略はレンジ・バインド市場ではうまく機能し,小さな価格変動の中で繰り返し購入信号を効果的に捉える.

戦略の論理

この戦略は,2つの指標 - 取引量とRSI - を利用し,購入信号を識別する.特に,RSIが30 (過剰販売レベル) 以下の値を下回るとともに,取引量が70日平均の2.5倍を超えると長引く.

ロングポジションが確立されると,戦略は0.4%,0.6%,0.8%,1.0%および1.2%で5つの利益目標を設定する.完全に終了するまでポジション比 (20%,40%,60%,80%および100%) をベースに徐々にポジションを閉鎖する.また5%ストップ・ロスは設定される.

段階的に利益を取ることで,小規模な上向きの動きの中で利益を固定することを目指し,実現しないかもしれないより大きな走行を待つのではなく,ストップロスは取引ごとに下向きのリスクを制御します.

利点分析

この戦略の主な利点は以下の通りです.

  1. 二重指標を使うと 偽のブレイクが防ぎられる 値上げは底辺の確信を証明する 一方,RSIの過剰売り上げは逆転率を意味する

  2. 小規模な利得を最大化できるので 大規模な稼ぎを待つ必要はありません

  3. 格段市場で優れている.特に,機関が未完成の領域に閉じ込められている市場.傾向がない場合でも,頻繁な小さな利益が捉えられる.

  4. ストップ・ロスは市場がストップ・アウトになる前に ストップ・ロスを可能にし 短期的なリトラクションを早急に退場させない

リスク分析

主なリスクは以下のとおりです.

  1. 誤った入力につながる二重信号の誤った解釈 パラメータ最適化によって緩和できます

  2. 小規模なポジションサイズ化により,大きなトレンドシフトを逃すリスクをとる. 利得レベルとポジション比率を最適化することが役立ちます.

  3. 幅広くストップすると,大きな損失を伴う. リスク管理の鍵はポジションのサイズです.

  4. 強いトレンド市場は方向性偏差のリスクをもたらします.より大きな時間枠構造に注意してください.

  5. 高い取引頻度は取引コストを増加させる.低手数料のブローカーを使用することが好ましい.

オプティマイゼーションの方向性

可能な最適化方向は以下の通りである.

  1. 誤った信号を減らすため 音量とRSIの組み合わせを最適化します MACDやKDJのような確認を追加します

  2. 理想的な配置のための 異なる利益レベルとポジション比をテストする 動的メカニズムを持つ可能性があります

  3. リスク管理システムを通じて取引ごとに最大限のリスクを削減するための ポジションサイズ化規則を導入する.

  4. トレンドメトリックを組み込み,時速ストップ損失の逆転を検出します. 変動する市場で追いつくのを避けます.

  5. アルゴリズムのバックテストを利用して パラメータを迅速に復習して 最適な設定をします

  6. 高回転にもかかわらず効率性を向上させるための機関的なHFTの滑り/コスト制御モデルから学ぶ

結論

この二重指標平均逆転戦略は,売り上げ上昇と過売れRSIの購入の底線信号を特定し,段階的な出口を通じて範囲の間で徐々に利益を得ます.巨大な走行を必要とせずに頻繁に利益を得ます.デメリットには,信号の誤った解釈リスクと高いターンオーバーが含まれます. 確認最適化とリスク/コスト制御は強度を改善します. 不安定な市場で短期間の利益を得るために最適です.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wielkieef

//@version=5

strategy(title='BTFD strategy [3min]', overlay=true, pyramiding=5, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)


// Volume

vol_sma_length = input.int(70, title='Volume lenght  ', minval=1)
Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5


// Rsi

rsi_lenght = input.int(20, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)

rsi_overs = rsi_value <= 30
rsi_overb = rsi_value >= 70


// logic

tp_1 = input.float(0.4,"  TP 1", minval=0.1, step=0.1)
tp_2 = input.float(0.6,"  TP 2", minval=0.2, step=0.1)
tp_3 = input.float(0.8,"  TP 3", minval=0.3, step=0.1)
tp_4 = input.float(1.0,"  TP 4", minval=0.4, step=0.1)
tp_5 = input.float(1.2,"  TP 5", minval=0.5, step=0.1)

q_1 = input.int(title='  % TP 1 Q ', defval=20,  minval=1, step=10)
q_2 = input.int(title='  % TP 2 Q ', defval=40,  minval=1, step=10)
q_3 = input.int(title='  % TP 3 Q ', defval=60,  minval=1, step=10)
q_4 = input.int(title='  % TP 4 Q ', defval=80,  minval=1, step=10)
q_5 = input.int(title='  % TP 5 Q ', defval=100, minval=1, step=10)

sl = input.float(5.0, '% Stop Loss', step=0.1)

long_cond = Volume_condt and rsi_overs

// this code is from author RafaelZioni, modified by wielkieef
per(procent) =>
    strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
// --------------------------------------------------------------------------------------------------------------------

if  long_cond
    strategy.entry('BUY', strategy.long)

strategy.exit('TP 1', qty_percent=q_1, profit=per(tp_1), loss=per(sl) )
strategy.exit('TP 2', qty_percent=q_2, profit=per(tp_2), loss=per(sl) )
strategy.exit('TP 3', qty_percent=q_3, profit=per(tp_3), loss=per(sl) )
strategy.exit('TP 4', qty_percent=q_4, profit=per(tp_4), loss=per(sl) )
strategy.exit('TP 5', qty_percent=q_5, profit=per(tp_5), loss=per(sl) )

 
// by wielkieef


もっと