Trend Mengikut Strategi Berdasarkan EMA Crossover

Penulis:ChaoZhang, Tarikh: 2023-09-15 11:51:34
Tag:

Artikel ini menerangkan secara terperinci strategi trend berikut menggunakan silang EMA untuk menjana isyarat perdagangan.

I. Logik Strategi

Peraturan utama adalah:

  1. Tetapkan EMA cepat dan EMA perlahan, dengan EMA cepat untuk sensitiviti perubahan harga dan EMA perlahan untuk trend.

  2. Pergi panjang pada EMA yang cepat di atas EMA yang perlahan, dan pergi pendek pada crossover di bawah.

  3. Tetapkan nisbah EMA apabila tempoh perlahan ≥ 3 kali tempoh cepat, untuk mengurangkan isyarat palsu.

  4. Pilihan untuk mod panjang sahaja untuk mengelakkan perdagangan yang bertentangan dengan trend.

  5. Tempoh backtest yang boleh disesuaikan untuk pengoptimuman parameter.

Dengan menyesuaikan parameter EMA, kepekaan dan kestabilan boleh diseimbangkan untuk memanfaatkan trend.

II. Kelebihan Strategi

Kelebihan terbesarnya adalah kesederhanaan untuk kemudahan penggunaan, sesuai untuk pedagang yang terhad masa.

Kelebihan lain adalah keupayaan untuk mengurangkan whipsaws melalui pengoptimuman parameter.

Akhirnya, mod panjang sahaja mengelakkan perdagangan yang bertentangan dengan trend dan sesuai dengan pasaran tertentu seperti saham.

III. Kelemahan Potensial

Walau bagaimanapun, terdapat beberapa isu:

Pertama, EMA secara semula jadi mempunyai isu yang tertinggal, menyebabkan entri optimum yang hilang.

Kedua, tetapan yang tidak betul boleh terlalu menyaring menyebabkan perdagangan yang hilang.

Akhirnya, mekanisme berhenti kerugian dan mengambil keuntungan memerlukan penambahbaikan.

IV. Ringkasan

Ringkasnya, artikel ini telah menerangkan strategi trend berikut berdasarkan persilangan EMA. Ia bertujuan untuk meningkatkan ketahanan dengan menyesuaikan parameter EMA. Dengan peraturan yang mudah dan jelas, ia mudah dilaksanakan tetapi risiko seperti lag EMA perlu dicegah.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
//
// Moving average crossover systems measure drift in the market. They are great strategies for time-limited people.
// So, why don't more people use them?
// 
// I think it's due to poor choice in choosing EMA lengths: Market Wizard Ed Seykota has a guideline for moving average crossovers: the slow line should be at least 3x the fast line.
// This removes a lot of the whipsaws inherent in moving average systems, which means greater profitability.
// His other piece of advice: long-only strategies are best in stock markets where there's a lot more upside potential.
//
// Using these simple rules, we can reduce a lot of the whipsaws and low profitability trades! This strategy was made so you can see for yourself before trading.
//
// === HOW TO USE THIS INDICATOR ===
// 1) Choose your market and timeframe.
// 2) Choose the length.
// 3) Choose the multiplier.
// 4) Choose if the strategy is long-only or bidirectional. 
//
// Don't overthink the above! We don't know the best answers, that's why this strategy exists! We're going to test and find out.
//  After you find a good combination, set up an alert system with the default Exponential Moving Average indicators provided by TradingView.
//
// === TIPS ===
// Increase the multiplier to reduce whipsaws (back and forth trades).
// Increase the length to take fewer trades, decrease the length to take more trades.
// Try a Long-Only strategy to see if that performs better.
//
strategy(title="EMA Crossover Strategy", shorttitle="EMA COS", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency=currency.USD,commission_type=strategy.commission.percent,commission_value=0.1)

// === GENERAL INPUTS ===
//strategy start date
start_year = input(defval=2020, title="Backtest Start Year")

// === LOGIC ===
length = input(type=input.integer,defval=20,minval=1,title="Length")
ratio = input(type=input.integer,defval=3,title="Multiplier (3x length, 4x length, etc)",options=[3,4,5,6,7,8,9,10])
longOnly = input(type=input.bool,defval=false,title="Long Only")
fast = ema(hl2,length)
slow = ema(hl2,length * ratio)
plot(fast,linewidth=2,color=color.orange,title="Fast")
plot(slow,linewidth=2,color=color.blue,title="Slow")

longEntry = crossover(fast,slow)
shortEntry = crossunder(fast,slow)

plotshape(longEntry ? close : na,style=shape.triangleup,color=color.green,location=location.belowbar,size=size.small,title="Long Triangle")
plotshape(shortEntry and not longOnly ? close : na,style=shape.triangledown,color=color.red,location=location.abovebar,size=size.small,title="Short Triangle")
plotshape(shortEntry and longOnly ? close : na,style=shape.xcross,color=color.black,location=location.abovebar,size=size.small,title="Exit Sign")

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    crossover(fast,slow) and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitLong() =>
    longOnly and crossunder(fast,slow)
strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() =>
    not longOnly and crossunder(fast,slow) and 
       time > timestamp(start_year, 1, 1, 01, 01)
exitShort() =>
    false
strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())

Lebih lanjut