রিসোর্স লোড হচ্ছে... লোডিং...

এসটিআই ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-06-07 16:36:24
ট্যাগঃটিএসআইইএমএএটিআরথিম

img

সারসংক্ষেপ

এই কৌশলটি প্রধান ট্রেডিং সংকেত হিসাবে টিএসআই সূচক ব্যবহার করে। যখন টিএসআই সূচক তার সংকেত লাইন অতিক্রম করে এবং টিএসআই সূচকটি নিম্ন সীমা বা উপরের সীমা ছাড়িয়ে যায়, তখন কৌশলটি একটি খোলা অবস্থান সংকেত তৈরি করবে। একই সাথে, কৌশলটির কার্যকারিতা অনুকূল করার জন্য EMA এবং ATR এর মতো সূচকও ব্যবহার করে। কৌশলটি কেবল নির্দিষ্ট ট্রেডিং সেশনের মধ্যে চলে এবং ওভারট্রেডিং নিয়ন্ত্রণের জন্য সর্বনিম্ন ট্রেডিং ফ্রিকোয়েন্সি সেট করে।

কৌশল নীতি

  1. টিএসআই সূচক মান এবং সিগন্যাল লাইন মান গণনা করুন।
  2. বর্তমান সময়টি অনুমোদিত ট্রেডিং পরিসরের মধ্যে রয়েছে কিনা তা নির্ধারণ করুন, এবং বর্তমান বারটি সর্বনিম্ন নির্দিষ্ট সংখ্যক বারগুলি শেষ ট্রেড থেকে দূরে।
  3. যদি এসটিআই নির্দেশকটি নীচে থেকে সিগন্যাল লাইনের উপরে অতিক্রম করে এবং সিগন্যাল লাইনটি নির্দিষ্ট নিম্ন সীমাটির নীচে থাকে, তাহলে একটি দীর্ঘ সংকেত উৎপন্ন হয়।
  4. যদি টিএসআই নির্দেশকটি উপরে থেকে সিগন্যাল লাইনের নীচে অতিক্রম করে এবং সিগন্যাল লাইনটি নির্দিষ্ট উপরের সীমা অতিক্রম করে, একটি সংক্ষিপ্ত সংকেত উৎপন্ন হয়।
  5. যদি বর্তমানে লং পজিশন ধরে রাখা হয়, এসটিআই সূচকটি উপরে থেকে সিগন্যাল লাইনের নিচে অতিক্রম করার পরে, সমস্ত লং পজিশন বন্ধ করুন।
  6. যদি বর্তমানে একটি শর্ট পজিশন ধরে রাখা হয়, এসটিআই সূচকটি নীচে থেকে সিগন্যাল লাইনের উপরে অতিক্রম করার পরে, সমস্ত শর্ট পজিশন বন্ধ করুন।

সুবিধা বিশ্লেষণ

  1. কৌশল যুক্তি স্পষ্ট, টিএসআই সূচকের ক্রসটি খোলা এবং বন্ধ করার জন্য একমাত্র শর্ত হিসাবে ব্যবহার করে, যা সহজ এবং সহজেই বোঝা যায়।
  2. ট্রেডিং সেশন এবং ট্রেডিং ফ্রিকোয়েন্সি সীমাবদ্ধ করে ওভারট্রেডিংয়ের ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করা হয়।
  3. সময়মত স্টপ লস এবং স্টপ প্রফিট, যখন বিপরীত সংকেত আসবে, তখন সিদ্ধান্তে অবস্থান বন্ধ করুন, একটি একক লেনদেনের ঝুঁকি এক্সপোজার নিয়ন্ত্রণ করুন।
  4. এই কৌশলটির দৃঢ়তা বাড়ানোর জন্য EMA, ATR ইত্যাদির মতো একাধিক সূচক ব্যবহার করা হয়।

ঝুঁকি বিশ্লেষণ

  1. কৌশলটি টিএসআই সূচক পরামিতিগুলির নির্বাচনের জন্য বেশ সংবেদনশীল, এবং বিভিন্ন পরামিতিগুলি বড় পারফরম্যান্স পার্থক্য নিয়ে আসবে, যা সাবধানে বেছে নেওয়া প্রয়োজন।
  2. খোলার এবং বন্ধের শর্তগুলি তুলনামূলকভাবে সহজ, প্রবণতা মূল্যায়ন এবং অস্থিরতার সীমাবদ্ধতার অভাব রয়েছে এবং দোলনশীল বাজারে ক্ষতি হতে পারে।
  3. পজিশন ম্যানেজমেন্ট এবং ফান্ড ম্যানেজমেন্টের অভাবের কারণে, ড্রডাউন নিয়ন্ত্রণ করা কঠিন, একবার অবিচ্ছিন্ন ক্ষতির ফলে একটি বড় ড্রডাউন হবে।
  4. ট্রেন্ড ট্র্যাকিং না করে শুধুমাত্র লং-কোর্ট রিভার্সাল করলে অনেক ট্রেন্ড সুযোগ মিস হবে।

