
গতিশীলতা ট্র্যাকিং ট্রেডিং কৌশল হল একটি স্বয়ংক্রিয় ট্রেডিং কৌশল যা বাজারের গতিশীলতার ট্রেন্ডকে মূলত অনুসরণ করে এবং একাধিক প্রযুক্তিগত সূচককে সহায়ক বিচার হিসাবে সংযুক্ত করে। এই কৌশলটি কে-লাইন তথ্য বিশ্লেষণ করে, বর্তমান বাজারের মূলধনের দিকনির্দেশ এবং শক্তি নির্ধারণ করে এবং তারপরে ভলিউম মূল্য সূচক, চলমান গড় ইত্যাদি প্রযুক্তিগত সূচকগুলির সাথে ট্রেডিং সংকেত প্রেরণ করে।
সামগ্রিকভাবে, এই কৌশলটি মাঝারি এবং দীর্ঘ লাইনের ট্রেডিংয়ের জন্য উপযুক্ত, এটি কার্যকরভাবে বাজার প্রবণতা ক্যাপচার করতে পারে, ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করতে পারে এবং উচ্চতর একক মুনাফা অর্জনের চেষ্টা করতে পারে। একই সময়ে, কৌশলটি প্যারামিটারগুলি অনুকূলিতকরণের পরে, এটি সংক্ষিপ্ত লাইনের ব্যবসায়ের জন্যও ব্যবহার করা যেতে পারে।
গতিশীলতা ট্র্যাকিং কৌশলটির মূল বিষয় হ’ল বাজারের মূলধন তহবিলের দিকনির্দেশনা নির্ধারণ করা। কৌশলটি এটিআর সূচকগুলি গণনা করে বাজারের ওঠানামা রিয়েল-টাইমে পর্যবেক্ষণ করে। যখন ওঠানামা বৃদ্ধি পায়, প্রতিনিধিত্বকারী মূলধনটি জমা বা বরাদ্দ করা হয়, কৌশলটি সাময়িকভাবে বাজার থেকে বেরিয়ে যায়, মূলধন অপারেশনের সময়কাল এড়ানো যায়।
যখন ওঠানামা কমে যায়, তখন প্রভুত্বের সংযোজন বা বন্টন শেষ হয়ে যায়, কৌশলটি পুনরায় খেলায় ফিরে আসে এবং প্রভুত্বের নির্দিষ্ট দিকটি বিচার করে। এই বিচারটি বাজারের সমর্থনকারী চাপের অবস্থান গণনা করে দেখা হয় যে কোনও ব্রেকআপের লক্ষণ রয়েছে কিনা। যদি কোনও স্পষ্ট ব্রেকআপ থাকে তবে এটি নিশ্চিত করে যে প্রভুত্বটি যে দিকটি বেছে নিয়েছে।
প্রধান শক্তির দিকনির্দেশনা নির্ধারণের পরে, কৌশলটি ভুল বিচার এড়াতে পুনরায় যাচাইয়ের জন্য বিভিন্ন সহায়ক প্রযুক্তিগত সূচকগুলিও প্রবর্তন করে। বিশেষত, MACD, KDJ ইত্যাদির মতো সূচকগুলি গণনা করা হবে যাতে এটি মূল শক্তির দিকনির্দেশের সাথে সামঞ্জস্যপূর্ণ কিনা তা বিচার করা যায়।
কৌশলটি কেবল তখনই অবস্থান তৈরি করে যখন প্রধান দিকনির্দেশ এবং সহায়ক সূচক উভয়ই একই দিকের সংকেত দেয়। এটি কার্যকরভাবে ট্রেডিং ফ্রিকোয়েন্সি নিয়ন্ত্রণ করে এবং কেবলমাত্র উচ্চ সম্ভাব্যতার ক্ষেত্রে প্রবেশ করে।
পজিশন তৈরির পর, পাওয়ার ট্র্যাকিং কৌশলটি রিয়েল-টাইমে মূল্যের পরিবর্তনগুলি অনুসরণ করে এবং এটিআর মানের সম্প্রসারণকে স্টপ সিগন্যাল হিসাবে ব্যবহার করে। এটি আবার বাজারে প্রবেশের নির্দেশ দেয়।
এছাড়াও, যদি দাম একটি নির্দিষ্ট পরিসীমা অতিক্রম করে তবে পুনরুদ্ধারটি বন্ধ হয়ে যায়। এটি স্বাভাবিক প্রযুক্তিগত পুনরুদ্ধারের অংশ, এবং ঝুঁকি নিয়ন্ত্রণের সাথে সাথে ক্ষতি বন্ধ করা দরকার।
পাওয়ার ট্র্যাকিং কৌশলগুলির সর্বাধিক সুবিধা হ’ল এটি অত্যন্ত পদ্ধতিগত এবং প্রবিধানযুক্ত। এর লেনদেনের যুক্তিগুলি পরিষ্কার, প্রতিটি প্রবেশ এবং প্রস্থান সম্পর্কে সুস্পষ্ট নীতিমালা এবং নিয়ম রয়েছে, অবাঞ্ছিত লেনদেনের কোনও পরিস্থিতি নেই।
এই কৌশলটি বেশ প্রতিলিপিযোগ্য, যাতে ব্যবহারকারীরা দীর্ঘমেয়াদী অ্যাপ্লিকেশনগুলি কনফিগার করতে পারে, কোনও ম্যানুয়াল হস্তক্ষেপ ছাড়াই।
কৌশলটি বহু-স্তরের ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা যেমন প্রধান বিচার, সহায়ক যাচাইকরণ, স্টপ লিনের গঠন ইত্যাদি কার্যকরভাবে অ-সিস্টেমিক ঝুঁকি নিয়ন্ত্রণ করতে পারে।
বিশেষত, কৌশলটি কেবলমাত্র উচ্চ সম্ভাব্যতার ক্ষেত্রে পজিশন খোলার এবং বৈজ্ঞানিকভাবে স্টপ লস সেট করার জন্য ব্যবহৃত হয়, যাতে ক্ষতির বিস্তার এড়ানো যায়। এটি তহবিলের স্থিতিশীল বৃদ্ধি নিশ্চিত করে।
সংক্ষিপ্ত লাইন কৌশলগুলির তুলনায়, গতিশীলতা ট্র্যাকিং কৌশলগুলির দীর্ঘতর অবস্থানকালীন সময়কাল রয়েছে এবং প্রতিবারের চেয়ে বেশি লাভ হয়। এটি কৌশলটির সামগ্রিক আয়কে আরও স্থিতিশীল এবং টেকসই করে তোলে।
এবং, কৌশলটি মাঝারি এবং লম্বা লাইনের প্রবণতা অনুসরণ করে, ট্রেডের অস্থিরতাকে পুরোপুরি ক্যাপচার করে, যা বড় ট্রেডিং ট্রেডের ক্ষেত্রে বিশেষভাবে স্পষ্ট।
পাওয়ার ট্র্যাকিং কৌশলটি আরও অনেক প্যারামিটার জড়িত, যেমন এটিআর প্যারামিটার, ব্রেকথ্রু প্যারামিটার, স্টপ লস প্যারামিটার ইত্যাদি। এই প্যারামিটারগুলির মধ্যে একটি নির্দিষ্ট সম্পর্ক রয়েছে এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে পুনরাবৃত্তি পরীক্ষার প্রয়োজন।
যদি প্যারামিটারগুলি ভুলভাবে কনফিগার করা হয়, তবে এটি খুব সহজেই ট্রেডিং ফ্রিকোয়েন্সি বা ঝুঁকি নিয়ন্ত্রণের অভাবের সমস্যার কারণ হতে পারে। এটি ব্যবহারকারীদের কৌশলগত অপ্টিমাইজেশনের কিছু অভিজ্ঞতা প্রয়োজন।
কৌশলগত মূল্যায়ন এবং সূচক সংকেতগুলি মূল্যায়ন করার জন্য মূল্যের ব্রেকডাউনগুলির উপর নির্ভর করে। তবে ব্রেকডাউন অপারেশনের সময়, মিথ্যা ব্রেকডাউনগুলি ঘটতে পারে, যার ফলে পজিশনের সম্ভাবনা বেশি থাকে।
এই কৌশলটি একটি অভ্যন্তরীণ দুর্বলতা।
মেশিন লার্নিং অ্যালগরিদমের সাহায্যে প্যারামিটারগুলির মধ্যে স্বয়ংক্রিয়ভাবে সম্পর্ক সনাক্ত করা যায় এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পাওয়া যায়। এটি ম্যানুয়াল টেস্টিংয়ের চেয়ে অনেক বেশি দক্ষ।
বিশেষ করে, EnvironmentError অ্যালগরিদম ব্যবহার করে, ক্রমাগত প্যারামিটার পুনরাবৃত্তির উপর ভিত্তি করে, কৌশলগত লাভকে সর্বাধিকতর করতে পারে।
বিদ্যমান সূচকগুলির উপর ভিত্তি করে, আরও সহায়ক ফিল্টারগুলি যেমন লেনদেনের পরিমাণ সূচক, তহবিল প্রবাহ সূচক ইত্যাদি প্রবর্তন করা যেতে পারে, তিন থেকে চারবারের মধ্যে ব্রেকআপ সংকেত যাচাই করা যায়, যা নির্ভরযোগ্যতা বেশি।
কিন্তু অনেকগুলি ফিল্টারও মিসড সুযোগ সৃষ্টি করতে পারে, যার জন্য ফিল্টারিংয়ের তীব্রতাকে ভারসাম্যপূর্ণ করা প্রয়োজন।
গতি ট্র্যাকিং কৌশলটি অন্যান্য কৌশলগুলির সাথে ব্যবহার করা হয়, যা বিভিন্ন কৌশলগুলির সুবিধা গ্রহণ করে, সামগ্রিক স্থিতিশীলতা বাড়ায় এবং সামগ্রিক স্থিতিশীলতা বাড়ায়।
উদাহরণস্বরূপ, সংযুক্ত স্বল্পমেয়াদী বিপরীত কৌশল, বিপরীত ট্রেডিং খোলার পরে বিপরীত ট্রেডিং, আরও বেশি মুনাফা লক করতে পারে।
গতিশীলতা ট্র্যাকিং ট্রেডিং কৌশল সামগ্রিকভাবে একটি সুপারিশযোগ্য পদ্ধতিগত প্রবণতা ট্র্যাকিং কৌশল। এটির ট্রেডিং লজিক পরিষ্কার, ঝুঁকি নিয়ন্ত্রণে রয়েছে, যা ব্যবহারকারীদের জন্য স্থিতিশীল এবং দক্ষ বিনিয়োগের রিটার্ন আনতে পারে।
কিন্তু কৌশল নিজেই কিছু অভ্যন্তরীণ ত্রুটি আছে, যা ব্যবহারকারীর প্যারামিটার অপ্টিমাইজেশান এবং কৌশল সমন্বয় ক্ষমতা প্রয়োজন, যাতে কৌশলটি সর্বাধিক কার্যকর হতে পারে। সামগ্রিকভাবে, গতিশীলতা ট্র্যাকিং কৌশলটি একটি পরিমাণযুক্ত পণ্য যা কৌশল প্রেমীদের ব্যবহারের জন্য উপযুক্ত।
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-15 01:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Created by frasmac2k Strategy credit to Alex Morris
//@version=5
strategy("Mechanical", shorttitle="MECH", overlay=true)
// Get the current date and time
currentYear = year
currentMonth = month
currentDay = dayofmonth
// Create a timestamp for the present date and time
currentTimestamp = timestamp(currentYear, currentMonth, currentDay)
// Define time interval for backtesting
dStart = input(timestamp('2023-07-01'), title='Set Start date', tooltip='Select a start date to run the script from')
// Define direction of strategy
direction = input.string('Forward',title='Direction', tooltip='Forward will go LONG on a Green anchor candle. Inverse will go short on a Green anchor candle and vice versa for Red candle', options=['Forward', 'Inverse'])
// Define the anchor hour as user input with a range of 0 to 23
anchorHour = input.int(11, title="Anchor Hour", tooltip='Set the hour to trade', minval=0, maxval=23)
// Define the take profit and stop loss in pips
takeProfitPips = input.int(10, title='Define TP Pips', tooltip='How many pips do you want to set TP. Choose a sensible value related to the instrument', minval=5)
stopLossPips = input.int(10,'Define SL Pips', tooltip='How many pips do you want to set SL. Choose a sensible value related to the instrument', minval=5)
// Define Tick size
tick10p = input.int(100, title='tick size', tooltip='Choose how many ticks equal 10 pips. This can vary by broker so measure 10 pips on the chart and select how many ticks that equates to. Forex is typically 100. Some instruments such as indices can be 1000', options=[100,1000])
// Declare TP/SL variables
var float takeProfit = na
var float stopLoss = na
// Calculate take profit and stop loss levels in ticks
if tick10p == 100
takeProfit := takeProfitPips * 10
stopLoss := stopLossPips * 10
if tick10p == 1000
takeProfit := takeProfitPips * 100
stopLoss := stopLossPips * 100
// Declare offset time
var int offset = na
if currentTimestamp > timestamp('2023-10-29')
offset := 4
else
offset := 5
//adjust for exchange time
anchorHour := anchorHour - offset
// Define the anchor hour as user input with a range of 0 to 23
tradeHour = anchorHour
// Define logical check for strategy date range
isStratTime = true
// Calculate the time condition for placing the order at the user-defined hour (start of the next hour)
isTradeTime = true
// Logic condition for forwards or inverse
isForward = direction == 'Forward'
isInverse = direction == 'Inverse'
// Declare entry condition variables
var bool longCondition = na
var bool shortCondition = na
// Declare and initialize variables for anchorCandle open and close prices
var float anchorOpen = na
var float anchorClose = na
var float tradeOpen = na
var float tradeClose = na
// Set logic by direction
if isForward
// Strategy logic
if isTradeTime and isStratTime
//Obtain candle open/close
anchorOpen := open
anchorClose := close
// Define entry conditions
longCondition := anchorClose > anchorOpen
shortCondition := anchorClose < anchorOpen
// Entry logic
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
if isInverse
// Strategy logic
if isTradeTime and isStratTime
//Obtain candle open/close
anchorOpen := open
anchorClose := close
// Define entry conditions
shortCondition := anchorClose > anchorOpen
longCondition := anchorClose < anchorOpen
// Entry logic
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL')
// Define the time range for the background shade
startHour = anchorHour
startMinute = 0
endHour = anchorHour
endMinute = 0
// Check if the current time is within the specified range
isInTimeRange = (hour == startHour and minute >= startMinute) or (hour == endHour and minute <= endMinute) or (hour > startHour and hour < endHour)
// Define the background color for the shade
backgroundColor = color.new(color.red, 90)
// Apply the background shade
bgcolor(isInTimeRange ? backgroundColor : na)