
この戦略の核心思想は,急速な移動平均と遅い移動平均の金叉死叉を使用して,市場動向を判断し,低リスク取引を実現することです. 急速な移動平均の上部に緩やかな移動平均を横切るときは,市場が上昇傾向に入ることを示す,このとき多めに行います. 急速な移動平均の下部に緩やかな移動平均を横切るときは,市場が下部傾向に入ることを示す,このとき空席を行います.
この策略は,価格の指数移動平均を使用しています.移動平均は,価格の動きを判断するために価格データを平らにするトレンド分析指標です.快速移動平均のパラメータが小さい場合,価格の変化により迅速に反応します.ゆっくり移動平均のパラメータが大きい場合,価格の変化に反応する時間が遅いです.
具体的には,この戦略では,2つの指数移動平均が定義されており,急速移動平均周期は21で,遅い移動平均周期は55である.戦略は,2つの移動平均の金叉死叉を判断することによって入場決定を行う.急速移動平均の上をゆっくり移動平均を横切るときは,多めに行う.急速移動平均を下をゆっくり移動平均を横切るときは,空にする.
さらに,この戦略は,ATRという波動率指標を使用して,ストップとストップを設定します.ATRは,市場の波動の程度を効果的に評価します.ストップは,ATRの1.5倍距離の価格に設定され,ストップは,ATRの1倍距離に近い価格に設定されます.
この戦略は以下の利点があります.
この戦略にはいくつかのリスクがあります.
このリスクに対して,以下のような方法で最適化することができます.
この戦略は,以下の側面から改善できます.
機械学習の手法を使用して,移動平均のパラメータを自動的に最適化して,戦略をより適応的にします.
基本的要素をフィルター条件として加え,重要な利空のニュースが届く時に盲目的に多額の空白を避ける.例えば,米連邦準備制度の利率決定,重要なマクロデータの発表など.
波動率の上下限を設定し,ATRが大きすぎたり小さすぎると取引を停止し,極端な市場環境での損失を避ける.
株式の基本指標,例えばPE市場の率,取引量増幅効果などと組み合わせて,動的ストップ・ロスの幅を設定する.
ポジション管理機構を増やし,利率が一定のレベルに達すると,ポジションを段階的に減らす.大きな損失が発生すると,取引を一時停止する.
この戦略の全体的な動作思路は明確でシンプルで,双移動平均の交差によって市場トレンドを判断し,典型的なトレンド追跡戦略の1つである.同時に,戦略はリスクをうまく制御し,ATR指標を使用してストップ・ストープ・ポジションを動的に設定する.さらなる最適化により,戦略は撤回制御と順勢操作の両方において向上させることができ,その結果,より安定した投資業績を得ることができる.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="No-Nonsense Strategy Template [WM]", overlay = true)
price = close
//
// ATR stuff
//
atrLength = input(14, "ATR Length")
slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP1")
atr = atr(atrLength)
//
// Strategy under test. MA crossover
//
fastInput = input(21)
slowInput = input(55)
fast = ema(price, fastInput)
slow = ema(price, slowInput)
plot(fast, color = red)
plot(slow, color = blue)
goLong = crossover(fast, slow)
goShort = crossunder(fast, slow)
if (goLong)
sl = price - atr * slMultiplier
tp = price + atr * tpMultiplier
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", stop = sl, limit = tp)
if (goShort)
sl = price + atr * slMultiplier
tp = price - atr * tpMultiplier
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", stop = sl, limit = tp)