Melabur dalam Strategi Mengikuti Trend Emas


Tarikh penciptaan: 2023-10-31 15:09:22 Akhirnya diubah suai: 2023-10-31 15:09:22
Salin: 0 Bilangan klik: 658
1
fokus pada
1617
Pengikut

Melabur dalam Strategi Mengikuti Trend Emas

Gambaran keseluruhan

Strategi ini menggunakan model garis rata untuk menentukan arah trend pasaran, dan secara berkala menetapkan kedudukan yang lebih tinggi ketika trend bullish, untuk menjejaki trend kenaikan harga pasar Golden Cross.

Prinsip Strategi

Strategi ini berdasarkan kepada beberapa prinsip teknikal:

  1. Menggunakan EMA rata-rata untuk menentukan arah trend pasaran. Apabila EMA cepat melintasi EMA perlahan, anda perlu membuat keputusan mengenai trend bullish dan bersiap sedia untuk masuk.

  2. Gabungan dengan penunjuk MACD menentukan masa masuk. Apabila penunjuk MACD bertukar positif, ini menunjukkan bahawa pasaran mulai lemah, masuk ke banyak arah.

  3. Hadkan hanya satu kemasukan setiap bulan, untuk mengelakkan mengejar. Jumlah kemasukan setiap kali boleh ditetapkan.

  4. Anda boleh menetapkan tarikh permulaan dan tarikh akhir untuk mengehadkan kitaran pengulangan. Apabila pengulangan berakhir, strategi akan meratakan semua kedudukan.

Khususnya, strategi ini mula mengira garis EMA cepat dan garis EMA perlahan, dan mengesan hubungan garpu emas antara keduanya untuk menilai trend pasaran. Pada masa yang sama, pengiraan penunjuk MACD untuk menentukan titik masuk tertentu. Apabila kedua-dua syarat ditetapkan, menghasilkan banyak isyarat, berdasarkan peraturan yang membatasi hanya boleh masuk sekali sebulan untuk menentukan arahan masuk yang sebenarnya.

Kelebihan Strategik

Ini adalah strategi yang lebih mudah dan langsung untuk mengesan trend, dengan beberapa kelebihan:

  1. Menggunakan EMA rata-rata untuk menentukan arah trend besar adalah mudah dan praktikal. EMA rata-rata mempunyai kesan halus terhadap perubahan harga dan dapat menyaring bunyi pasaran yang bergolak dengan berkesan.

  2. Penunjuk MACD dapat menentukan dengan tepat ketika struktur saham membeli-belah lemah, sehingga risiko masuk lebih kecil.

  3. Mengehadkan operasi pengecaman kepada satu kali sebulan untuk mengelakkan kenaikan dan penurunan dalam pasaran lembu.

  4. Anda boleh menyesuaikan jumlah dana yang anda masukkan setiap bulan, dan anda boleh menyesuaikan kedudukan anda dengan fleksibel mengikut strategi anda.

  5. Anda boleh menilai keberkesanan strategi anda dengan mengkaji semula tarikh permulaan dan akhir.

  6. Apabila pengiraan kembali berakhir, anda boleh mengambil tindakan untuk melonggarkan kedudukan anda, dan mengelakkan rasa malu untuk memegang kedudukan semasa simulasi perdagangan keluar dari pasaran.

Risiko dan tindakan

Strategi ini juga mempunyai risiko yang berpotensi, termasuk:

  1. Kaedah yang bergantung pada garis rata untuk menilai trend mungkin akan kehilangan peluang dalam penyesuaian jangka pendek, atau tidak bertindak balas dengan cekap apabila trend berbalik. Anda boleh memendekkan kitaran garis rata dengan sewajarnya atau menambah petunjuk penghakiman lain untuk pengoptimuman.

  2. Hanya melakukan operasi pengecaman sekali sebulan mungkin akan terlepas masa masuk yang lebih baik. Anda boleh mempertimbangkan untuk melonggarkan frekuensi masuk atau mengejar sekali lagi apabila mencapai paras tertinggi baru.

  3. Terdapat risiko kecocokan tinjauan balik tertentu. Perlu menambah ruang penyesuaian parameter, dan melakukan ujian ketahanan merentasi pasaran dan merentasi tempoh masa.

  4. Terdapat risiko untuk mengejar kejatuhan dan membeli terlalu banyak. Anda harus mengawal jumlah masuk setiap bulan dengan betul dan mengelakkan kedudukan yang terlalu besar.

