
Strategi pengenalan trend MyQuant adalah strategi yang digunakan untuk perdagangan harian Bitcoin. Strategi ini mengenal pasti trend pasaran dengan mengira purata bergerak harga dan derivatif peringkat pertama dan kedua, dan membuat keputusan membeli dan menjual berdasarkan itu.
Strategi ini mula-mula mengira purata bergerak beradaptasi harga (ALMA) dan derivatif pertama dan kedua. Derivatif pertama mencerminkan kelajuan perubahan harga, derivatif kedua mencerminkan kurva harga. Berdasarkan nilai derivatif pertama dan kedua, anda kini berada dalam tren naik, tren menurun atau masa goyah.
Secara khusus, strategi ini mengkaji:
Apabila syarat membeli dipenuhi, jumlah saham yang dibeli dikira berdasarkan CAUSED.Accumulation/Distribution Bands dan Caused Exposure Top and Bottom Finder. Apabila syarat menjual dipenuhi, menjual semua kedudukan.
Strategi ini menggabungkan trend dan penghakiman indikator, yang dapat mengenal pasti titik perubahan trend pasaran. Menggunakan harga satu peringkat dan kedua derivatif untuk menentukan trend, mengelakkan daripada terjejas oleh pergerakan harga, membuat isyarat lebih jelas. Berbanding dengan strategi purata bergerak yang biasa, mempunyai keunggulan keakuran penghakiman yang lebih tinggi.
Strategi ini sangat sensitif terhadap pilihan tempoh masa perdagangan dan penyesuaian parameter. Jika pilihan tempoh masa tidak tepat, kegagalan untuk merangkumi titik perubahan harga penting, akan menyebabkan strategi tidak berkesan. Jika parameter penunjuk tidak betul, isyarat membeli dan menjual akan terjejas oleh lebih banyak bunyi, yang akan mempengaruhi keuntungan strategi.
Strategi ini boleh dioptimumkan dengan cara berikut:
Strategi pengenalan trend MyQuant dengan pengiraan derivatif peringkat pertama dan kedua dari purata bergerak yang disesuaikan dengan harga, secara berkesan mengenal pasti trend pasaran Bitcoin dan membuat keputusan pembelian dan penjualan yang sesuai. Strategi ini membuat keputusan dengan menggabungkan pelbagai petunjuk dan mengelakkan isyarat dari gangguan bunyi yang berlebihan.
/*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)