
MyQuant Trend Identification Strategy adalah strategi yang digunakan untuk perdagangan harian Bitcoin. Strategi ini mengidentifikasi tren pasar dengan menghitung moving average harga dan derivatifnya yang pertama dan kedua, dan membuat keputusan beli dan jual berdasarkan itu.
Strategi ini pertama-tama menghitung harga rata-rata bergerak beradaptasi ((ALMA) dan derivatif pertama dan kedua. Derivatif pertama mencerminkan kecepatan perubahan harga, derivatif kedua mencerminkan kurva harga. Berdasarkan nilai derivatif pertama dan kedua, penilaian saat ini berada dalam tren naik, tren turun, atau periode getaran.
Secara khusus, strategi ini memperhitungkan indikator-indikator berikut:
Ketika kondisi membeli terpenuhi, jumlah saham yang dibeli dihitung berdasarkan sinyal CAUSED.Accumulation/Distribution Bands dan Caused Exposure Top and Bottom Finder. Apabila kondisi menjual terpenuhi, seluruh posisi dijual.
Strategi ini menggabungkan trend dan penilaian indikator, sehingga dapat secara efektif mengidentifikasi titik-titik perubahan tren pasar. Menggunakan harga pertama dan kedua derivatif untuk menilai tren, menghindari dampak dari pergerakan harga, membuat sinyal lebih jelas. Berbanding dengan strategi rata-rata bergerak yang umum, memiliki keunggulan akurasi penilaian yang lebih tinggi.
Strategi ini sangat sensitif terhadap pilihan jangka waktu perdagangan dan penyesuaian parameter. Jika pilihan jangka waktu tidak tepat, kegagalan untuk mencakup titik-titik perubahan harga yang penting, dapat menyebabkan strategi tidak efektif. Jika parameter indikator tidak diatur dengan benar, sinyal beli dan jual akan terkena dampak lebih banyak kebisingan, sehingga mempengaruhi keuntungan strategi.
Strategi ini dapat dioptimalkan lebih lanjut dengan cara berikut:
Strategi pengenalan tren MyQuant secara efektif mengidentifikasi tren pasar Bitcoin dengan menghitung derivatif satu dan dua tingkat dari rata-rata bergerak yang disesuaikan dengan harga, dan membuat keputusan pembelian dan penjualan yang sesuai. Strategi ini membuat penilaian dengan menggabungkan berbagai indikator, menghindari sinyal yang terganggu oleh kebisingan yang berlebihan. Efektivitas strategi ini juga dapat ditingkatkan dengan waktu dan parameter yang lebih lanjut.
/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 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/
// © spacekadet17
//
//@version=5
strategy(title="Trend Identifier Strategy", shorttitle="Trend Identifier Strategy", format=format.price, precision=4, overlay = false, initial_capital = 1000, pyramiding = 10, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, commission_value = 0.03)
//start-end time
startyear = input.int(2020,"start year")
startmonth = input.int(1,"start month")
startday = input.int(1,"start day")
endyear = input.int(2025,"end year")
endmonth = input.int(1,"end month")
endday = input.int(1,"end day")
timeEnd = time <= timestamp(syminfo.timezone,endyear,endmonth,endday,0,0)
timeStart = time >= timestamp(syminfo.timezone,startyear,startmonth,startday,0,0)
choosetime = input(false,"Choose Time Interval")
condTime = (choosetime ? (timeStart and timeEnd) : true)
// time frame?
tfc = 1
if timeframe.isdaily
tfc := 24
// indicators: price normalized alma, and its 1st and 2nd derivatives
ema = ta.alma(close,140,1.1,6)
dema = (ema-ema[1])/ema
stodema = ta.ema(ta.ema(ta.stoch(dema,dema,dema,100),3),3)
d2ema = ta.ema(dema-dema[1],5)
stod2ema = ta.ema(ta.ema(ta.stoch(d2ema,d2ema,d2ema,100),3),3)
ind = (close-ta.ema(close,120*24/tfc))/close
heat = ta.ema(ta.stoch(ind,ind,ind,120*24/tfc),3)
index = ta.ema(heat,7*24/tfc)
//plot graph
green = color.rgb(20,255,100)
yellow = color.yellow
red = color.red
blue = color.rgb(20,120,255)
tcolor = (dema>0) and (d2ema>0)? green : (dema>0) and (d2ema<0) ? yellow : (dema < 0) and (d2ema<0) ? red : (dema < 0) and (d2ema>0) ? blue : color.black
demaema = ta.ema(dema,21)
plot(demaema, color = tcolor)
//strategy buy-sell conditions
cond1a = strategy.position_size <= 0
cond1b = strategy.position_size > 0
if (condTime and cond1a and ( ( ((tcolor[1] == red and demaema<0.02) or (tcolor[1] == blue and demaema < 0.02) or (tcolor[1] == yellow and demaema>-0.02) ) and tcolor == green) or (tcolor[1] == red and tcolor == blue and demaema < -0.01) ) and index<85 and ind<0.4)
strategy.entry("buy",strategy.long, (strategy.equity-strategy.position_size*close)/1/close)
if (condTime and cond1b and ( (((tcolor[1] == yellow and demaema > -0.02) or (tcolor[1] == blue and demaema < 0.02) or (tcolor[1] == green and demaema < 0.02)) and tcolor == red) or (tcolor[1] == green and tcolor == yellow and demaema > 0.015) ) and index>15 and ind>-0.1)
strategy.order("sell",strategy.short, strategy.position_size)