ফিসার ট্রান্সফর্ম ব্যাকটেস্ট কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১২-০৪ ১৩ঃ৩৩ঃ০৫
ট্যাগঃ

img

সারসংক্ষেপ

ফিশার ট্রান্সফর্ম ব্যাকটেস্ট কৌশলটি দামের বিপরীত পয়েন্টগুলি সনাক্ত করতে এবং সেই অনুযায়ী ট্রেডিং সংকেত উত্পন্ন করার জন্য দামের ফিশার রূপান্তর গণনা করে। কৌশলটি ফিশার রূপান্তর সূত্র ব্যবহার করে দামগুলি প্রক্রিয়া করে দামের বিতরণের অ-গাউসিয়ান বৈশিষ্ট্যগুলি সরিয়ে দেয়, যার ফলে আনুমানিক গাউসিয়ান বিতরণের সাথে একটি মানসম্মত সূচক আসে। কৌশলটি ফিশার রূপান্তর বক্ররেখার inflection পয়েন্টগুলির উপর ভিত্তি করে মূল্য বিপরীতগুলি নির্ধারণ করে এবং দীর্ঘ এবং সংক্ষিপ্ত সংকেত উত্পাদন করে।

কৌশল নীতি

এই কৌশলটির মূলটি হ'ল ফিশার রূপান্তর সূত্র ব্যবহার করে দামগুলি প্রাকৃতিক মূল্য বিতরণের অ-গাউসিয়ান বৈশিষ্ট্যগুলি দূর করার জন্য। ফিশার রূপান্তর সূত্রটি হ'লঃ

