コーン・ムービング・平均バランス・トレード戦略

作者: リン・ハーンチャオチャン,日付: 2023-11-13 17:59:42
タグ:

img

概要

コーン・ムービング・平均バランス・トレーディング・ストラテジー (Corn Moving Average Balance Trading Strategy) は,長期・短期バランス・トレーディングのために,異なる期間のムービング・平均値の黄金と死者のクロスオーバーを利用している.また,トレンドの変化を観察するのに役立つために,キャンドルカラー,背景カラー,形状マーカーなどの様々な視覚効果を組み込む.この戦略は,ムービング・平均理論に慣れている中級から高度なトレーダーに適している.

戦略の論理

この戦略は,まず,ユーザーによって調整可能な2つのパラメータを定義する.アクティブ・ムービング・メアディア・ペリオド len1とベースライン・ムービング・メアディア・ペリオド len2.アクティブ・ムービング・メアディアは,短期的なトレンド変化を捉えるのに短い期間を持ち,ベースライン・ムービング・メアディアは市場のノイズをフィルタリングするために長い期間を持っています.ユーザーは,5種類の異なるムービング・メアディア:EMA,SMA,WMA,DEMA,VWMAを自由に選択することができます.コードは,ユーザの選択に基づいて異なる種類のムービング・メアディアを計算するためにif論理を使用します.

短期移動平均が長期平均を横切ると,ロングポジションを開くためにゴールデンクロスが生成される.デッドクロスが起こると,戦略はショートポジションを開く.ロングとショートバランスの取引は利益の機会を増やす.さらに,キャンドルカラーは現在のトレンド方向も表示する.

形状マーカーは,金色と死十字の位置を視覚的に示しています.背景色はトレンド方向を決定するのに役立ちます.この戦略には,長と短バランスおよび長のみの取引モードの両方が利用できます.

利点

  1. 複数の指標を組み合わせたより信頼性の高い取引信号
  2. 長期・短期バランス取引で利益の可能性が増加する
  3. 異なる市場環境に適応できる,調整可能な移動平均の種類と期間
  4. 様々な視覚効果を備えた直感的なトレンドスポッティング
  5. わかりやすく,カスタマイズできる簡単なコード構造

リスク と 解決策

  1. 移動平均値からの誤った信号

    • 誤解を招く信号を減らすために,異なる期間の移動平均のコンボを使用する.
    • ストップ・ロスのような他の出口条件を追加します.
  2. 戦略に適した時期がある

    • 最適なパラメータを見つけるために異なる周期パラメータをテストします
    • 周期パラメータをコードで動的で調整可能にする
  3. 長期取引や短期取引で損失のリスクが増加する

    • 位置サイズを正しく調整する
    • ロングのみ取引モードを選択

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

  1. 単一の取引損失を制御するためにストップロスを追加する
  2. 市場復帰の条件を整える
  3. ポジションサイズ戦略を最適化
  4. 波動性指標のような新しい取引信号を探求します
  5. 期間パラメータを動的に最適化
  6. 異なる移動平均型間の重みを最適化する

概要

コーン・ムービング・平均バランス・トレーディング・ストラテジー (Corn Moving Average Balance Trading Strategy) は,移動平均指標の強みを統合し,長期および短期バランス・トレーディングを可能にします.トレンドスポッティングのための豊かな視覚効果と適応性のためのカスタマイズ可能なパラメータがあります.しかし,誤解を招く信号やポジションサイズに注意する必要があります.この戦略は,中間から高度なトレーダーに参照のためのカスタマイズ可能なフレームワークを提供します.


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

//@version=3
strategy("MASelect Crossover Strat", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
av1 = input(title="Active MA", defval="EMA", options=["EMA", "SMA", "WMA", "DEMA", "VWMA"])
av2 = input(title="Base MA", defval="EMA", options=["EMA", "SMA", "WMA", "DEMA", "VWMA"])
len1 = input(20, "Active Length")
len2 = input(100, "Base Length")
src = input(close, "Source")
strat = input(defval="Long+Short", options=["Long+Short", "Long Only"])

ema1 = ema(src, len1)
ema2 = ema(src, len2)
sma1 = sma(src, len1)
sma2 = sma(src, len2)
wma1 = wma(src, len1)
wma2 = wma(src, len2)
e1 = ema(src, len1)
e2 = ema(e1, len1)
dema1 = 2 * e1 - e2
e3 = ema(src, len2)
e4 = ema(e3, len2)
dema2 = 2 * e3 - e4
vwma1 = vwma(src, len1)
vwma2 = vwma(src, len2)

ma1 = av1 == "EMA"?ema1:av1=="SMA"?sma1:av1=="WMA"?wma1:av1=="DEMA"?dema1:av1=="VWMA"?vwma1:na
ma2 = av2 == "EMA"?ema2:av2=="SMA"?sma2:av2=="WMA"?wma2:av2=="DEMA"?dema2:av2=="VWMA"?vwma2:na

co = crossover(ma1, ma2)
cu = crossunder(ma1, ma2)
barcolor(co?lime:cu?yellow:na)
col = ma1 >= ma2?lime:red
bgcolor(co or cu?yellow:col)
plotshape(co, style=shape.triangleup, location=location.belowbar)
plotshape(cu, style=shape.triangledown)
plot(ma1, color=col, linewidth=3), plot(ma2, style=circles, linewidth=1)

strategy.entry("Buy", strategy.long, when=co)
if strat=="Long+Short"
    strategy.entry("Sell", strategy.short, when=cu)
else
    strategy.close("Buy", when=cu)

もっと