
Strategi ini disebut strategi “Dynamic Threshold Price Change Breakthrough”. Ide utama strategi ini adalah dengan mengatur sebuah threshold dinamis, yang menghasilkan sinyal beli ketika tingkat perubahan harga melebihi threshold tersebut, dan menghasilkan sinyal jual ketika tingkat perubahan harga di bawah nilai negatif dari threshold tersebut. Strategi ini juga mengatur stop loss, posisi harga yang terendah ketika harga menembus 6 garis K sebelumnya.
Inti dari strategi ini adalah menghitung tingkat perubahan harga, yang diperoleh dengan mengurangi 1 dari harga penutupan saat ini dengan harga penutupan sebelumnya. Kemudian, tingkat perubahan harga yang dihitung dibandingkan dengan nilai penurunan yang dimasukkan oleh pengguna. Jika tingkat perubahan harga lebih besar dari atau sama dengan nilai penurunan, sinyal beli dihasilkan jika tidak ada posisi yang memegang atau memegang posisi kosong saat ini; Jika tingkat perubahan harga lebih kecil dari atau sama dengan nilai penurunan yang negatif, sinyal jual dihasilkan jika tidak ada posisi yang memegang atau memegang posisi kosong saat ini.
“Dynamic Depreciation Price Change Breakthrough Strategy” menghasilkan sinyal perdagangan dengan membandingkan tingkat perubahan harga dengan devaluasi dinamis, cocok untuk digunakan dalam situasi bullish. Logika strategi sederhana dan jelas, memiliki beberapa fleksibilitas dan kemampuan pengendalian risiko. Namun, strategi ini juga memiliki beberapa kekurangan, seperti mungkin terjadi dalam situasi yang bergolak sering perdagangan, stop loss set tidak cukup fleksibel, dll.
/*backtest
start: 2023-04-01 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Price Change", shorttitle="Price Change", overlay=true)
change = input(00.1, title="Change", minval=0.0001, maxval=1, type=input.float)
// Calculate price change
priceChange = close / close[1] - 1
// Buy and Sell Signals
buyp = priceChange >= change
sellp = priceChange <= (change * -1)
// Initialize position and track the current position
var int position = na
// Strategy entry conditions
buy_condition = buyp and (na(position) or position == -1)
sell_condition = sellp and (na(position) or position == 1)
var float stop = na
if (buy_condition)
strategy.entry("Long", strategy.long)
stop := lowest(low, 6)
position := 1
if (sell_condition or low < stop)
strategy.close("Long")
position := -1
// Plot Buy and Sell signals using plotshape
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)