অপ্টিমাইজেশান দিক

  1. আরও শক্তিশালী প্যারামিটার সংমিশ্রণ খুঁজে পেতে টিএসআই সূচকের পরামিতিগুলি অনুকূল করুন। জেনেটিক অ্যালগরিদমের মতো স্বয়ংক্রিয় অপ্টিমাইজেশন পদ্ধতি ব্যবহার করা যেতে পারে।
  2. সফলতার হার বাড়ানোর জন্য একটি পজিশন খোলার সময় প্রবণতা দিক নির্বাচন করার জন্য MA বা MACD এর মতো প্রবণতা মূল্যায়ন সূচক যোগ করুন।
  3. উচ্চ অস্থিরতা বাজারের পরিবেশে লেনদেনের সংখ্যা কমাতে ATR এর মতো অস্থিরতা সূচক যুক্ত করুন।
  4. সাম্প্রতিক বাজারের কর্মক্ষমতা এবং অ্যাকাউন্টের নেট মূল্যের উপর ভিত্তি করে প্রতিটি ব্যবসায়ের অবস্থানের আকারকে গতিশীলভাবে সামঞ্জস্য করার জন্য একটি অবস্থান পরিচালনার মডেল প্রবর্তন করুন।
  5. ট্রেন্ড ট্র্যাকিং লজিক যোগ করা যেতে পারে ট্রেন্ড মার্কেটে অবস্থান ধরে রাখার জন্য বড় ট্রেন্ডগুলি ধরার কৌশলটির ক্ষমতা উন্নত করতে।

সংক্ষিপ্তসার

এই কৌশলটি টিএসআই সূচকের উপর ভিত্তি করে এবং টিএসআই এবং এর সিগন্যাল লাইনের ক্রসিংয়ের মাধ্যমে ট্রেডিং সংকেত উত্পন্ন করে। একই সাথে, এটি ঝুঁকি নিয়ন্ত্রণের জন্য ট্রেডিং সময় এবং ফ্রিকোয়েন্সি সীমাবদ্ধ করে। কৌশলটির সুবিধা হ'ল যুক্তিটি সহজ এবং স্পষ্ট, এবং এটি সময়মতো ক্ষতি এবং লাভ বন্ধ করে দেয়। তবে, অসুবিধা হ'ল প্রবণতা বিচার এবং অবস্থান পরিচালনার অভাব, টিএসআই পরামিতিগুলির সংবেদনশীলতা, এবং কেবল ট্রেন্ড রিভার্সাল মার্কেটকে ক্যাপচার করতে পারে যখন বাজারের অনুপস্থিতি হয়। ভবিষ্যতে, কৌশলটি প্রবণতা এবং অস্থিরতা বিচার, অবস্থান পরিচালনা এবং পরামিতি অপ্টিমাইজেশনের মতো দিক থেকে উন্নত করা যেতে পারে।


/*backtest
start: 2024-05-30 00:00:00
end: 2024-06-06 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nikgavalas

//@version=5
strategy("TSI Entries", overlay=true, margin_long=100, margin_short=100)

//
// INPUTS
//

// Define the start and end hours for trading
string sessionInput = input("1000-1530", "Session")

// Day of the week.
string daysInput = input.string("23456", tooltip = "1 = Sunday, 7 = Saturday")

// Minimum number of bar's between entries
requiredBarsBetweenEntries = input.int(12, "Required Bars Between Entries")

// Show debug labels
bool showDebugLabels = input.bool(false, "Show Debug Labels")

//
// FUNCTIONS
//

//@function Define the triple exponential moving average function
tema(src, len) => tema = 3 * ta.ema(src, len) - 3 * ta.ema(ta.ema(src, len), len) + ta.ema(ta.ema(ta.ema(src, len), len), len)

//@function Atr with EMA
atr_ema(length) =>
    trueRange = na(high[1])? high-low : math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
    //true range can be also calculated with ta.tr(true)
    ta.ema(trueRange, length)

//@function Check if time is in range
timeinrange() => 
    sessionString = sessionInput + ":" + daysInput
    inSession = not na(time(timeframe.period, sessionString, "America/New_York"))

//@function Displays text passed to `txt` when called.
debugLabel(txt, color, y, style) =>
    if (showDebugLabels) 
        label.new(bar_index, y, text = txt, color = color, style = style, textcolor = color.black, size = size.small)


//
// INDICATOR CODE
//

long = input(title="TSI Long Length", defval=8)
short = input(title="TSI Short Length", defval=8)
signal = input(title="TSI Signal Length", defval=3)
lowerLine = input(title="TSI Lower Line", defval=-50)
upperLine = input(title="TSI Upper Line", defval=50)

price = close
double_smooth(src, long, short) =>
	fist_smooth = ta.ema(src, long)
	ta.ema(fist_smooth, short)

pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsiValue = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
signalValue = ta.ema(tsiValue, signal)

//
// COMMON VARIABLES
//

var color trendColor = na
var int lastEntryBar = na

bool tradeAllowed = timeinrange() == true and (na(lastEntryBar) or bar_index - lastEntryBar > requiredBarsBetweenEntries)

// 
// CROSSOVER
//

bool crossOver = ta.crossover(tsiValue, signalValue)
bool crossUnder = ta.crossunder(tsiValue,signalValue)

if (tradeAllowed) 
	if (signalValue < lowerLine and crossOver == true)
		strategy.entry("Up", strategy.long)
		lastEntryBar := bar_index

	else if (signalValue > upperLine and crossUnder == true)

		strategy.entry("Down", strategy.short)
		lastEntryBar := bar_index

// 
// EXITS
// 

if (strategy.position_size > 0 and crossUnder == true)
	strategy.close("Up", qty_percent = 100)

else if (strategy.position_size < 0 and crossOver == true)
	strategy.close("Down", qty_percent = 100)


সম্পর্কিত

আরো