Tren Mengikuti Strategi Berdasarkan EMA Crossover

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

Artikel ini menjelaskan secara rinci strategi trend following yang menggunakan EMA crossover untuk menghasilkan sinyal trading.

I. Logika Strategi

Aturan inti adalah:

  1. Atur EMA cepat dan EMA lambat, dengan EMA cepat untuk sensitivitas perubahan harga dan EMA lambat untuk tren.

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

  3. Atur rasio EMA di mana periode lambat ≥ 3 kali periode cepat, untuk mengurangi sinyal palsu.

  4. Opsi untuk mode hanya panjang untuk menghindari perdagangan kontra-trend.

  5. Periode backtest yang dapat disesuaikan untuk optimasi parameter.

Dengan menyesuaikan parameter EMA, sensitivitas dan stabilitas dapat diseimbangkan untuk memanfaatkan tren.

II. Keuntungan dari Strategi

Keuntungan terbesarnya adalah kesederhanaan untuk kemudahan penggunaan, cocok untuk pedagang terbatas waktu.

Keuntungan lain adalah kemampuan untuk mengurangi whipsaws melalui optimasi parameter.

Akhirnya, mode hanya panjang menghindari perdagangan kontra-trend dan cocok dengan pasar tertentu seperti saham.

III. Kemunduran Potensial

Namun, ada beberapa masalah:

Pertama, EMA secara inheren memiliki masalah yang tertinggal, menyebabkan entri optimal yang terlewatkan.

Kedua, pengaturan yang tidak tepat dapat terlalu menyaring menyebabkan perdagangan yang hilang.

Akhirnya, mekanisme stop loss dan take profit perlu diperbaiki.

IV. Ringkasan

Singkatnya, artikel ini telah menjelaskan tren berikut strategi berdasarkan EMA crossovers. Hal ini bertujuan untuk meningkatkan ketahanan dengan menyesuaikan parameter EMA. Dengan aturan yang sederhana dan jelas, mudah untuk menerapkan tetapi risiko seperti EMA lag perlu pencegahan.


/*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 banyak