এই নিবন্ধটি একটি পরিমাণগত ট্রেডিং কৌশল সম্পর্কে বিস্তারিতভাবে আলোচনা করবে যা প্রবণতা ট্র্যাকিংয়ের জন্য মূল্য পুনরুদ্ধারের অনুপাতের উপর ভিত্তি করে। এই কৌশলটি স্থানীয় উচ্চতা সনাক্ত করে এবং নির্দিষ্ট পুনরুদ্ধারের অনুপাতের সাথে পয়েন্টিং প্রবেশ করে।
১, কৌশলগত নীতি
এই কৌশলটির মূল যুক্তি হল একটি নির্দিষ্ট সময়ের মধ্যে সর্বোচ্চ মূল্য চিহ্নিত করা এবং তারপরে একটি নির্দিষ্ট অনুপাতের পুনরুদ্ধারের অবস্থানে লেনদেন অনুসরণ করা। নিচের ধাপগুলি অনুসরণ করেঃ
প্রথমত, সর্বশেষ ৯০টি K-রেখার সর্বোচ্চ মান গণনা করা হবে, যা একটি স্থানীয় উচ্চতা হবে।
যখন দাম সেই উচ্চতা থেকে একটি নির্দিষ্ট অনুপাত (যেমন 3%) ফিরে আসে, তখন ক্রয়-ক্রয় ট্র্যাকিং করা হয়;
স্টপ-অফ সেট করা হয় প্রবেশাধিকার মূল্য থেকে একটি নির্দিষ্ট অনুপাত (যেমন ৬%) বৃদ্ধি করে, যখন মূল্য স্টপ-অফ পয়েন্টে পৌঁছে যায় তখন পজিশনটি প্লেইন করে;
ট্রেন্ড ট্র্যাকিংয়ের জন্য কোন স্টপ লস সেট করবেন না।
এইভাবে, প্রবেশাধিকার সময় নির্ধারণের জন্য স্থানীয় উচ্চতার রিডাউনগুলির অনুপাতের মাধ্যমে প্রবেশাধিকার কার্যকরভাবে ফিল্টার করা যেতে পারে, কেবলমাত্র প্রবণতা নিশ্চিত হওয়ার পরে প্রবেশাধিকার দেওয়া যায়। স্টপ সেটিংটি প্রতিটি মুনাফার জন্য কিছু প্রত্যাশিত ব্যবস্থাপনাও দেয়।
দ্বিতীয়, কৌশলগত সুবিধা
এই কৌশলটির সবচেয়ে বড় সুবিধা হল যে এটি একটি প্রবণতা নির্ধারণের জন্য একটি রিডাউন অনুপাত ব্যবহার করে এবং প্রচুর পরিমাণে গোলমালকে ফিল্টার করে। এটি সরাসরি বিপর্যয় পয়েন্টে প্রবেশের তুলনায়, এটি ইনস্টল করার সম্ভাবনা হ্রাস করতে পারে।
আরেকটি সুবিধা হল স্টপ-অফ লজিক। এটি প্রতিটি লেনদেনের লাভ-ক্ষতি নিয়ন্ত্রণ করে এবং এটি পজিটিভ ফান্ড ম্যানেজমেন্টের নীতিমালার সাথে সঙ্গতিপূর্ণ।
অবশেষে, স্টপ-ওভার-রিডাকশন অনুপাতের উপর ট্র্যাকিং কৌশলটি একটি নির্দিষ্ট ঝুঁকি-পুরস্কার ব্যবস্থাও দেয়।
তৃতীয়, সম্ভাব্য ঝুঁকি
যদিও এই কৌশলটির কিছু সুবিধা রয়েছে, তবে নিম্নলিখিত ঝুঁকিগুলি সম্পর্কেও সচেতন হওয়া উচিতঃ
প্রথমত, রিটার্নের অনুপাতটি সতর্কতার সাথে সেট করা দরকার। খুব গভীর বা খুব পাতলা রিটার্নগুলি মুনাফার সুযোগকে প্রভাবিত করতে পারে।
দ্বিতীয়ত, কোন স্টপ লস সেটিং না থাকলে কৌশলটি বড় একক ঝুঁকির সম্মুখীন হয়। একটি শক্তিশালী প্রবণতা বিপরীতকরণ বড় ক্ষতির কারণ হতে পারে।
অবশেষে, প্যারামিটার অপ্টিমাইজেশনের ত্রুটিও ওভারফিট সমস্যা সৃষ্টি করতে পারে, যার ফলে সংকেতের গুণমান হ্রাস পায়।
বিষয়বস্তুঃ
এই নিবন্ধে একটি পরিমাণগত কৌশল সম্পর্কে বিস্তারিতভাবে আলোচনা করা হয়েছে যা মূল্যের রিটার্নের অনুপাতের উপর ভিত্তি করে প্রবণতা অনুসরণ করে। এটি কার্যকরভাবে প্রবণতার দিকটি সনাক্ত করতে পারে এবং রিটার্নটি ব্যবহার করে প্রবেশ করতে পারে। স্টপ ম্যানেজমেন্ট সেট আপ করার পাশাপাশি কৌশলটি একটি নির্দিষ্ট ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাও সরবরাহ করে। সামগ্রিকভাবে, এই কৌশলটি স্থানীয় উচ্চ পয়েন্টের রিটার্নের ভিত্তিতে ব্যবসায়ের নিয়ম তৈরি করার জন্য একটি বিকল্প বিকল্প হিসাবে পরিবেশন করতে পারে।
/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © luboremenar
//@version=4
strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000,
default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1)
// inputs
range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 )
basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1)
retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99)
take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1)
// strategy definition
three_months_top = highest(range_of_tops)
longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0)
if (longCondition1)
strategy.entry("Long1", strategy.long, qty = strategy.equity/close)
strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points),
when= crossover(strategy.position_size, 0))
// plot
plot(strategy.equity)
// for testing, debugging
//test=0.0
//if(crossover(strategy.position_size, 0))
// test := (close*1.06-close)*basis_points
//plot(test)