
দোলন ব্রেকথ্রু - বাজার কাঠামো পরিবর্তনের কৌশল একটি প্রবণতা ট্র্যাকিং কৌশল যা বিভিন্ন সময়কালের মধ্যে সম্পর্ক ব্যবহার করে বাজার কাঠামোর পরিবর্তনের চিহ্নিতকরণ করে। এই কৌশলটি বিভিন্ন সময়কালের মধ্যে সম্পর্ককে বাজার কাঠামোর পরিবর্তনের সংকেত হিসাবে গ্রহণ করে যাতে নতুন প্রবণতার দিকটি ধরা যায়।
এই কৌশলটির কেন্দ্রীয় যুক্তি হ’ল সংক্ষিপ্ত-চক্রের সময়কালের নীচে এবং উপরের গ্রাসকারী রূপগুলিকে মধ্য-দীর্ঘ-চক্রের বাজার কাঠামোর পরিবর্তনের সংকেত হিসাবে ব্যবহার করা। বিশেষত, কৌশলটি একই সাথে মধ্য-দীর্ঘ-চক্রের (যেমন 60 মিনিটের লাইন) এবং সংক্ষিপ্ত-চক্রের (যেমন 15 মিনিটের লাইন) K লাইনগুলি পর্যবেক্ষণ করবে। যখন সংক্ষিপ্ত-চক্রের নীচে গ্রাসকারী লাল K লাইন উপস্থিত হয় এবং মাঝারি-দীর্ঘ-চক্রটি সবুজ K লাইন হয়, তখন বাজার কাঠামোর পরিবর্তন ঘটে বলে মনে করা হয়, আরও বেশি করা হয়; যখন সংক্ষিপ্ত-চক্রের উপরে গ্রাসকারী সবুজ K লাইন উপস্থিত হয় এবং মাঝারি-দীর্ঘ-চক্রটি লাল K লাইন হয়, তখন বাজার কাঠামোর পরিবর্তন ঘটে বলে মনে করা হয়, খালি করা হয়।
ট্রেন্ডে প্রবেশের পর, কৌশলটি স্বল্প সময়ের সর্বোচ্চ বা সর্বনিম্ন মূল্যকে স্টপ লস হিসেবে ব্যবহার করে ঝুঁকি নিয়ন্ত্রণ করে। যখন মাঝারি-দীর্ঘ সময়ের K লাইন বন্ধের মূল্য স্টপ লস ট্রিগার করে, কৌশলটি স্টপ লস করে।
এই কৌশলটির সুবিধাগুলো হলঃ
নির্ভরযোগ্য বাজার কাঠামো পরিবর্তনের সংকেত। বিভিন্ন চক্রের মধ্যে সম্পর্ক ব্যবহার করে বাজার কাঠামোর বিচার করুন, একক চক্রের গোলমাল দ্বারা বিভ্রান্ত হওয়া এড়িয়ে চলুন।
স্বয়ংক্রিয়ভাবে নতুন প্রবণতা দিক নির্ণয় করুন। বাজার কাঠামোর পরিবর্তনের সংকেত উপস্থিত হলে স্বয়ংক্রিয়ভাবে অতিরিক্ত কোকিং করুন, ম্যানুয়াল বিচার করার দরকার নেই।
ঝুঁকি নিয়ন্ত্রণ করা হয়েছে। স্বল্প সময়ের সর্বোচ্চ সর্বনিম্ন মূল্য ব্যবহার করে ঝুঁকি নিয়ন্ত্রণ করা হয়েছে, যা একক ক্ষতি নিয়ন্ত্রণে সহায়তা করে।
প্রত্যাহার নিয়ন্ত্রণ তুলনামূলকভাবে ভাল। স্বল্প-চক্রের সর্বোচ্চ মান ব্যবহার করে পজিশন খোলার এবং ক্ষতি বন্ধ করার জন্য, প্রত্যাহারকে কিছুটা নিয়ন্ত্রণ করা যেতে পারে।
এই কৌশলটির প্রধান ঝুঁকিগুলো হলঃ
বাজারের কাঠামোর ভুল বিচার করার ঝুঁকি। যখন স্বল্প চক্রের শব্দ খুব বেশি হয়, তখন বাজারের কাঠামোর পরিবর্তনের সংকেত ব্যর্থ হতে পারে এবং চক্রের প্যারামিটারগুলি সামঞ্জস্য করতে হবে।
প্রবণতা বিপরীত হওয়ার ঝুঁকি। যখন বাজারে V-ধরনের বিপরীত হয়, তখন এই কৌশলটি প্রত্যাহার নিয়ন্ত্রণ করা কঠিন। স্টপ লস অ্যালগরিদমটি যথাযথভাবে সামঞ্জস্য করা যেতে পারে।
প্যারামিটার মেলে না হওয়ার ঝুঁকি মাঝারি এবং স্বল্পমেয়াদী প্যারামিটারগুলি সময়মতো সেট করা হয়নি, সিগন্যালের প্রভাব খারাপ হতে পারে, বারবার অপ্টিমাইজেশন পরীক্ষার প্রয়োজন
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে আরও উন্নত করা যেতে পারেঃ
ট্রেন্ড রিভার্সনের সময় ভুল সংকেত এড়ানোর জন্য, ক্রমবর্ধমান সূচক বা প্রবণতা বিচার যুক্ত করুন।
সংকেতের গুণমান উন্নত করার জন্য দীর্ঘ এবং স্বল্প সময়ের মধ্যে প্যারামিটার মিলের অপ্টিমাইজেশন।
মেশিন লার্নিং এবং অন্যান্য প্রযুক্তি ব্যবহার করে স্টপ স্টপ লস অ্যালগরিদমকে সর্বোত্তম করে তোলা।
অতিরিক্ত শর্তযুক্ত ফিল্টারগুলি যুক্ত করুন যা বিভ্রান্তিকর সংকেত যেমন বড় আকারের প্রবণতা বিচার করে।
কৌশল প্রকারের সমৃদ্ধকরণ, ডেরাইভেটিভ কৌশল বিকাশ, কৌশল পোর্টফোলিও গঠন।
শক-ব্রেকিং - বাজার কাঠামোর পরিবর্তনের কৌশলটি সামগ্রিকভাবে একটি নির্ভরযোগ্য ট্র্যাকিং কৌশল। এটি বাজার কাঠামোর পরিবর্তনগুলি ব্যবহার করে স্বয়ংক্রিয়ভাবে নতুন প্রবণতার দিকনির্দেশ করতে পারে এবং ঝুঁকি নিয়ন্ত্রণও ভাল করে। পরবর্তী, কৌশলটি সংকেতের গুণমান উন্নত করা, স্টপ লস অপ্টিমাইজ করা, বিপরীতমুখী প্রতিরোধ করা ইত্যাদির ক্ষেত্রে গভীরভাবে অপ্টিমাইজ করা যেতে পারে, এটি একটি ব্যবসায়িক স্তরের কৌশল পণ্য হিসাবে তৈরি করে।
/*backtest
start: 2022-11-28 00:00:00
end: 2023-12-04 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/
// © jl01794
//@version=5
strategy(title="ICT_MSS[PROTOTYPE]", overlay=true, initial_capital=10000, currency="USD", margin_long=15, margin_short=15, max_lines_count=500)
// INPUTS
Time_Frame = input.timeframe("60", title="Focused Time Frame")
FTF_LTF = input.timeframe("15", title="Focused Time Frame(LTF)")
//
// SECURITY DATA [FOR ONE TIMEFRAME REFERENCE]
FTF_Close = request.security(syminfo.tickerid, Time_Frame, close)
FTF_Open = request.security(syminfo.tickerid, Time_Frame, open)
FTFLTF_High = request.security(syminfo.tickerid, FTF_LTF, ta.highest(2))
FTFLTF_Low = request.security(syminfo.tickerid, FTF_LTF, ta.lowest(2))
FTFLTF_Close = request.security(syminfo.tickerid, FTF_LTF, close)
FTFLTF_Open = request.security(syminfo.tickerid, FTF_LTF, open)
// TIME BASED CLOSE AND OPEN
_close = FTF_Close
_open = FTF_Open
_LTFclose = FTFLTF_Close
_LTFopen = FTFLTF_Open
// CANDLE STATE
greenCandle = close > open
redCandle = close < open
LTFgreenCandle = FTFLTF_Close > FTFLTF_Open
LTFredCandle = FTFLTF_Close < FTFLTF_Open
// ENGULFING TIMEFRAME REFERENCE
FTF_greenCandle = request.security(syminfo.tickerid, Time_Frame, greenCandle)
FTF_redCandle = request.security(syminfo.tickerid, Time_Frame, redCandle)
FTFLTF_greenCandle = request.security(syminfo.tickerid, FTF_LTF, LTFgreenCandle)
FTFLTF_redCandle = request.security(syminfo.tickerid, FTF_LTF, LTFredCandle)
//--------------------------------------------------------------------------------------------------------------
//ENGULFING_FTF_LTF
B_EnP_mss = FTFLTF_redCandle[1] and // 1E PIVOT BUY
FTFLTF_greenCandle
//
B_EnPs_mss = FTFLTF_greenCandle[1] and // 1E PIVOT SELL
FTFLTF_redCandle
//
//--------------------------------------------------------------------------------------------------------------
display_LTF = timeframe.isintraday and timeframe.multiplier <= 15
//--------------------------------------------------------------------------------------------------------------
// STORED DATAS
var float EH_MSS1 = na
var float EL_MSS1 = na
var bool can_draw = false
var line l1_mss = na
var line l1s_mss = na
//--------------------------------------------------------------------------------------------------------------
// MSS BUY
if (B_EnPs_mss) and (display_LTF)
EH_MSS1 := FTFLTF_High
can_draw := true
l1_mss := line.new(bar_index, EH_MSS1, bar_index -3, EH_MSS1, color=color.purple)
else
if (can_draw)
if (FTFLTF_High > EH_MSS1)
can_draw := false
else
line.set_x2(l1_mss, bar_index)
//
// MSS SELL
if (B_EnP_mss) and (display_LTF)
EL_MSS1 := FTFLTF_Low
can_draw := true
l1s_mss := line.new(bar_index, EL_MSS1, bar_index -3, EL_MSS1, color=color.purple)
else
if (can_draw)
if (FTFLTF_Low < EL_MSS1)
can_draw := false
else
line.set_x2(l1s_mss, bar_index)
//--------------------------------------------------------------------------------------------------------------
// ORDER
// BUY
longCondition_mssB = B_EnPs_mss and FTFLTF_High and close and high[1]
openOr = FTFLTF_High
//SELL
shortCondition_mssS = B_EnP_mss and FTFLTF_Low and close and low[1]
openOrs = FTFLTF_Low
if (longCondition_mssB)
strategy.entry("Buy", strategy.long, 1, stop = openOr, when = longCondition_mssB)
//
if (shortCondition_mssS)
strategy.entry("Sell", strategy.short, 1, stop = openOrs, when = shortCondition_mssS)
//
// EXIT
long_tp = open < FTFLTF_Close[1]
short_tp = open > FTFLTF_Close[1]
//if (long_tp)
//strategy.close("Buy", qty_percent = 100, when = long_tp)
//
//if (short_tp)
//strategy.close("Sell", qty_percent = 100, when = short_tp)
//