トレーディング戦略に従って移動平均トレンド

作者: リン・ハーンチャオチャン開催日:2023年12月11日 15:05:31
タグ:

img

概要

この戦略は,移動平均値と価格変動率を計算し,現在の状態が一定期間中にK線と組み合わせた上昇傾向か下落傾向か判断し,それに従って長引か短引かします.

戦略原則

この戦略では,まず,長さ l の単純な移動平均値 a と長さ l の価格変化率 r を計算し,次に,現在の K 線価格と移動平均値の間の差 k を計算し,最後に,過去 s K 線における k の和を計算します.

sum>0の場合,現在の上昇傾向を示し,戦略は長引く. sum<0の場合,現在の下落傾向を示し,戦略は短引く.

ポジションは,トレンドが逆転するまで (合計が正から負に変化するか,その逆か) 持たせられ,その後は閉じる.

利点分析

この戦略の最大の利点は,トレンドを捉えることができ,トレンド取引に適していることです.特に,以下の利点があります.

  1. 移動平均を用いることで,全体的なトレンド方向を決定することで,市場の騒音を効果的にフィルタリングし,主要なトレンドを固定することができます.

  2. 価格変動率指標を用いて 勢力の強さを測定することで 強い勢力の欠落を回避できる.

  3. 期間中に複数のK線を考慮すると,傾向をより正確に決定し,個々のAusreißerによって誤導されるのを避けることができます.

  4. トレンドが変わらない限り トレンド市場から利益を最大化するために ポジションを保持し続けます

リスク分析

この戦略の主なリスクは,

  1. トレンドの終止時刻を正確に判断できず,損失を早めに停止したり,利益を見逃したりする可能性があります.

  2. 単一の損失の大きさを効果的に制御できないため,極端な市場条件では損失が大きい可能性があります.

  3. 不適切な戦略パラメータは,取引頻度が過剰になるか,取引機会が逃れる可能性があります.

  4. 長期保有は,一日の利息や保全金リスクに直面する可能性があります.

リスクをコントロールするために ストップ・ロスのポイントを設定し 高流動性のある商品のみを取引し パラメータを最適化し 合理的にレバレッジを使用できます

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

この戦略を最適化するための主な側面は以下のとおりです.

  1. 異なる長さの移動平均値と価格変動率をテストして,最適なパラメータ組み合わせを見つけます.

  2. MACDなどの他の指標を試して 傾向をより良く判断し 精度をさらに向上させてください

  3. ポジション管理メカニズムを追加し,単一の損失を制御するために,いくつかの利益を得た後に利益を取ることなど.

  4. 変動指標を組み込み 極端な市場状況におけるリスクを減らすために ダイナミックストップを設定します

  5. 誤ったブレイクをフィルタリングし,取引効率を向上させるためのエントリーと出口ロジックを最適化します

結論

この戦略の全体的な論理は明確で実行が容易である.長期保有取引の傾向を追跡することで,引き下げ制御は比較的合理的である.安定した収益を求める投資家に適している.ストップ損失とポジション管理をさらに最適化することで,長期的な安定した収益を期待することができます.


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

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=662, overlay=false)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=18)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
//plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

////buyEntry = crossover(source, lower)
////sellEntry = crossunder(source, upper)
if sum>0
    strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")
if sum<0
    strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

strategy.initial_capital = 50000
plot(strategy.equity-strategy.initial_capital-strategy.closedtrades*.25/2, title="equity", color=red, linewidth=2)
hline(0)
//longCondition = sum>0
//exitlong = sum<0

//shortCondition = sum<0
//exitshort = sum>0

//strategy.entry(id = "Long", long=true, when = longCondition)
//strategy.close(id = "Long", when = exitlong)
//strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

//strategy.entry(id = "Short", long=false, when = shortCondition)
//strategy.close(id = "Short", when = exitshort)
//strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

もっと