এই কৌশলটি সমান্তরাল ব্যবসায়ের উপর ভিত্তি করে, মাল্টি-হেড এবং খালি হেডের তিনটি প্রবেশের লাইন সেট করে মাল্টি-হাইড ডাবল-ওয়ে পোজিশন খোলার জন্য প্রবণতা অনুসরণকারী কৌশল। যখন দাম সমান্তরাল লাইন ভেঙে যায়, তখন পজিশন খোলার পরে আরও খালি করা হয়, ঝুলন্ত লিস্টের মাধ্যমে ব্যাচ প্রবেশের জন্য।
এই কৌশলটি মূলত গড়ের ব্রেকডাউনের উপর ভিত্তি করে প্রবণতার দিক নির্ধারণ করে। বিশেষত, এটি খোলার মূল্য, বন্ধের মূল্য, সর্বোচ্চ মূল্য, সর্বনিম্ন মূল্য ইত্যাদির গাণিতিক গড় গণনা করে একটি গড়ের সূচক পায়। তারপরে গড়ের উপরে একাধিক প্রবেশের লাইন সেট করুন এবং গড়ের নীচে একটি খালি প্রবেশের লাইন সেট করুন। যখন দাম নীচে গড়ের ব্রেকডাউন হয়, তখন একাধিক অর্ডার দেওয়া হয়; যখন দাম উপরে গড়ের ব্রেকডাউন হয়, তখন খালি অর্ডার দেওয়া হয়।
ক্রমবর্ধমানভাবে ক্রমবর্ধমান পরিমাণে ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রমাগত ক্রম
এই কৌশলটি একটি পুনঃসংশোধন ব্যবস্থাও স্থাপন করে। যখন পজিশনটি 0 এর নীচে থাকে, তখন গড় মূল্যের উপর ভিত্তি করে স্টপ লস ট্র্যাকিং অর্ডার সেট করা হয়, এবং যদি দামটি আবার গড়ের নীচে পড়ে যায় তবে সমতল অবস্থানটি বন্ধ করে দেওয়া হয়। এটি মুনাফার কিছু অংশ লক করতে এবং তহবিল রক্ষা করতে পারে।
সামগ্রিকভাবে, এই কৌশলটি ট্রেন্ডের দিকনির্দেশের জন্য সমান্তরাল সূচকগুলিকে পুরোপুরি ব্যবহার করে, মাল্টি-লেভেল এন্ট্রি লাইনের মাধ্যমে মুনাফার ব্যবধানকে সর্বাধিক করে তোলে এবং স্টপ লস কন্ট্রোল ঝুঁকি সেট করে, যা একটি সাধারণ ট্রেন্ড ট্র্যাকিং কৌশল।
এই কৌশলটির সুবিধাগুলো হলঃ
গড় রেখার সাহায্যে ট্রেন্ডের দিকনির্দেশনা পরিষ্কারভাবে নির্ধারণ করা যায়। গড় রেখা কার্যকরভাবে বাজারের শব্দকে ফিল্টার করে এবং মূল ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করে।
মাল্টি-লেভেল ইনফোর লাইন, প্রবণতা চলমান এলাকার সর্বাধিক ব্যবহার করুন। একাধিক ইনফোর লাইনের মাধ্যমে, প্রবণতার পুরো চলমান এলাকাটি সর্বাধিক পরিমাণে ক্যাপচার করা যায়, লাভের স্থান বাড়ানো যায়।
ব্যাচ খোলা পজিশন, একক ঝুঁকি হ্রাস। একাধিক প্রবেশ, অর্ডারের ঝুঁকি ছড়িয়ে দিতে পারে, পজিশনের গড় পজিশন হোল্ডিং ব্যয় হ্রাস করতে পারে।
ক্ষতিপূরণ বন্ধ করার ব্যবস্থা স্থাপন করুন, ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করুন। ক্ষতিপূরণ বন্ধের আদেশের মাধ্যমে, যখন দাম আবার গড়ের নীচে নেমে আসে তখন দ্রুত ক্ষতি বন্ধ করা যায় এবং অত্যধিক ক্ষতি এড়ানো যায়।
কৌশলগুলি পরিষ্কার এবং সহজে বোঝা যায়, প্যারামিটারগুলি নমনীয়ভাবে সেট করা হয় এবং বিভিন্ন বাজারের জন্য অপ্টিমাইজ করা যায়।
এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ
গড়রেখার ভুল সংকেত প্রেরণের সম্ভাবনা। গড়রেখার বিচার প্রবণতাটি পিছিয়ে আছে, ভুল সংকেত প্রেরণ হতে পারে।
প্রবণতা বিপরীত হওয়ার ফলে ক্ষতির ঝুঁকি। কৌশলটি প্রবণতার উপর ভিত্তি করে, প্রবণতা বিপরীত হওয়ার পরে বড় ক্ষতি হবে।
এফআইএল (ইনকাম লাইন) খুব ঘন হয়ে গেছে, যার ফলে ট্রেডিং ফ্রিকোয়েন্সি এবং স্লাইড পয়েন্টের খরচ বাড়ছে।
ধারাবাহিকভাবে পজিশন খোলার ফলে পজিশনের ঘনত্বের ঝুঁকি বৃদ্ধি পায়। পজিশনের পরিমাণ বেশি হলে, ঝুঁকি কেন্দ্রীভূত হয়।
স্টপ পয়েন্টের সেটিং অযৌক্তিক, এবং এটি অকাল বা খুব ছোট হতে পারে।
সংশ্লিষ্ট ঝুঁকি ব্যবস্থাপনা ব্যবস্থাঃ
গড়রেখার প্যারামিটার অপ্টিমাইজ করুন, উপযুক্ত চক্র গড়রেখার নির্বাচন করুন।
গুরুত্বপূর্ণ প্রযুক্তিগত সূচকগুলি পর্যবেক্ষণ করুন, প্রবণতা বিপরীত সংকেতগুলি বিচার করুন এবং সময়মতো ক্ষতি বন্ধ করুন।
ফোরলাইন সেটিংয়ের দূরত্ব পরিবর্তন করুন এবং লেনদেনের ঘনত্ব হ্রাস করুন।
পজিশনের আকার এবং অনুপাত অপ্টিমাইজ করুন, কেন্দ্রীভূত ঝুঁকি নিয়ন্ত্রণ করুন।
স্টপ লস পয়েন্টের পরীক্ষা ও অপ্টিমাইজেশান, স্টপ লস ঝুঁকি কমানো।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যায়ঃ
বিভিন্ন গড়রেখার প্যারামিটার এবং ডেটা উত্স পরীক্ষা করুন এবং প্রবণতা প্রভাবের জন্য সর্বোত্তম গড়রেখার সূচকটি চয়ন করুন।
সর্বোত্তম প্যারামিটার খুঁজতে মাল্টি-হোলা ইনফিনিটি লাইনের দূরত্বের ব্যবধান এবং অবস্থানের অনুপাত অনুকূলিত করুন।
অন্যান্য সূচকগুলির সাথে মিলিত হয়ে ফিল্টার শর্ত হিসাবে, সমান্তরাল ভুল সংকেত এড়াতে। যেমন MACD, RSI ইত্যাদি।
স্টপ লিনের অবস্থান অনুকূলিতকরণ, এটিআর গতিশীলতার উপর ভিত্তি করে স্টপ পয়েন্টের অবস্থানও নির্ধারণ করতে পারে।
ট্রেন্ড রিভার্সনের বিচার বাড়ানো, সমস্ত হোল্ডিং বন্ধ করার শর্ত সেট করা।
মার্কেটের বিভিন্ন সময়সীমার উপর ভিত্তি করে কৌশলগুলিকে অপ্টিমাইজ করার জন্য প্যারামিটারগুলি।
পজিশনের সংখ্যা বৃদ্ধি করার জন্য গতিশীল সমন্বয় ফাংশন, তহবিল ব্যবহারের অনুপাতের উপর ভিত্তি করে খোলা পজিশনার সংখ্যা নির্ধারণ করুন।
এই কৌশলটি সামগ্রিকভাবে প্রবণতার দিকনির্দেশের সমান্তরাল সিদ্ধান্ত গ্রহণ করে এবং প্রবণতার কার্যকলাপকে মূল মুনাফার উত্স হিসাবে ব্যবহার করে। বহু স্তরের প্রবেশ এবং ব্যাচ খোলার মাধ্যমে, প্রবণতা কার্যকরভাবে দখল করা যায়, মুনাফা অঞ্চল প্রসারিত করা যায়। ঝুঁকি নিয়ন্ত্রণের জন্য একই সাথে স্টপ লস ব্যবস্থা স্থাপন করা যায়। কৌশলটি সহজ এবং পরিষ্কার, এটি শিক্ষানবিসদের জন্য উপযুক্ত, তবে এটি গভীর অপ্টিমাইজেশনের জন্যও উপযুক্ত, এটি একটি আদর্শ প্রবণতা অনুসরণকারী কৌশল।
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2019
//@version=4
strategy(title = "Robot WhiteBox Iceberg", shorttitle = "Robot WhiteBox Iceberg", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3)
//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len = input(3, minval = 1, title = "MA Length")
s = input(defval = "7. OHLC4", options = ["1. Open", "2. High", "3. Low", "4. Close", "5. HL2", "6. HLC3", "7. OHLC4", "8. OC2", "9. PCMA"], title = "Data")
short3 = input(true, title = "short 3")
short2 = input(true, title = "short 2")
short1 = input(true, title = "short 1")
long1 = input(true, title = "long 1")
long2 = input(true, title = "long 2")
long3 = input(true, title = "long 3")
shortlevel3 = input(15.0, title = "Short line 3")
shortlevel2 = input(10.0, title = "Short line 2")
shortlevel1 = input(5.0, title = "Short line 1")
longlevel1 = input(-5.0, title = "Long line 1")
longlevel2 = input(-10.0, title = "Long line 2")
longlevel3 = input(-15.0, title = "Long line 3")
needoffset = input(true, title = "Offset")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Variables
lots = 0.0
size = strategy.position_size
mult = 1 / syminfo.mintick
needtime = true
//MA
oc2 = (open + close) / 2
pcma = (highest(high, len) + lowest(low, len)) / 2
src = s == "1. Open" ? open : s == "2. High" ? high : s == "3. Low" ? low : s == "4. Close" ? close : s == "5. HL2" ? hl2 : s == "6. HLC3" ? hlc3 : s == "7. OHLC4" ? ohlc4 : s == "8. OC2" ? oc2: close
sma = sma(src, len)
ma = s == "9. PCMA" ? round(pcma * mult) / mult : round(sma * mult) / mult
//Levels
longline1 = 0.0
longline2 = 0.0
longline3 = 0.0
shortline1 = 0.0
shortline2 = 0.0
shortline3 = 0.0
longline1 := long1 ? round(ma * ((100 + longlevel1) / 100) * mult) / mult : close
longline2 := lots[1] == 0 ? long2 ? round(ma * ((100 + longlevel2) / 100) * mult) / mult : close : longline2[1]
longline3 := lots[1] == 0 ? long3 ? round(ma * ((100 + longlevel3) / 100) * mult) / mult : close : longline3[1]
shortline1 := short1 ? round(ma * ((100 + shortlevel1) / 100) * mult) / mult : close
shortline2 := lots[1] == 0 ? short2 ? round(ma * ((100 + shortlevel2) / 100) * mult) / mult : close : shortline2[1]
shortline3 := lots[1] == 0 ? short3 ? round(ma * ((100 + shortlevel3) / 100) * mult) / mult : close : shortline3[1]
//Lines
colorlong1 = long1 ? color.lime : na
colorlong2 = long2 ? color.lime : na
colorlong3 = long3 ? color.lime : na
colorshort1 = short1 ? color.red : na
colorshort2 = short2 ? color.red : na
colorshort3 = short3 ? color.red : na
offset = needoffset ? 1 : 0
plot(shortline3, offset = offset, color = colorshort3, title = "Short line 3")
plot(shortline2, offset = offset, color = colorshort2, title = "Short line 2")
plot(shortline1, offset = offset, color = colorshort1, title = "Short line 1")
plot(ma, offset = offset, color = color.blue, title = "MA line")
plot(longline1, offset = offset, color = colorlong1, title = "Long line 1")
plot(longline2, offset = offset, color = colorlong2, title = "Long line 2")
plot(longline3, offset = offset, color = colorlong3, title = "Long line 3")
//Trading
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if ma > 0
lots := round(size / lot)
strategy.entry("L1", strategy.long, lot, limit = longline1, when = (lots == 0 and long1 and needtime))
lots := round(size / lot)
strategy.entry("L2", strategy.long, lot, limit = longline2, when = (lots <= 1 and long2 and needtime))
lots := round(size / lot)
strategy.entry("L3", strategy.long, lot, limit = longline3, when = (lots <= 2 and long3 and needtime))
lots := round(size / lot)
strategy.entry("S1", strategy.short, lot, limit = shortline1, when = (lots == 0 and short1 and needtime))
lots := round(size / lot)
strategy.entry("S2", strategy.short, lot, limit = shortline2, when = (lots >= -1 and short2 and needtime))
lots := round(size / lot)
strategy.entry("S3", strategy.short, lot, limit = shortline3, when = (lots >= -2 and short3 and needtime))
if size > 0
strategy.entry("TPL", strategy.short, 0, limit = ma, when = needtime)
if size < 0
strategy.entry("TPS", strategy.long, 0, limit = ma, when = needtime)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("L1")
strategy.cancel("L2")
strategy.cancel("L3")
strategy.cancel("S1")
strategy.cancel("S2")
strategy.cancel("S3")
strategy.cancel("TPL")
strategy.cancel("TPS")