
ফিশার ট্রান্সফরমেট ডায়নামিক অবমূল্যায়ন প্রবণতা ট্র্যাকিং কৌশলটি ফিশার ট্রান্সফরমেট সূচকের উপর ভিত্তি করে দামের প্রবণতার পরিবর্তনগুলি সনাক্ত করে। এই কৌশলটি ফিশার ট্রান্সফরমেট ব্যবহার করে যা দামকে একটি স্ট্যান্ডার্ড স্কেলে একীভূত করে যাতে সম্ভাব্য প্রবণতা বিপরীত পয়েন্টগুলি আরও সহজেই সনাক্ত করা যায়। ডায়নামিকভাবে থ্রেশহোল্ডগুলি সামঞ্জস্য করার মাধ্যমে, কৌশলটি বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে সক্ষম হয়, যা প্রবণতা সনাক্তকরণের নির্ভুলতা বাড়ায়। ফিশার ট্রান্সফরমেট যখন ইতিবাচক-নেতিবাচক থ্রেশহোল্ড অতিক্রম করে তখন কৌশলটি বাজার প্রবণতা অনুসরণ করার জন্য একটি বিক্রয়-বিক্রয় সংকেত তৈরি করে।
ফিশার পরিবর্তন গতিশীল অবমূল্যায়ন ট্রেন্ড ট্র্যাকিং কৌশল ফিশার পরিবর্তন সূচক এবং গতিশীল অবমূল্যায়ন, মূল্য প্রবণতা পরিবর্তন সনাক্ত, বিভিন্ন বাজার অবস্থা অভিযোজিত। এই কৌশলটি বাজারের প্রবণতা আরও ভালভাবে ক্যাপচার করতে পারে, ট্রেন্ড ট্র্যাকিং লেনদেন করতে পারে। কৌশলটির সুবিধা হ’ল গতিশীল অবমূল্যায়ন সমন্বয়, মূল্যের গোলমাল হ্রাস এবং একটি স্বজ্ঞাত চার্ট প্রদর্শন। তবে একই সাথে প্যারামিটার অপ্টিমাইজেশন ঝুঁকি রয়েছে, প্রবণতা সনাক্তকরণ পশ্চাদপসরণ, দুর্যোগপূর্ণ বাজার দুর্বল পারফরম্যান্স, চরম চলমান ঝুঁকি ইত্যাদি। প্যারামিটার অপ্টিমাইজেশন, সংকেত ছাঁটাই, স্টপ লস, পজিশন ম্যানেজমেন্ট ইত্যাদি পদক্ষেপের মাধ্যমে কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও বাড়িয়ে তুলতে পারে।
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Qiuboneminer - Fisher Transform", overlay=true)
// Parámetros
Len = input.int(10, minval=1)
mult1 = input.int(1, minval=1)
threshold = 2.6
// Función Fisher Transform
fish(Length, timeMultiplier) =>
var float nValue1 = na
var float nFish = na
xHL2 = hl2
xMaxH = ta.highest(xHL2, Length * timeMultiplier)
xMinL = ta.lowest(xHL2, Length * timeMultiplier)
nValue1 := 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
nValue2 = if nValue1 > 0.99
0.999
else if nValue1 < -0.99
-0.999
else
nValue1
nFish := 0.5 * math.log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
nFish
// Cálculo del Fisher Transform para mult1
Fisher1 = fish(Len, mult1)
// Condiciones de entrada y salida
longCondition = Fisher1 > nz(Fisher1[1]) and nz(Fisher1[1]) <= nz(Fisher1[2]) and Fisher1 < -threshold
shortCondition = Fisher1 < nz(Fisher1[1]) and nz(Fisher1[1]) >= nz(Fisher1[2]) and Fisher1 > threshold
// Estrategia de entrada
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Ploteo del Fisher Transform
plot(Fisher1, color=(Fisher1 > nz(Fisher1[1]) ? color.rgb(34, 255, 0) : color.rgb(255, 0, 212)), title="Fisher TF:1")
// Ploteo de líneas de umbral
hline(threshold, "Umbral Superior", color=color.rgb(255, 0, 0), linestyle=hline.style_dotted)
hline(-threshold, "Umbral Inferior", color=#008704, linestyle=hline.style_dotted)