
この戦略は,短期移動平均と長期移動平均の黄金の交差点を計算して入場のタイミングを判断し,ストップ・ロスを設定してポジションを退出する典型的なトレンド追跡戦略の1つである.この戦略は,明らかに上昇傾向のある市場に適用され,順番に,上昇傾向の動きで増加し,トレンドが逆転するときに間に合うようにストップ・ロスを行うことができる.
この戦略は,主に短期移動平均と長期移動平均を計算し,それらの交差を観察して市場動向を判断する.具体的論理は次のとおりである.
3日間のシンプル移動平均を短期移動平均として計算します.
19日の単純移動平均を長期移動平均として計算します.
短期移動平均線が長期移動平均線に突入すると,多信号を発して長期ポジションに入ります.
価格が上昇して入場価格を超えると*1 + ストップ・ローンの%で,全ポジションを平らにする
短期移動平均線を下に長期移動平均線を突破すると,空き信号を発して空きポジションに入ります.
特定の日付の範囲で再テストすることで,戦略の実行時間範囲を制限します.
100日単調移動平均をメジャートレンドの指標として計算することで,メジャートレンドが上昇しているときにのみ取引を行う
この戦略は,移動平均の黄金交差の原理を充分に活用し,インデックスの継続的な上昇傾向において,短期移動平均の上で長期移動平均を穿越するときに多ポジションに入ると,トレンド上のチャンスを効果的に捕捉することができる.短期移動平均の下に長期移動平均を穿越するときに多ポジションを退出し,空いたポジションに入ると,リスクを効果的に制御することができる.
この戦略の利点は以下の通りです.
戦略は明快でわかりやすい. 移動平均を交差してトレンドの方向を判断し,簡単に把握できます.
入場判断規則はシンプルで有効で,順番に実行し,リスクを効果的にコントロールできます.
市場が逆転したときに,利益をロックするために,ストップ・ロスを設定します.
金融市場では,金融危機の波動を回避するために,大きな上昇傾向の時にだけ取引を行うことが可能である.
移動平均のパラメータをカスタマイズし,異なる市場の特徴に適応します.
特定の時間帯に合わせて検証できる回測時間帯を設定できます.
この戦略にはいくつかのリスクがあります.
移動平均策略はパラメータに敏感であり,異なるパラメータ設定は策略のパフォーマンスに影響する.
曲線マッチングは,歴史データのみに基づいて行われ,異常を処理することはできません.
価格の上昇を効率的に管理できない場合,ストップポイントを超えてしまう可能性があります.
震動の際には容易に巻き込まれるため,合理的な止損点を設定する必要があります.
横盤振動市場には適さない.
返信時間帯の選択は,戦略検証の結果に影響する.
この戦略は以下の点で最適化できます.
異なるパラメータの組み合わせを試し,移動平均周期数などの最適なパラメータを探します.
MACD,Bollinger Bandsなどの他の技術指標を統合判断に追加し,意思決定の効果を向上させる.
ダイナミック・トラッキング・ストップを設定して,リスクをコントロールできます.
入場を最適化,ストップダストロジック,例えば,前期高点入場を突破することを考慮するなど.
戦略の安定性を評価するために,さまざまな市場環境データをテストします.
パラメータ最適化や信号判断のために,機械学習などのモデルを組み込むことを検討する.
価格の飛躍や破損を防ぐ異常事態を処理する.
この戦略は,シンプルで効果的な移動平均の交差原理によって,上昇傾向を捕捉し,ストップ・ロスを設定してリスクを制御し,傾向が明らかな市場でよりよい収益を得ることができる.しかし,この戦略には一定の限界があり,戦略をより安定的かつ効率的にするために,最適化テストを継続する必要もあります.全体的に,この戦略の理念は,明確で,理解しやすく,実装し,初心者向けに適しています.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ta3MooChi
//@version=5
strategy("전략", overlay=true,process_orders_on_close = true, pyramiding = 100)
short_ma = ta.sma(close,input.int(3, "단기 이평", minval = 1))
long_ma = ta.sma(close, input.int(19,"장기 이평", minval = 1))
trend_ma = ta.sma(close, input.int(100," 추세 이평", minval = 20, group = "추세 이평"))
up_trend = (trend_ma > trend_ma[1])
use_trend_ma = input.bool(true, title = "추세용 이평 사용", group = "추세 이평" )
inTrendMa = not use_trend_ma or up_trend
useDateFilter = input.bool(true, title = "특정 기간 백테스트", group = "기간 백테스트")
backtestStartDate = input(timestamp("1 Jan 2021"), title = "시작날짜", group = "기간 백테스트")
backtestEndDate = input(timestamp("1 Jan 2022"), title = "종료날짜", group = "기간 백테스트")
inTradeWindow = true
longStopPerc = 1 + input.float(3, "최소수익률%", minval = 1)*0.01
longcondition = ta.crossover(short_ma, long_ma)
shortcondition = ta.crossunder(short_ma, long_ma)
if (longcondition) and inTradeWindow and inTrendMa
strategy.entry("long", strategy.long)
if (shortcondition) and (close > strategy.position_avg_price*longStopPerc) and inTradeWindow
strategy.close_all()
if not inTradeWindow and inTradeWindow[1]
strategy.cancel_all()
strategy.close_all(comment = "매매 종료")
plot(short_ma,color = color.yellow)
plot(long_ma,color = color.blue)
plot(trend_ma,color = color.gray)