
Idea utama strategi ini adalah menggabungkan penunjuk peratusan dan pengoptimuman parameter untuk menilai dan mengesan trend harga. Strategi ini menghasilkan isyarat perdagangan dengan membandingkan harga semasa dengan peratusan saiz harga dalam tempoh sejarah tertentu, untuk menangkap kesan cermin tengah, mengikuti trend, dan kemudian mendapatkan keuntungan tambahan.
Strategi ini menggunakan indikator percentrank untuk menentukan trend harga. Percentrank menunjukkan kekuatan relatif harga semasa dalam tempoh melihat.
Peringkat peratusan adalah antara 0 dan 100. Apabila nilai peratusan mendekati 0, harga semasa mendekati harga terendah dalam kitaran semak dan berada di kawasan yang tidak bernilai. Apabila mendekati 100, harga semasa mendekati harga tertinggi dalam kitaran semak dan berada di kawasan yang bernilai tinggi.
Strategi ini juga memperkenalkan parameter skala sebagai perpindahan. Ia menjadikan skala dari 0 hingga 100 ke skala 100 +. Ia juga menetapkan dua garis isyarat level_1 dan level_2. Di mana level_1 menunjukkan melihat lebih banyak tahap, dan level_2 menunjukkan melihat tahap.
Apabila harga %rank penunjuk menghasilkan lebih banyak isyarat melihat apabila ia melintasi level_1 dari bawah ke atas; apabila ia melintasi level_2 dari atas ke bawah menghasilkan isyarat melihat. Syarat kedudukan kosong bertentangan dengan isyarat masuk.
Untuk risiko di atas, ia boleh dioptimumkan dengan menyesuaikan parameter len, skala, dan tahap; dan ia boleh digabungkan dengan petunjuk lain sebagai pengesahan, untuk mengelakkan perdagangan yang salah.
Strategi ini masih boleh dioptimumkan lagi:
Strategi ini mempunyai pemikiran keseluruhan yang jelas, menggunakan kaedah kuantitatif yang dioptimumkan parameter untuk menilai dan mengesan trend harga. Ia mempunyai nilai sebenar, tetapi masih perlu diuji dan dioptimumkan lebih lanjut, mengurangkan risiko sebenar, meningkatkan keuntungan yang stabil.
/*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")