二重移動平均線戦略に基づく


作成日: 2024-02-27 14:49:58 最終変更日: 2024-02-27 14:49:58
コピー: 0 クリック数: 641
1
フォロー
1617
フォロワー

二重移動平均線戦略に基づく

概要

双平線フォロー戦略は,移動平均に基づいてトレンドフォロー戦略である.それは,異なる周期の移動平均を計算して,トレンドの方向を判断して,取引信号を発信する.短期移動平均線上に長期移動平均線を横切るときは,多行し,短期移動平均線の下に長期移動平均線を横切るときは,空行する.この戦略は,トレンドに沿って運行して,利益を得る.

戦略原則

二重均線策は,14周期と28周期の単純な移動平均 (SMA) を計算してトレンドの方向を判断する戦略に従います.具体的には,各周期の終わりに,クローズ価格の14周期SMAと28周期SMAを計算します.14周期SMAで28周期SMAを突破すると,多信号を発信し,ロングポジションを開きます.14周期SMAの下で28周期SMAを突破すると,空信号を発信し,ロングポジションを開きます.

ポジションに入ると,ストップとストップを設定してリスクを制御する. ストップとストップのポイントは,入力されたパラメータを価格に変換する. さらに,ストップライン,ストップライン,入場平均価格の参照ラインをグラフに描いて,ポジションの利益とリスクを直感的に判断する.

優位分析

この戦略は以下の利点があります.

  1. 操作が簡単で実現しやすい.
  2. 傾向に沿って走る場合,撤回する確率は低い.
  3. 周期パラメータを調整することで取引頻度を制御できます.
  4. ストップ・ローズ・ポイント・コントロール・リスクの柔軟な設定

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 市場動向を突如に打破したときに,大きな損失が発生する可能性があります.
  2. ストップポイントが小さすぎると,早めにストップする可能性があります.
  3. ストップポイントが大きすぎると,損失の範囲が広がる可能性があります.
  4. 取引頻度は高すぎたり低すぎたりして,資金効率に影響する.

上記のリスクを制御するために,以下の方法で最適化できます.

  1. 波動率指数と組み合わせたストップポイントの判断.
  2. 移動平均の周期パラメータを最適化する.
  3. トレンドフィルターを追加し,トレンドの終わりの偽信号を避ける.

最適化の方向

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

  1. 波動率指数を増やし,動的にストップポイントを調整する.例えばATR指数と組み合わせて,市場の波動が強くなるとストップポイントを拡大し,早すぎるストップポイントを回避する.

  2. 移動平均周期パラメータを最適化します. より多くの組み合わせをテストし,取引信号の発生頻度に適した周期を選択できます.

  3. トレンドフィルターを追加する.例えば,MACD,DMIなどの指標を追加し,トレンドの終わりに発生する偽信号を回避し,不要な取引を減らす.

  4. 機械学習モデルを追加する.LSTM,GRUなどの深度学習モデルを使用して,価格動向を予測し,従来の均等線法則の代わりに,より良い効果が得られる可能性がある.

  5. 多品種取引 戦略を多品種に適用し,非関連性を利用して全体的な撤収を減らす

要約する

双均線フォロー戦略は,全体としてシンプルで実用的なトレンド戦略である。それはトレンドに順応して動いて,撤退リスクは小さく,実行しやすい。周期パラメータを調整し,ストップ・ロスを設定し,トレンド判断指標を追加することによって,この戦略を最適化することができ,より多くの市場環境に適応し,より安定した投資収益を得ることができる。

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © coinilandBot
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov

// @description
// 

//@version=4
strategy("coiniland  copy trading platform", overlay=true)

// random entry condition

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

moneyToSLPoints(money) =>
    strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)

// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)