トレンド追従型利益戦略


作成日: 2023-09-26 11:22:04 最終変更日: 2023-09-26 11:22:04
コピー: 1 クリック数: 590
1
フォロー
1617
フォロワー

概要

トレンドトラッキングの利回り戦略は,資産の長期的傾向と短期的な回調を検知し,長期の看板とともに短期的な調整の機会を捉え,ポジションを建設し,合理的なストップ・ロッドラインを設定し,順調に,タイムリーにストップ・ロッドを設定します.

戦略原則

この戦略は,主にEMA平均線とRSI指標に基づいて,長期短期トレンドを判断する.具体的には,50日線EMAと200日線EMAを使用して,長期トレンドを判断する.長期トレンドを判断するために,RSI指標を使用して,強い.長期は上昇傾向にある場合 ((200日線上) と強い ((RSIは50以上) と同時に,短期的には,反発が発生する場合は,複数入場する.

入場後,ストップ・ストップ・ロスの条件を設定する.入場価格より2倍BHD単位以上上昇したときは,多利潤結束;入場価格より3倍BHD単位以上下落したときは,平仓を停止する.その中で,BHD単位は,最近の200根K線の振幅に基づいて計算される.

このように,この戦略は,長期的な短期的なトレンド特性を十分に考慮し,利潤を高める一方で,リスクを制御し,順調に実行し,また,時宜に止損を止めることができる.

優位分析

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

  1. 長期的・短期的なトレンド特性を考慮し,強弱な指標と組み合わせて,波動的な市場で盲目投資を避ける.

  2. トレンドを追跡し,市場の方向に順応し,勝率が高い.

  3. ストップ・ストップ・ストップ・ポイントを設定し,利得を及ばなく引き上げ,リスクを制御する.

  4. ストップ・ストップ・ストラップポイントは市場変動による計算で動的に調整され,合理的です.

  5. この戦略は,複数の通貨ペアと周期で,高い収益と安定性を示しています.

  6. 戦略はシンプルでわかりやすく,理解しやすく,実行しやすく,あらゆるレベルのトレーダーに適しています.

リスク分析

この戦略にはリスクもあります.

  1. 長期的短期的判断に誤りがあり,ポジションの方向に誤った判断が起こる可能性もある.

  2. 市場が崖っぷちに転落する恐れがあり,ストップポイントは巨額の損失を完全に回避できないというリスクがある.

  3. パラメータの設定 (平均線周期など) が不適切である場合,戦略の効果に影響を与える可能性があります.

  4. ストップポイントの設定が小さすぎると,早退が利益に影響する可能性があります.

  5. 測量データはリアルディスクのパフォーマンスを表さない.リアルディスクの間,継続的な最適化が必要である.

リスクに対する対処法:

  1. パラメータを最適化したり,平均線周期を調整したり,他の指標を足したりして,強さや弱さを判断する.

  2. ストップ・ロスの幅が大きいか,ポジションの低減などの風力制御メカニズムが加えられる.

  3. 戦略に様々なパラメータが及ぼす影響を評価する.

  4. 動的にストップパラメータを最適化し,市場の状況に応じてストップ幅を調整する.

  5. 継続的な反省と最適化,リッドディスクと組み合わせた調整により,戦略がより安定する.

最適化の方向

この戦略は,以下の点でさらに最適化できます.

  1. 平均線周期,BHD単位周期など,最適のパラメータの組み合わせを見つける.

  2. MACD,KDなどの他の指標の判断を追加して,短期判断をより正確にする.

  3. ストップ・ストップ・損失戦略の最適化,例えば,変動率の動向に応じてストップ・ストップの上昇を調整するなど.

  4. トレンドの強度がポジションのサイズに影響するなど,ポジション管理策を追加する.

  5. 戦略の強さを評価するために,より多くの品種と周期のデータをテストします.

  6. フィルタリング条件を足して,例えば,閉盘価格が開盘価格より高いようにして,罠を回避できます.

  7. 戦略を自動化し,より賢くするために,機械学習などの先進技術を追加します.

上記の最適化により,戦略の勝利率,収益率,安定性,適応性などのパフォーマンスを向上させることができます.

要約する

トレンドを追跡して利益を得る戦略は,全体的に見ると,長期的短期特性を考慮し,順調に,ストップ・ストップ・損失を明示するなどの利点を持つ,より安定した効率的なトレンドを追跡戦略である.しかし,一定のリスクも存在し,パラメータとルールの継続的な最適化テストが必要であり,実物状況の調整が加わります.全体的に見ると,この戦略の考え方は明確で操作が容易で,トレーダーが学ぶ価値があります.さらに最適化すれば,安定した信頼性の高い定量化取引戦略の1つになる可能性があります.

ストラテジーソースコード
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © BHD_Trade_Bot

// @version=5
strategy(
 shorttitle            = 'Take Profit On Trend',
 title                 = 'Take Profit On Trend (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = true,
 calc_on_order_fills   = true,
 use_bar_magnifier     = true,
 initial_capital       = 1000,
 default_qty_type      = strategy.percent_of_equity,
 default_qty_value     = 100,
 commission_type       = strategy.commission.percent,
 commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2021)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time = timestamp(end_year, end_month, end_day, 23, 59)

is_back_test_time() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// RSI
rsi200 = ta.rsi(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 50)
hist = emacd - emacd_signal

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_lower = ema200 - bhd_unit



// All n candles is going down
all_body_decrease(n) =>
    isValid = true
    for i = 0 to (n - 1)
        if (close[i] > close[i + 1])
            isValid := false
            break
    isValid



// ENTRY CONDITIONS

// Long-term uptrend
entry_condition1 = rsi200 > 51 and hist > 0

// Short-term downtrend
entry_condition2 = all_body_decrease(2)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2

if ENTRY_CONDITIONS and is_back_test_time()
    strategy.entry('entry', strategy.long)


// CLOSE CONDITIONS

// Price increase 2 BHD unit
take_profit = close > strategy.position_avg_price + bhd_unit * 2

// Price decrease 3 BHD unit
stop_loss = close < strategy.position_avg_price - bhd_unit * 3

CLOSE_CONDITIONS = take_profit or stop_loss

if CLOSE_CONDITIONS
    strategy.close('entry')



// Draw
plot(ema50, color=color.orange, linewidth=2)
plot(ema200, color=color.purple, linewidth=2)
bhd_upper_line = plot(bhd_upper, color=color.teal)
bhd_lower_line = plot(bhd_lower, color=color.teal)
fill(bhd_upper_line, bhd_lower_line, color=color.new(color.teal, 90))