この戦略は,5日指数移動平均線 (EMA) と20日シンプル移動平均線 (SMA) のクロスオーバーを計算することによって取引信号を生成する. 5日 EMA が20日 SMA を越えて,5日 EMA が20日 SMA を越えて,価格変動が5%または -5%に達するとポジションを閉じる.また,トレーディングインデックスインデックス (TII) を補助指標として組み込む.
ダブル指数関数移動平均は広く使用される技術指標である. 5 日間のEMAは最近の価格動向を表し, 20 日間のSMAは中期価格動向を示している. 短期間のMAが長期間のMAを超えると,上向きのブレイクと上昇傾向を示し,ロングに行くのに良いタイミングを示している.逆に,下向きのクロスオーバーは潜在的な価格逆転を意味し,ポジションを退場することを検討すべきである.
この戦略は,5日間のEMAと20日間のSMAを取引信号として設定する. 5日間のEMAが20日間のSMAを横切ると長くなって,価格変動が5%または -5%に達するとポジションを閉じる.また,TIIがポジティブで上昇しているかどうかを確認し,信号の信頼性を確認する.
詳細な手順は次のとおりです
この戦略は2つのMAs間の黄金クロスオーバーを利用し,以下のメリットを持っています:
一般的には,この戦略にはシンプルなルールがあり,MAクロスオーバーのような成熟した技術指標を使用し,比較的包括的なリスク管理測定法があります. 量的な取引分野での学習と使用は初心者にとって適しています.
この戦略には依然としてリスクがあります
改善策は以下の通りです.
ですから,さらに最適化できる余地があります
この戦略は,次の側面から改善できます.
最適なペアを見つけるために,短/長 EMA と SMA の組み合わせをテストすることによって,MA パラメータを最適化します.
MACD,KDJなどの他の指標を追加して 誤った信号をフィルターします
機械学習アルゴリズムを用い 歴史的なデータモデリングと統計を用いて より良いパラメータを見つけます
市場変動と楽器の特徴に基づいて動的ストップ・ロース/テイク・プロフィートを設定し,リスクをより適切に制御する.
外国為替や暗号通貨などの他の商品にも 拡大します
上記の改善により,この戦略の安定性と収益性が大幅に向上できます.
結論として,これは理解し,実装しやすい二重MAクロスオーバー戦略です.MA信号を利用し,TIIを使用してエラーをフィルタリングします.ストップ損失/取利益でリスクを制御します.この戦略は初心者にとって学習に適しており,最適化にも大きな余地があります.パラメータチューニング,信号フィルタリング,ダイナミックストップ損失のさらなる改善により,実践的で強力な取引戦略に変えることができます.
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true) // Define the moving averages ema5 = ta.ema(close, 5) sma20 = ta.sma(close, 20) smaVolume10 = ta.sma(volume, 50) majorLength = input(60, title="Major Length") minorLength = input(30, title="Minor Length") src = input(close, title="Source") smaValue = ta.sma(src, majorLength) positiveSum = 0.0 negativeSum = 0.0 for i = 0 to minorLength - 1 price = na(src[i]) ? 0 : src[i] avg = na(smaValue[i]) ? 0 : smaValue[i] positiveSum := positiveSum + (price > avg ? price - avg : 0) negativeSum := negativeSum + (price > avg ? 0 : avg - price) tii = 100 * positiveSum / (positiveSum + negativeSum) // Buy condition: 5 EMA crosses above 20 SMA buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1] //and volume > smaVolume10 // // Track entry price var entryPrice = 0.0 if (buyCondition) entryPrice := close // Calculate percentage change from entry price priceChange = close / entryPrice - 1 // Plotting the moving averages on the chart plot(ema5, color=color.blue, title="5 EMA") plot(sma20, color=color.red, title="20 SMA") // Highlighting buy signals and exit signals on the chart // plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy") // Strategy entry and exit if (buyCondition) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.opentrades > 0) if (priceChange >= 0.05 or priceChange <= -0.05) strategy.close("Buy")