
এই কৌশলটি ইএমএ সূচক, ট্রেন্ড ট্র্যাকিং কৌশল টিটিএস এবং সুফ্টের ট্রেন্ডিং চক্রের এসটিসি তিনটি সূচকের সুবিধাগুলি ব্যবহার করে একটি শক্তিশালী সংক্ষিপ্ত লাইন ট্রেন্ডিং কৌশল তৈরি করে। বিশেষত, কৌশলটি একই সাথে তিনটি সূচকের শূন্য সংকেত সামঞ্জস্যপূর্ণ কিনা তা বিচার করে। যদি এটি সামঞ্জস্যপূর্ণ হয় তবে এটি একটি লেনদেনের সংকেত উত্পন্ন করে; যদি এটি সামঞ্জস্যপূর্ণ না হয় তবে এটি কেনা বেচা হয় না। এটি কিছু মিথ্যা সংকেতগুলিকে ফিল্টার করতে পারে এবং কৌশলটিকে আরও নির্ভরযোগ্য করে তোলে।
এই কৌশলটি মূলত তিনটি অংশ নিয়ে গঠিতঃ ইএমএ মসৃণকরণ সূচক, টিটিএস ট্রেন্ড ট্র্যাকিং কৌশল এবং এসটিসি সুইফ্ট ট্রেন্ড চক্র সূচক।
প্রথমত, 200-চক্রের ইএমএ সূচকের চলমান গড় গণনা করে, দামগুলি এই ইএমএ লাইনের নীচে বা উপরে রয়েছে কিনা তা নির্ধারণ করুন, যদি দামগুলি এই লাইনের নীচে থাকে তবে ইএমএ সূচকটি একটি শূন্যপদ সংকেত দেয়; -1; যদি দামগুলি এই লাইনের উপরে থাকে তবে ইএমএ সূচকটি একটি বহুপদ সংকেত দেয়ঃ
দ্বিতীয়ত, টিটিএস ট্রেন্ড ট্র্যাকিং কৌশল সম্পর্কিত প্রাসঙ্গিক প্যারামিটারগুলি গণনা করে, দামের বিপর্যয়ের উপর ভিত্তি করে ট্রেন্ডের দিকনির্দেশের বিচার করে। যদি দামটি ট্রেনে উঠে যায় তবে একটি মাল্টি-হেড সংকেত উত্পন্ন হয়; যদি দামটি ট্রেনে উঠে যায় তবে একটি ফাঁকা সংকেত উত্পন্ন হয় -১।
অবশেষে, সুইফ্ট ট্রেন্ডিং চক্রের STC সূচকটি গণনা করুন, যা মূল্য কেন্দ্রের পরিবর্তনের প্রবণতাকে প্রতিফলিত করে। যদি STC সূচকটি বৃদ্ধি পায় তবে একটি মাল্টি-হেড সংকেত উত্পন্ন হয়; যদি STC সূচকটি হ্রাস পায় তবে একটি খালি-হেড সংকেত উত্পন্ন হয়।
তিনটি সূচকের বিচার সংকেত পাওয়ার পরে, কৌশলটি সিদ্ধান্ত নেবে যে তারা একমত কিনা। কেবলমাত্র তিনটি সূচকের বিচার সংকেত একমত হলেই প্রকৃত লেনদেনের সংকেত উত্পন্ন হবে। এটি কিছু মিথ্যা সংকেতকে কার্যকরভাবে ফিল্টার করতে পারে এবং কৌশলটিকে আরও নির্ভরযোগ্য করে তোলে।
যদি ট্রেডিং সিগন্যাল তৈরি করা নিশ্চিত হয়, তবে একটি ওভার বা ডাইভার কমিশন করুন এবং স্টপ-স্টপ-লস সেট করুন।
এই কৌশলটি তিনটি ভিন্ন ধরণের সূচক ব্যবহার করে, যা বাজারের প্রবণতার দিকনির্দেশনা কার্যকরভাবে নির্ধারণ করতে পারে।
তিনটি সূচক judgment সংকেতের সামঞ্জস্য বিচার ব্যবহার করে জাল সংকেতগুলিকে ফিল্টার করা যায়, অপ্রয়োজনীয় লেনদেন হ্রাস করতে পারে এবং কৌশলগুলিকে আরও নির্ভরযোগ্য করে তোলে।
একটি যুক্তিসঙ্গত স্টপ লস পয়েন্ট সেট করুন, যাতে লাভের উপর লকিং করা যায় এবং ক্ষতির বিস্তার এড়ানো যায়।
এই প্যারামিটারগুলোকে বেশিরভাগ স্টক এবং ফরেক্সের জন্য অপ্টিমাইজ করা হয়েছে।
ট্রেডিং লজিক পরিষ্কার এবং সংক্ষিপ্ত, সহজে বোঝা এবং পরিবর্তন করা যায়।
তিনটি সূচক judgment মধ্যে অসঙ্গতি হলে, dimers দেখা দেয়, সহজেই ট্রেডিং সুযোগ মিস করা যায়। আপনি judgment নিয়ম অপ্টিমাইজ করার কথা বিবেচনা করতে পারেন।
এসটিসি সূচকগুলি প্যারামিটারগুলির জন্য বেশি সংবেদনশীল, বিভিন্ন জাতের প্যারামিটারগুলি সামঞ্জস্য করতে হবে।
মন্দা পরিস্থিতিতে, স্টপ লস অতিক্রম করা যেতে পারে, যার ফলে বড় ক্ষতি হয়। রিয়েল-টাইম অপ্টিমাইজেশন স্টপ লস পয়েন্ট বিবেচনা করা যেতে পারে।
“এটি এমন একটি পরিস্থিতি যেখানে আপনি যদি আপনার সমস্ত তথ্য একসাথে রাখেন তবে আপনি আপনার সমস্ত তথ্য একসাথে রাখবেন।
আপনি আরও সূচকগুলির সংমিশ্রণ পরীক্ষা করতে পারেন, আরও শক্তিশালী বিচার বিধি খুঁজতে পারেন। যেমন RSI সূচক যুক্ত করা ইত্যাদি।
STC সূচকগুলির সূচক প্যারামিটারগুলিকে বিভিন্ন জাতের জন্য আরও উপযুক্ত করে তোলে। স্বনির্ধারিত প্যারামিটার অপ্টিমাইজেশান মডিউল যুক্ত করা হয়েছে।
একটি স্বনির্ধারিত স্টপ লস মডিউল যুক্ত করা হয়েছে, যা রিয়েল-টাইমে স্টপ লস সেটআপের জন্য অনুকূলিতকরণ করে।
সমান্তরাল মডিউলটি উন্নত করুন, তির্যকভাবে সাজানোর জন্য এবং ফাঁদ এড়ানোর জন্য।
হাই ফ্রিকোয়েন্সি লেনদেনের জন্য অ্যালগরিদম অপ্টিমাইজ করা, সিস্টেমের বিলম্ব হ্রাস করা, অর্ডার সাফল্যের হার বাড়ানো।
এই কৌশলটি ইএমএ, টিটিএস এবং এসটিসির তিনটি সূচক ব্যবহার করে ট্রেডের প্রবণতার দিকনির্দেশের জন্য ব্যবহার করা হয়, যখন তিনজন একমত হয় তখন বিচার বিধিটি কার্যকরভাবে ট্রেডিং সংকেত উত্পন্ন করে, যাতে মিথ্যা সংকেতগুলি কার্যকরভাবে ফিল্টার করা যায়। কৌশলটির অপ্টিমাইজেশনের জন্য এখনও অনেক জায়গা রয়েছে, আরও সূচক সমন্বয় পরীক্ষা করে, স্ব-অনুকূলিতকরণ অ্যালগরিদম যুক্ত করে, উচ্চ-ফ্রিকোয়েন্সি ট্রেডিং মডিউলকে অনুকূলিত করে ইত্যাদির মাধ্যমে কৌশলটির কার্যকারিতা আরও জোরদার করা যায়। প্রবণতা অনুসরণ করার মতো সাধারণ কৌশলগুলির তুলনায়, এই কৌশলটি বাজারের আরও বুদ্ধিমানভাবে বিচার করতে পারে এবং প্রবণতা ধরে রাখার চেষ্টা করে।
/*backtest
start: 2022-12-05 00:00:00
end: 2023-04-14 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/
// © ajahanbin1374
//@version=5
strategy(title = "EMA + TTS + STC", shorttitle = "EMA + TTS + STC", overlay = true, calc_on_order_fills=false, calc_on_every_tick = false, initial_capital = 100, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, commission_value = 0.01)
////////////////////////////////////////////////////////////
// Strategy entry
////////////////////////////////////////////////////////////
profit = input.float(defval = 0.1, minval = 0.0, title="Profit %", step=0.01, group = "Strategy") * 0.01
////////////////////////////////////////////////////////////
// Emponential Moving Average
////////////////////////////////////////////////////////////
ema = ta.ema(close, 200)
posEma = close < ema ? -1 : 1
////////////////////////////////////////////////////////////
// Trend Trader Strategy
////////////////////////////////////////////////////////////
Length = input.int(21, minval=1, group="Trend Trader Strategy")
Multiplier = input.float(3, minval=0.000001, group="Trend Trader Strategy")
avgTR = ta.wma(ta.atr(1), Length)
highestC = ta.highest(Length)
lowestC = ta.lowest(Length)
hiLimit = highestC[1] - avgTR[1] * Multiplier
loLimit = lowestC[1] + avgTR[1] * Multiplier
ret = 0.0
posTts = 0.0
ret:= close > hiLimit and close > loLimit ? hiLimit :
close < loLimit and close < hiLimit ? loLimit : nz(ret[1], close)
posTts:= close > ret ? 1 :close < ret ? -1 : nz(posTts[1], 0)
////////////////////////////////////////////////////////////
// Schaff Trend Cycle (STC)
////////////////////////////////////////////////////////////
EEEEEE = input.int(12, 'Length', group ="Schaff Trend Cycle")
BBBB = input.int(26, 'FastLength', group ="Schaff Trend Cycle")
BBBBB = input.int(50, 'SlowLength', group ="Schaff Trend Cycle")
AAAA(BBB, BBBB, BBBBB) =>
fastMA = ta.ema(BBB, BBBB)
slowMA = ta.ema(BBB, BBBBB)
AAAA = fastMA - slowMA
AAAA
AAAAA(EEEEEE, BBBB, BBBBB) =>
AAA = input.float(0.5, group ="Schaff Trend Cycle")
var CCCCC = 0.0
var DDD = 0.0
var DDDDDD = 0.0
var EEEEE = 0.0
BBBBBB = AAAA(close, BBBB, BBBBB)
CCC = ta.lowest(BBBBBB, EEEEEE)
CCCC = ta.highest(BBBBBB, EEEEEE) - CCC
CCCCC := CCCC > 0 ? (BBBBBB - CCC) / CCCC * 100 : nz(CCCCC[1])
DDD := na(DDD[1]) ? CCCCC : DDD[1] + AAA * (CCCCC - DDD[1])
DDDD = ta.lowest(DDD, EEEEEE)
DDDDD = ta.highest(DDD, EEEEEE) - DDDD
DDDDDD := DDDDD > 0 ? (DDD - DDDD) / DDDDD * 100 : nz(DDDDDD[1])
EEEEE := na(EEEEE[1]) ? DDDDDD : EEEEE[1] + AAA * (DDDDDD - EEEEE[1])
EEEEE
mAAAAA = AAAAA(EEEEEE, BBBB, BBBBB)
mColor = mAAAAA > mAAAAA[1] ? color.new(color.green, 20) : color.new(color.red, 20)
posStc = mAAAAA > mAAAAA[1] ? 1 : -1
////////////////////////////////////////////////////////////
// Strategy entry
////////////////////////////////////////////////////////////
pos = posEma == 1 and posTts == 1 and posStc == 1 ? 1 : posEma == -1 and posTts == -1 and posStc == -1 ? -1 : 0
currentPostition = strategy.position_size > 0 ? 1 : strategy.position_size < 0 ? -1 : 0
noOpenPosition = strategy.position_size == 0
signal = pos != pos[1] and pos == 1 and noOpenPosition ? 1 : pos != pos[1] and pos == -1 and noOpenPosition ? -1 : 0
stopPriceForLong = math.min(close * (1 - profit), low[1] * 0.9998, low[2] * 0.9998)
limitPriceForLong = close + (close - stopPriceForLong)
stopPriceForShort = math.max(close * (1 + profit), high[1] * 1.0002, high[2] * 1.0002)
limitPriceForShort = close - (stopPriceForShort - close)
if signal == 1
strategy.entry(id="L", direction=strategy.long)
strategy.exit(id='EL', from_entry='L', limit=limitPriceForLong, stop=stopPriceForLong)
if signal == -1
strategy.entry(id="S", direction=strategy.short)
strategy.exit(id='ES', from_entry='S', limit=limitPriceForShort, stop=stopPriceForShort)
////////////////////////////////////////////////////////////
// Plots - Debuger
////////////////////////////////////////////////////////////
plotchar(signal, title='singal', char = '')
plotchar(posEma, title='posEma', char = '')
plotchar(posTts, title='posTts', char = '')
plotchar(pos, title='pos', char = '')
plotchar(currentPostition, title = 'currentPostition', char='')
plotchar(stopPriceForLong, title = "stopPriceForLong", char ='')
plotchar(limitPriceForLong, title = 'limitPriceForLong', char='')
plotchar(stopPriceForShort, title = "stopPriceForShort", char ='')
plotchar(limitPriceForShort, title = 'limitPriceForShort', char='')
////////////////////////////////////////////////////////////
// Plots
////////////////////////////////////////////////////////////
plot(ret, color=color.new(color.black, 0), title='Trend Trader Strategy')
plotchar(mAAAAA, color=mColor, title='STC', location = location.bottom, char='-', size=size.normal)
plot(series = ema, title = "ema")