
Gagasan utama strategi ini adalah menggunakan purata bergerak sebagai isyarat membeli dan menjual, menggabungkan harga dengan cara menembusi garis rata-rata ganda untuk membuat kedudukan dan berhenti. Ia menghasilkan isyarat membeli apabila ia melintasi garis rata-rata jangka panjang di atas garis rata-rata jangka pendek; ia menghasilkan isyarat menjual apabila ia melintasi garis rata-rata jangka panjang di bawah garis rata-rata jangka pendek.
Kaedah ini berfungsi secara terperinci seperti berikut:
Hitung purata bergerak ringkas jangka pendek dan purata bergerak ringkas jangka panjang.
Perbandingan sama ada harga lebih tinggi atau lebih rendah daripada purata bergerak, berdasarkan penilaian harga di atas purata bergerak sebagai kepala, harga di bawah purata bergerak sebagai kepala kosong.
Buat lebih banyak apabila memakai garis rata-rata panjang pada garis rata-rata pendek; kosongkan apabila memakai garis rata-rata panjang di bawah garis rata-rata pendek.
Ini adalah cara untuk menukarkan kedudukan kosong.
Kelebihan utama strategi ini ialah:
Strategi dua hala yang menggabungkan trend-following dan reversal trading, yang mengkaji trend pasaran dan menangkap peluang reversal.
Gunting mati garpu emas yang sejajar mempunyai ketahanan tertentu, yang dapat menghapuskan penembusan palsu dengan berkesan.
Menggunakan teori garis rata-rata untuk mengunci keuntungan semasa perubahan trend.
Risiko utama strategi ini ialah:
Strategi Garis Persamaan Ganda adalah sensitif kepada parameter, dan parameter purata bergerak yang tidak betul boleh menyebabkan perdagangan yang kerap atau kehilangan peluang.
Kegagalan untuk menembusi boleh menyebabkan kerugian dan perlu menghentikan kerugian dengan berkesan untuk mengawal risiko.
Jika trend berbalik, ia tidak semestinya berjaya, tetapi ia boleh menyebabkan kerugian jika trend berterusan.
Strategi ini bertujuan untuk mengoptimumkan:
Untuk menguji dan mengoptimumkan parameter purata bergerak untuk mencari kombinasi parameter terbaik.
Tambah indikator untuk menilai trend, membezakan antara trend dan pasaran yang bergolak.
Menambah stop loss yang berkesan untuk mengawal risiko, seperti menjejaki stop loss, memasang stop loss, dan sebagainya.
Digabungkan dengan petunjuk lain, ia meningkatkan kestabilan strategi.
Ringkasnya, strategi ini sebagai strategi pengesanan terbalik binari, dengan mempertimbangkan trend dan perdagangan terbalik, dapat mencapai hasil yang lebih baik dengan pengoptimuman parameter dan kawalan risiko. Tetapi strategi apa pun mungkin menghadapi risiko kesalahan penghakiman arah, kegagalan menghentikan kerugian, dan lain-lain.
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 10m
basePeriod: 1m
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/
// © HPotter
// Simple SMA strategy
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors
//@version=4
strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
nColor = BarColors ? possig == -1 ? color.red : possig == 1 ? color.green : color.blue : na
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)