y = 0.5 * ln (((1+x) / (((1-x))

এখানে x হল প্রক্রিয়াজাত মূল্য, যা সর্বশেষতম দৈর্ঘ্যের সময়কালের সর্বোচ্চ এবং সর্বনিম্ন দামগুলি খুঁজে বের করে সর্বোচ্চ এবং সর্বনিম্ন ফাংশনগুলি ব্যবহার করে এবং তারপরে নিম্নরূপ স্বাভাবিককরণ করে পাওয়া যায়ঃ

x = (মূল্য - সর্বনিম্ন) / ((সর্বোচ্চ - সর্বনিম্ন) - 0.5

এইভাবে প্রক্রিয়াজাত মূল্যগুলি একটি গাউসিয়ান বন্টনকে ঘনিষ্ঠ করে তোলে। ফিশার রূপান্তর বক্ররেখা পেতে এক্সকে ফিশার রূপান্তর সূত্রের মধ্যে প্রতিস্থাপন করা হয়। ফিশার রূপান্তর বক্ররেখার ইনফ্লেকশন পয়েন্টগুলি ফিশার রূপান্তর বক্ররেখার মূল্য সংকেত বিপরীত হয়।

যখন ফিশার ট্রান্সফর্ম কার্ভ ইতিবাচক থেকে নেতিবাচক হয়ে যায়, তখন একটি বিক্রয় সংকেত উৎপন্ন হয়। যখন এটি নেতিবাচক থেকে ইতিবাচক হয়ে যায়, তখন একটি ক্রয় সংকেত উৎপন্ন হয়।

সুবিধা বিশ্লেষণ

  1. ফিশার রূপান্তর মূল্য থেকে অ-গাউসিয়ান বৈশিষ্ট্যগুলি সরিয়ে দেয়, যার ফলে আরও ভাল আচরণ, মানসম্মত মূল্য এবং কম মিথ্যা সংকেত রয়েছে

  2. দামের বিপরীত পয়েন্টগুলি ক্যাপচার করে, শীর্ষ এবং নীচের দিকে ছুটে যাওয়া এড়ানো

  3. ফিউনিং বিপরীত সংবেদনশীলতার জন্য নমনীয় পরামিতি সমন্বয়

  4. কাস্টমাইজযোগ্য দিকনির্দেশনা, বিভিন্ন বাজারের পরিবেশে অভিযোজিত

  5. সহজ যুক্তি সহজেই বোঝা এবং বাস্তবায়ন

ঝুঁকি বিশ্লেষণ

  1. অনুপযুক্ত পরামিতি সেটিং ভুল বাঁক বা মিথ্যা সংকেত উৎপন্ন হতে পারে

  2. লাইভ ট্রেডিংয়ে স্লিপিং পারফেক্ট সিগন্যাল এক্সিকিউশনকে বাধা দিতে পারে

  3. দামের অস্থিরতার সময় বাঁক চিহ্নিত করা কঠিন

  4. লাইভ ট্রেডিংয়ের ক্ষেত্রে বাস্তবায়ন করা কঠিন এবং রিভার্সাল নিশ্চিত করার প্রয়োজন

সমাধান:

  1. দৈর্ঘ্য সামঞ্জস্য করে পরামিতি অপ্টিমাইজ করুন

  2. ভরাট নিশ্চিত করার জন্য প্রবেশের মানদণ্ড যথাযথভাবে শিথিল করুন

  3. অন্যান্য সূচককে একত্রিত করে মিথ্যা সংকেত ফিল্টার করুন

  4. কঠোরভাবে নিয়ম মেনে চলুন এবং ঝুঁকিগুলি পরিচালনা করুন

অপ্টিমাইজেশান নির্দেশাবলী

  1. সর্বোত্তম সমন্বয় খুঁজতে দৈর্ঘ্য পরামিতি অপ্টিমাইজ করুন

  2. ভুল সংকেত এড়াতে ফিল্টার যোগ করুন যেমন চলমান গড়, অস্থিরতা সূচক ইত্যাদি।

  3. প্রতি ট্রেডের জন্য স্টপ লসকে কন্ট্রোল লস হিসাবে অন্তর্ভুক্ত করুন

  4. ধারাবাহিক প্রবণতা ট্র্যাক করার জন্য পুনরায় প্রবেশের প্রক্রিয়া যুক্ত করুন

সিদ্ধান্ত

ফিশার ট্রান্সফর্ম ব্যাকটেস্ট কৌশলটি নন-গাউসিয়ান মূল্য বৈশিষ্ট্যগুলি সরিয়ে দিয়ে মূল্য বিপরীত পয়েন্টগুলি সনাক্ত করে। এটি একটি সহজেই বাস্তবায়িত গড় বিপরীত কৌশল। এর সুবিধাগুলি পালা ধরার জন্য নমনীয় পরামিতিগুলিতে রয়েছে যখন এর প্রধান দুর্বলতা হ'ল কঠোর প্রবেশের নিয়মের প্রয়োজনের সাথে লাইভ বাস্তবায়নের অসুবিধা। ব্যবহারিক প্রয়োগযোগ্যতার জন্য এই কৌশলটি অনুকূল করতে বিভিন্ন পদ্ধতি ব্যবহার করা যেতে পারে।


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v2.0 22/12/2016
// 	Market prices do not have a Gaussian probability density function
// 	as many traders think. Their probability curve is not bell-shaped.
// 	But trader can create a nearly Gaussian PDF for prices by normalizing
// 	them or creating a normalized indicator such as the relative strength
// 	index and applying the Fisher transform. Such a transformed output 
// 	creates the peak swings as relatively rare events.
// 	Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x))
// 	The sharp turning points of these peak swings clearly and unambiguously
// 	identify price reversals in a timely manner. 
//
//  For signal used zero. 
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers")
Length = input(10, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=blue)
xHL2 = hl2
xMaxH = highest(xHL2, Length)
xMinL = lowest(xHL2,Length)
nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
nValue2 =   iff(nValue1 > .99,  .999,
	         iff(nValue1 < -.99, -.999, nValue1))
nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
pos = iff(nFish > 0, 1,
	   iff(nFish < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nFish, color=green, title="Fisher")
plot(nz(nFish[1]), color=red, title="Trigger")

আরো