Artikel ini akan menerangkan secara terperinci strategi trend-tracking yang menggunakan EMA rata-rata untuk membentuk isyarat perdagangan. Strategi ini meningkatkan kestabilan strategi dengan mengoptimumkan kombinasi parameter rata-rata.
I. Prinsip-prinsip Strategi
Strategi ini mengikuti peraturan teras berikut:
Tetapkan EMA garis pantas dan EMA garis perlahan, perubahan harga tindak balas garis pantas, trend penilaian garis perlahan;
Dalam video yang diunggah di laman Facebooknya, beliau berkata:
Tetapkan nisbah parameter EMA, kitaran talian perlahan ≥ 3 kali talian pantas, untuk mengurangkan isyarat palsu;
Anda boleh memilih untuk menggunakan pelbagai mod untuk mengelakkan dagangan berlawanan.
Ujian optimasi parameter boleh disesuaikan dengan kitaran pengesanan semula.
Dengan menyesuaikan parameter EMA rata-rata, anda boleh meningkatkan kestabilan dan mengunci peluang perdagangan trend sambil mengekalkan kepekaan.
Kedua, kelebihan strategi
Kelebihan utama strategi ini adalah peraturan yang mudah, mudah dilaksanakan, dan sesuai untuk peniaga yang mempunyai masa yang terhad.
Kelebihan lain ialah pengoptimuman parameter dapat mengurangkan transaksi yang sering tidak sah.
Akhirnya, anda boleh memilih untuk melakukan pelbagai mod, tidak perlu berdagang secara berlawanan, sesuai untuk pasaran saham dan sebagainya.
Ketiga, potensi risiko
Namun, strategi ini juga mempunyai masalah:
Pertama, garis purata EMA sendiri mempunyai masalah ketinggalan dan mungkin terlepas titik terbaik.
Kedua, penyetempatan parameter yang tidak betul boleh menyebabkan penapisan yang berlebihan.
Akhirnya, mekanisme penangguhan kerugian perlu diperbaiki dan dioptimumkan.
Empat isi, ringkasan
Artikel ini menerangkan secara terperinci mengenai strategi perdagangan trend berdasarkan EMA yang bersilang. Ia meningkatkan kestabilan strategi dengan menyesuaikan kombinasi parameter garis rata. Strategi ini mudah digunakan dan aturannya mudah dan jelas, tetapi perlu berhati-hati untuk mengelakkan masalah seperti ketinggalan garis rata.
/*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())