この戦略は,5日,10日,20日指数関数移動平均線 (EMA) を計算し,スーパートレンド指標を使用して購入・販売シグナルを生成する. 5日 EMA が10日 EMA を越え,5日 EMA と 10日 EMA が20日 EMA を越えるときに購入シグナルを生成する. 10日 EMA が5日 EMA を越え,5日 EMA と 10日 EMA が20日 EMA を越えるときに販売シグナルを生成する.
主要なリスクに対する解決策
この戦略は,スーパートレンドインジケーターとともに5日,10日,20日EMAを使用しています. シンプルで効果的です. トレンド識別と機会発見で優れたパフォーマンスを発揮します. 非常にカスタマイズ可能で拡張可能です. パラメータチューニングを通じて最適化するための大きな余地があり,より複雑な市場環境で戦略パフォーマンスを継続的に改善するために,より多くの指標と機械学習モデルを追加します.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h 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/ // © aadilpatel07 //@version=4 strategy("5-10-20 Cross", overlay=true) src = close, len1 = input(5, minval=1, title="EMA 1") len2 = input(10, minval=1, title="EMA 2") len3 = input(20, minval=1, title="EMA 3") mult = input(type=input.float, defval=2) len = input(type=input.integer, defval=14) [superTrend, dir] = supertrend(mult, len) ema1 = ema(src, len1) ema2 = ema(src, len2) ema3 = ema(src, len3) //EMA Color col1 = color.lime col2 = color.blue col3 = color.red //EMA Plots plot(series=ema1,color=col1, title="EMA1") plot(series=ema2,color=col2, title="EMA2") plot(series=ema3,color=col3, title="EMA3") //plot SuperTrend colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 100) : color.new(color.green, 100) colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 10) plot(superTrend, color = colResistance, linewidth=1) plot(superTrend, color = colSupport, linewidth=1) //longCondition = crossover(ema1, ema2) and crossover(ema1,ema3) and crossover(ema2,ema3) longCondition = ema1 > ema2 and ema1 > ema3 and ema2 > ema3 and ema2 < ema1 and dir == -1 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) //shortCondition = crossover(ema2, ema1) and crossover(ema3,ema1) and crossover(ema3,ema2) shortCondition = ema1 < ema2 and ema1 < ema3 and ema2 < ema3 and ema2 > ema1 and dir == 1 if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)