
Strategi ini dengan mengira nilai tertinggi dan terendah jumlah transaksi dalam tempoh tertentu terakhir, membentuk julat turun naik yang beradaptasi, menghasilkan isyarat perdagangan apabila jumlah transaksi dalam tempoh semasa menembusi julat ini. Arah isyarat, berdasarkan penilaian sia-sia, adalah strategi yang mudah dan berkesan untuk menjejaki pasaran yang tiba-tiba besar.
Logik teras adalah untuk mengira nilai tertinggi dan terendah dari jumlah transaksi positif dan negatif dalam tempoh N kitaran terakhir, membentuk julat turun naik yang menyesuaikan diri. Berdasarkan julat ini, anda dapat menentukan sama ada terdapat penembusan pada masa itu.
Proses pengiraan adalah seperti berikut:
Strategi ini mempunyai kelebihan utama:
Strategi ini mempunyai beberapa risiko:
Ia boleh dioptimumkan dengan menyesuaikan kitaran parameter, digabungkan dengan penapisan petunjuk lain.
Strategi ini boleh dioptimumkan dalam beberapa arah:
Strategi ini secara keseluruhannya mudah dan praktikal, dan dapat menangkap keadaan unilateral yang tiba-tiba dengan pengukuran dan pengukuran, tetapi terdapat risiko salah maklumat, perlu menyesuaikan parameter dengan betul dan menggunakan alat lain untuk mencapai kesan maksimum.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © EvoCrypto
//@version=4
strategy("Ranged Volume Strategy - evo", shorttitle="Ranged Volume", format=format.volume)
// INPUTS {
Range_Length = input(5, title="Range Length", minval=1)
Heikin_Ashi = input(true, title="Heikin Ashi Colors")
Display_Bars = input(true, title="Show Bar Colors")
Display_Break = input(true, title="Show Break-Out")
Display_Range = input(true, title="Show Range")
// }
// SETTINGS {
Close = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
Open = Heikin_Ashi ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
Positive = volume
Negative = -volume
Highest = highest(volume, Range_Length)
Lowest = lowest(-volume, Range_Length)
Up = Highest > Highest[1] and Close > Open
Dn = Highest > Highest[1] and Close < Open
Volume_Color =
Display_Break and Up ? color.new(#ffeb3b, 0) :
Display_Break and Dn ? color.new(#f44336, 0) :
Close > Open ? color.new(#00c0ff, 60) :
Close < Open ? color.new(#000000, 60) : na
// }
//PLOTS {
plot(Positive, title="Positive Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Negative, title="Negative Volume", color=Volume_Color, style=plot.style_histogram, linewidth=4)
plot(Display_Range ? Highest : na, title="Highest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
plot(Display_Range ? Lowest : na, title="Lowest", color=color.new(#000000, 0), style=plot.style_line, linewidth=2)
barcolor(Display_Bars ? Volume_Color : na)
// }
if (Up)
strategy.entry("Long Entry", strategy.long)
if (Dn)
strategy.entry("Short Entry", strategy.short)