Strategi ini adalah strategi perdagangan yang mudah dan cekap yang menggabungkan penunjuk oscillator MACD dengan EMA purata bergerak. Pada masa ini, ia ditetapkan sebagai garis K 4 jam dan boleh disesuaikan dengan tempoh masa lain yang diperlukan. Ia berkinerja baik pada data Bitcoin dan Ethereum selama 3 tahun yang lalu, berbanding dengan strategi memegang semata-mata.
Strategi ini terdiri daripada:
Indeks MACD: menilai pergerakan harga.
EMA rata-rata: menentukan arah trend harga.
Syarat masa: terhad kepada tempoh tempoh yang sah.
Pilihan kosong: Pilih arah kosong atau kosong.
Peraturan transaksi adalah seperti berikut:
Buat lebih / kosong: apabila harga tutup lebih tinggi daripada EMA, garis MACD adalah positif, dan garis K semasa lebih tinggi daripada hari sebelumnya.
Melepas / Melepas: Melepas / Melepas apabila harga penutupan berada di bawah EMA, garis MACD adalah negatif, dan garis K semasa adalah lebih rendah daripada hari sebelumnya.
Strategi ini ringkas dan jelas, menggabungkan trend dan idea-idea perdagangan jangka pendek untuk membentuk sistem keputusan kuantitatif yang cekap.
Strategi ini mempunyai kelebihan yang besar berbanding dengan satu-satunya indikator:
MACD menentukan momentum jangka pendek, EMA menentukan arah trend, penunjuk bersesuaian rapat.
Peraturan-peraturan ini mudah difahami, mudah difahami, dan mudah dilaksanakan.
Parameter boleh disesuaikan secara fleksibel untuk pelbagai jenis dan tempoh masa.
Anda boleh memilih untuk berdagang dalam satu arah atau berdagang dua arah.
Anda boleh menetapkan tempoh tempoh yang sah untuk mengelakkan perdagangan yang tidak perlu.
“Saya tidak tahu apa-apa tentang apa yang berlaku di negara ini, saya tidak tahu apa yang berlaku di negara ini.
Pengurusan wang boleh dikawal dan kerugian tunggal boleh dielakkan.
Teknologi pembelajaran mesin boleh diperkenalkan untuk meningkatkan pengoptimuman.
Walaupun terdapat banyak kelebihan, terdapat risiko yang perlu diperhatikan:
Pengoptimuman parameter adalah lebih luas, dan terdapat risiko pengoptimuman berlebihan.
Tidak menetapkan stop loss, terdapat risiko peningkatan kerugian.
Tidak mengambil kira jumlah transaksi, kemungkinan akan berlaku penembusan palsu
Tidak dapat mengesan titik perubahan trend dan tidak dapat mengelakkan kerugian sepenuhnya.
Kesan ini mungkin berkurang disebabkan oleh perubahan keadaan pasaran.
Bergantung kepada data sejarah sahaja, perhatian perlu diberikan kepada model yang stabil.
Lebih kerap dan mungkin lebih mahal.
Berhati-hatilah dengan kadar pulangan balik pendapatan untuk mengelakkan kurva menjadi terlalu tinggi.
Berdasarkan analisis di atas, strategi ini boleh dioptimumkan dengan:
Untuk mengelakkan penembusan palsu.
Tambah seting stop loss dan kawalan kerugian tunggal.
Menilai kesan parameter untuk tempoh masa yang berbeza.
Memperkenalkan teknologi pembelajaran mesin untuk mengoptimumkan dinamik.
Di samping itu, ia juga akan meningkatkan kualiti dan kualiti produk.
Menyesuaikan saiz kedudukan dan mengurangkan kekerapan dagangan.
Strategi pengurusan wang yang dioptimumkan
Kajian harga kontrak yang berbeza, meningkatkan kekerapan.
Ujian semula berterusan untuk mengelakkan overfit.
Secara keseluruhannya, strategi ini membentuk strategi kuantitatif yang ringkas dan cekap dalam kombinasi dengan penunjuk MACD dan EMA. Tetapi strategi apa pun memerlukan pengoptimuman dan pengesahan yang berterusan untuk memastikan ia dapat beradaptasi dan stabil terhadap perubahan persekitaran pasaran. Strategi perdagangan perlu terus berkembang dan diperbaharui.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21
//@version=4
strategy("My Script", overlay=true)
//heiking ashi calculation
UseHAcandles = input(false, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===
// === BASE FUNCTIONS ===
haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low
//timecondition
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//ema data -- moving average
len = input(9, minval=1, title="Length")
src = input(hl2, title="Source")
out = ema(src, len)
//plot(out, title="EMA", color=color.blue)
//histogram
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//main variables to apply conditions are going to be out(moving avg) and hist(macd)
long = haClose > out and haClose > haClose[1] and out > out[1] and hist> 0 and hist[1] < 0 and time_cond
short = haClose < out and haClose < haClose[1] and out < out[1] and hist < 0 and hist[1] > 0 and time_cond
//limit to 1 entry
var longOpeneda = false
var shortOpeneda = false
var int timeOfBuya = na
longCondition= long and not longOpeneda
if longCondition
longOpeneda := true
timeOfBuya := time
longExitSignala = short
exitLongCondition = longOpeneda[1] and longExitSignala
if exitLongCondition
longOpeneda := false
timeOfBuya := na
plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="BUY", text="BUY", textcolor=color.white)
plotshape(exitLongCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="SELL", text="SELL", textcolor=color.white)
//automatization
longEntry= input(true)
shortEntry=input(false)
if(longEntry)
strategy.entry("long",strategy.long,when=longCondition)
strategy.close("long",when=exitLongCondition)
if(shortEntry)
strategy.entry("short",strategy.short,when=exitLongCondition)
strategy.close("short",when=longCondition)