
Gagasan utama dari strategi ini adalah menggabungkan indikator percentrank dan parameter optimasi untuk menilai dan melacak tren harga. Strategi ini menghasilkan sinyal perdagangan dengan membandingkan harga saat ini dengan persentase ukuran harga dalam periode sejarah tertentu, untuk menangkap efek cermin tengah, mengikuti tren, dan kemudian mendapatkan keuntungan tambahan.
Strategi ini menggunakan indikator percentrank untuk menentukan tren harga. Percentrank menunjukkan kekuatan relatif harga saat ini dalam periode yang dilihat. Parameter len menunjukkan panjang periode sejarah yang dilihat.
Peringkat persentase berkisar antara 0 dan 100. Peringkat persentase mendekati 0 berarti harga saat ini mendekati harga terendah dalam periode periksa dan berada di zona undervalued. Peringkat 100 berarti harga saat ini mendekati harga tertinggi dalam periode periksa dan berada di zona overvalued.
Strategi ini juga memperkenalkan parameter skala sebagai bias. Mengubah 0-100 menjadi skala 100+ skala. Siapkan dua garis sinyal level_1 dan level_2.
Ketika harga percentrank indikator dari bawah ke atas melintasi level_1 menghasilkan sinyal melihat lebih; ketika dari atas ke bawah melintasi level_2 menghasilkan sinyal melihat lebih. Kondisi posisi kosong adalah kebalikan dari sinyal masuk.
Untuk risiko di atas, dapat dioptimalkan dengan menyesuaikan parameter len, scale, level; juga dapat dikombinasikan dengan indikator lain sebagai konfirmasi, untuk menghindari kesalahan perdagangan.
Strategi ini masih bisa dioptimalkan lebih jauh:
Strategi ini secara keseluruhan memiliki ide yang jelas, menggunakan metode kuantitatif yang dioptimalkan parameter untuk menilai dan melacak tren harga. Ini memiliki nilai nyata, tetapi masih perlu diuji dan dioptimalkan lebih lanjut, mengurangi risiko nyata, dan meningkatkan stabilitas profitabilitas.
/*backtest
start: 2023-12-02 00:00:00
end: 2024-01-01 00:00:00
period: 4h
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/
// © Alex_Dyuk
//@version=4
strategy(title="percentrank", shorttitle="percentrank")
src = input(close, title="Source")
len = input(title="lookback - Период сравнения", type=input.integer, defval=10, minval=2)
scale = input(title="scale offset - смещение шкалы", type=input.integer, defval=50, minval=0, maxval=100)
level_1 = input(title="sygnal line 1", type=input.integer, defval=30)
level_2 = input(title="sygnal line 2", type=input.integer, defval=-30)
prank = percentrank(src,len)-scale
plot(prank, style = plot.style_columns)
plot(level_2, style = plot.style_line, color = color.red)
plot(level_1, style = plot.style_line, color = color.green)
longCondition = (crossunder(level_1, prank) == true)
if (longCondition)
strategy.entry("Long", strategy.long)
longExitCondition = (crossover(level_2, prank) == true)
if (longExitCondition)
strategy.close("Long")
shortCondition = (crossover(level_2, prank) == true)
if (shortCondition)
strategy.entry("Short", strategy.short)
shortexitCondition = (crossunder(level_1, prank) == true)
if (shortexitCondition)
strategy.close("Short")