低波動性 方向性 買取 利益 引き取り ストップ ロス

作者: リン・ハーンチャオチャン開催日:2023年12月18日12時07分
タグ:

img

概要

この戦略は,低波動性指向型買取と利益取得とストップ損失と呼ばれる.これは,移動平均クロスオーバーを購入信号として利用し,利益を得るために利益取得とストップ損失を組み合わせます.低波動性コインに適しています.

戦略の論理

この戦略は,50期,100期,200期という異なる期間の3つの移動平均を使用します. 購入論理は,50期MAが100期MAを横切り,100期MAが200期MAを横切ると,ロングします.

低波動性帯から突破し,トレンドの始まりを示します.50期MAの急速な上昇は,短期的な勢力の強化を表します.100期MAの上昇も,上昇傾向を安定させるために中期力に加わることを示しています.

入場後,戦略は利益を引き取り,ストップロスを利用して利益をロックする. 利益を引き取りは入場価格の8%に設定される. ストップロスは入場価格の4%に設定される. ストップロスの上での利益を引き取りは,戦略が全体的に利益を得ることを保証する.

利点分析

この戦略の利点は

  1. 低波動のブレイクからトレンド機会を正確に把握する
  2. 計算し,バックテストしやすい移動平均値で シンプルで明快な論理です
  3. 合理的な利益とストップ・ロスの設定は 安定した利益を確保します
  4. 柔軟な設定可能なパラメータにより最適化が容易になります

リスク分析

リスクもあります:

  1. 誤った信号が損失を招く
  2. 市場が逆転すると 損失を止めることは難しい
  3. 誤った利益採取とストップ損失パラメータ設定は 収益性に影響します

解決策:

  1. フィルター信号に他の指標を追加し,突破の有効性を確保します.
  2. ストップ・ロスの期間を短縮し,逆転による損失を減らす.
  3. 利回り・ストップ・ロスの比率をテストして 最適値を見つけます

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

最適化は以下の分野で行うことができます.

  1. 最適な組み合わせを見つけるために異なる移動平均期をテストします.
  2. トレンドブレイクを確認するためにボリュームなどを追加します.
  3. ダイナミックに 利得とストップ損失の割合を調整します
  4. 機械学習を組み込み 脱出の成功率を予測します
  5. 異なる市場状況とコインに基づいてパラメータを調整します

概要すると,この戦略は全体的に明確な論理を持ち,移動平均期と利益引き/ストップ損失パーセントを構成することによって低リスク利益を得ます.量的な取引では柔軟に適用できます.エントリー信号やストップ損失方法などの分野では,パラメータ調整と組み合わせて,最適な結果を達成するためにさらなる最適化を行うことができます.


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

//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))



//Entry 
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)

//Exit
longStopPrice  = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())

//PLOT

plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)


もっと