
移動平均金線叉死叉取引戦略は,快線EMA ((fastLength) と遅線EMA ((slowLength) の交差を計算して買入と売却の信号を生成する.快線上を遅線を横切ると買入の信号を生成する.快線下を遅線を横切ると売却の信号を生成する.この戦略はシンプルで実用的で,中中短線取引に適している.
この戦略は,2つの移動平均,快線と慢線を使用する. 快線パラメータEMAfastLengthは9日線をデフォルトし,慢線パラメータEMAAslowLengthは26日線をデフォルトする. 2つのEMA線の交差を計算して,市場での買入・売却の信号を判断する.
特定の取引シグナルと戦略のルールは以下の通りです.
この戦略は,2つの移動平均線が金叉と死叉の時に取引を行う戦略です.
リスクに対して,最適化できるパラメータには,移動平均周期,取引品種,ストップ・ストラストレッシャーなどがあり,リスクを減らすために多くのテストが必要である.
この戦略の移動平均の交差思考はシンプルで実用的で,以下の方法で最適化できます.
これらの最適化テストによって,戦術の実戦的効果と安定性を大幅に向上させることができる.
移動平均線交差戦略の構想はシンプルで,実用的なアプリケーションは継続的に最適化する必要があります.この戦略は,取引信号生成の論理と基本取引ルールを示しています.この基礎で,この戦略は,実用的な戦いの量化戦略に大きく最適化することができます.移動平均線のアプリケーションは,この戦略の構想を私たちに提供しています.
/*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=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)
enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)
enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)