Arah pengoptimuman

Strategi ini boleh diperluaskan dan dioptimumkan dalam beberapa aspek:

  1. Menambah logik EXIT Stop Loss, yang secara aktif menghentikan kerugian apabila terdapat kepala beruang yang jelas di pasaran.

  2. Apabila MACD Smile Standard ditubuhkan, satu lagi pembelian dilakukan untuk mendapatkan pendedahan yang lebih lengkap.

  3. Memperkenalkan pelbagai cara untuk menilai sama ada trend masih kuat, dengan membandingkan kenaikan tertinggi bulan ini dengan kenaikan tertinggi bulan sebelumnya.

  4. Tambah logik kawalan kedudukan. Jumlah dana masuk setiap bulan boleh dikawal secara perkadaran, dan bukannya nilai tetap.

  5. Menilai kesan pelbagai kombinasi garis rata dan parameter MACD terhadap kesan strategi. Mencari kombinasi parameter terbaik.

  6. Tambah satu trailing stop untuk menjejaki kerugian. Apabila harga mencapai satu ketinggian baru, mulalah menjejaki dengan ketinggian tertentu untuk membolehkan keuntungan terus berjalan.

ringkaskan

Strategi ini secara keseluruhannya berfungsi sebagai strategi pengesanan trend yang mudah, idea terasnya jelas, mudah dilaksanakan, sesuai untuk digunakan untuk menguji kesan pengesanan trend linear dan gabungan penempatan. Ia boleh dipelajari sebagai salah satu strategi masuk perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-30 00:00:00
period: 1d
basePeriod: 1h
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/
// © runescapeyttanic

//@version=4
// strategy("Buy and Hold entry finder Strategy",pyramiding=10000, overlay=true,initial_capital=0,default_qty_type=strategy.cash,default_qty_value=1000,currency = currency.EUR,commission_type=strategy.commission.cash_per_order,commission_value=0)

//INPUTS##################################################################################################################

maxEmaDistance = input(title="Maximum EMA Distance", type=input.float, step=0.01, defval=50000)
emalength = input(title="EMA Length", type=input.integer,defval=200)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=12, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=02, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100)

endDate1=endDate-1
//starttag
//startmonat
//MACD########################################################################################################################

fast_length=12
slow_length=26
src=close
col_macd=#0094ff
fast_ma = ema(src, fast_length)
slow_ma = ema(src, slow_length)
macd = fast_ma - slow_ma

//EMA Distance CALC########################################################################################################

ma1 =ema(close,emalength)
distFromMean = close - ma1

inDateRange = true

longCondition = (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0 and inDateRange)
longnow=false

if(longCondition and strategy.position_size == 0)
    strategy.entry("My Long Entry Id", strategy.long)
    longnow:=true

if(longCondition and strategy.position_size > 0)
    longnow:=true
    

if(longCondition and strategy.position_size > 0 and month>valuewhen(longnow, month ,1) or longCondition and strategy.position_size > 0 and year>valuewhen(longnow, year ,1) and inDateRange)
    strategy.entry("My Long Entry Id", strategy.long)

plotchar(minute, "Minuten", "", location = location.top)

plotchar(hour, "Stunden", "", location = location.top)    

plotchar(dayofmonth, "Tage", "", location = location.top)

plotchar(month, "Monat", "", location = location.top)

plotchar(year, "Jahr", "", location = location.top)

plotchar(strategy.position_size, "Positionen", "", location = location.top)

plotchar(longCondition, "Long Condition", "", location = location.top)

if true
    strategy.close_all()

//#########################################################################################################################

plotArrow = if (distFromMean<=maxEmaDistance and distFromMean>=distFromMean[1] and macd<=0)
    1
else
    0
    
plotarrow(series=plotArrow)