動向平均に基づく戦略をフォローする傾向

作者: リン・ハーンチャオチャン, 日時: 2023-12-20 14:23:49
タグ:

img

概要

この戦略は,自動入場とストップロスの価格動向を決定するために,マーク・ミナーヴィニの株式選択テンプレートと移動平均指標を使用する.主に,株価が上昇傾向にあり,購入信号を生成するために主要な移動平均を突破したかどうかを判断する.同時に,戦略は価格が下がったときに損失を積極的に止めるストップロスを設定する.

戦略原則

戦略は主に以下の条件を判断し,同時に満たされたときに購入信号を生成します.

  1. 現在の株価は 150日間と 200日間の移動平均線の両方より高い.
  2. 150日移動平均は 200日移動平均より高い
  3. 200日移動平均は少なくとも1ヶ月以上上昇傾向にある.
  4. 50日移動平均は150日移動平均と200日移動平均の両方より高い.
  5. 現在の株価は50日間の移動平均値以上です.
  6. 現在の株価は 52週間の最低値より少なくとも 25%高い.
  7. 現在の株価は 52週間の最高値の 25%未満です

上記の条件が満たされると 戦略は株価が上昇傾向にあると判断し 買い信号を生成します

ストップ・ロスのラインも設定します 株価がピーク値から5%下がったり 10%上昇したりすると ストップ・ロスは利益を得たりします

利点分析

  1. マーク・ミナーヴィニの 株式選択のアイデアを使って 収益性を向上させてください
  2. トレンドを確認し,買いポイントを逃さないように,複数の移動平均値を使用します.
  3. 巨額の損失を避けるためにストップ・ロスのメカニズムを設定します.

リスク分析

  1. ストップ・ロスを引き起こすため 短期的に 株価が調整される可能性があります
  2. 移動平均値はトレンドを完全に決定することができず,誤ったブレイクが発生することがあります.
  3. ストップ・ロストとテイク・プロフィートの比率は完璧ではなく,利益を得たり,損失を早急に拡大したりする可能性があります.

最適化

  1. 異なるパラメータの移動平均値の組み合わせを試験する.
  2. 入力タイミングを決定するために他の技術指標を追加します.
  3. ストップ・ロスを最適化し 利潤率を設定します

概要

ストラテジーは,株価の上昇傾向が確認されたときに購入信号を生成するトレンド取引のアイデアに従っている.同時に,リスクを制御するためにストップロスのメカニズムが設定されている.さまざまな詳細なパラメータを最適化することで,戦略の安定性と収益性はさらに向上することができる.しかし,どの戦略も完全に市場リスクを回避することはできません.したがって投資家は慎重に対処する必要があります.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true)

ma50 = sma(close,50)
ma150 = sma(close,150)
ma200 = sma(close,200)
ma200_22 = ma200[22]

high_loopback = input(260, "High Lookback Length")
low_loopback = input(260, "Low Lookback Length")
highest_price = highest(high, high_loopback)
lowest_price = lowest(low, low_loopback)
above52lo = ((close/lowest_price)-1)*100
below52hi = (1-(close/highest_price))*100
ep = strategy.position_avg_price

trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
var label maLabel = na
if (trigger)
    yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
         yloc.abovebar :
         yloc.belowbar

    // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
    //      label.style_labeldown :
    //      label.style_labelup

buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
sell = close>ep*1.1 or close<ep*0.95

strategy.entry("TF", strategy.long, when = buy)
strategy.close("TF", when = sell)

もっと