وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ایس ٹی آئی کراس اوور کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-06-07 16:36:24
ٹیگز:ایس ٹی آئیای ایم اےاے ٹی آرتھیم

img

جائزہ

اس حکمت عملی میں ایس ٹی آئی اشارے کو مرکزی تجارتی سگنل کے طور پر استعمال کیا جاتا ہے۔ جب ایس ٹی آئی اشارے اپنی سگنل لائن کو عبور کرتا ہے ، اور ایس ٹی آئی اشارے نیچے کی حد سے نیچے یا اوپری حد سے اوپر ہوتا ہے تو ، حکمت عملی ایک کھلی پوزیشن سگنل تیار کرے گی۔ اسی وقت ، حکمت عملی کی کارکردگی کو بہتر بنانے کے لئے ای ایم اے اور اے ٹی آر جیسے اشارے بھی استعمال کرتی ہے۔ حکمت عملی صرف مخصوص تجارتی سیشنوں کے اندر چلتی ہے اور اوور ٹریڈنگ کو کنٹرول کرنے کے لئے کم سے کم تجارتی تعدد طے کرتی ہے۔

حکمت عملی کا اصول

  1. ایس ٹی آئی اشارے کی قیمت اور سگنل لائن کی قیمت کا حساب لگائیں۔
  2. اس بات کا تعین کریں کہ آیا موجودہ وقت قابل اجازت ٹریڈنگ رینج کے اندر ہے، اور موجودہ بار کم از کم آخری تجارت سے مخصوص کم از کم بار کی تعداد ہے.
  3. اگر ایس ٹی آئی اشارے نیچے سے سگنل لائن کے اوپر سے گزرتا ہے، اور سگنل لائن مخصوص کم حد سے نیچے ہے، تو ایک طویل سگنل پیدا ہوتا ہے.
  4. اگر ایس ٹی آئی اشارے اوپر سے سگنل لائن سے نیچے سے گزرتا ہے، اور سگنل لائن مخصوص اوپری حد سے اوپر ہے، تو ایک مختصر سگنل پیدا ہوتا ہے.
  5. اگر فی الحال ایک طویل پوزیشن ہے تو، ایک بار جب ایس ٹی آئی اشارے اوپر سے سگنل لائن سے نیچے گزر جاتا ہے تو، تمام طویل پوزیشنوں کو بند کردیں.
  6. اگر فی الحال ایک مختصر پوزیشن ہے تو، جب ایس ٹی آئی اشارے نیچے سے سگنل لائن کے اوپر سے گزرتا ہے تو، تمام مختصر پوزیشن بند کردیں.

فوائد کا تجزیہ

  1. حکمت عملی کا منطق واضح ہے، ایس ٹی آئی اشارے کے کراس کو کھولنے اور بند کرنے کے لئے واحد شرط کے طور پر استعمال کرتے ہوئے، جو سادہ اور سمجھنے میں آسان ہے.
  2. ٹریڈنگ سیشن اور ٹریڈنگ فریکوئنسی کو محدود کرکے، زیادہ ٹریڈنگ کے خطرے کو مؤثر طریقے سے کنٹرول کیا جاتا ہے.
  3. بروقت سٹاپ نقصان اور سٹاپ منافع، ایک بار ایک مخالف سگنل ظاہر ہوتا ہے، فیصلہ کن طور پر پوزیشن کو بند، ایک واحد لین دین کے خطرے کی نمائش کو کنٹرول.
  4. فیصلے میں مدد کے لئے متعدد اشارے استعمال کیے جاتے ہیں ، جیسے ای ایم اے ، اے ٹی آر وغیرہ ، حکمت عملی کی مضبوطی کو بڑھانا۔

خطرے کا تجزیہ

  1. یہ حکمت عملی ایس ٹی آئی اشارے کے پیرامیٹرز کے انتخاب کے لئے کافی حساس ہے، اور مختلف پیرامیٹرز کارکردگی میں بڑے اختلافات پیدا کریں گے، جن کو احتیاط سے منتخب کرنے کی ضرورت ہے.
  2. افتتاحی اور اختتامی شرائط نسبتاً سادہ ہیں، جن میں رجحان کی تشخیص اور اتار چڑھاؤ کی پابندیاں نہیں ہیں، اور اس کے نتیجے میں اتار چڑھاؤ والے بازاروں میں نقصانات ہو سکتے ہیں۔
  3. پوزیشن مینجمنٹ اور فنڈ مینجمنٹ کی کمی کے باعث، ڈراؤنڈ کو کنٹرول کرنا مشکل ہے، ایک بار جب مسلسل نقصان ایک بڑی ڈراؤنڈ کی قیادت کرے گا.
  4. صرف لمبی لمبی واپسی کرنا، رجحان کی پیروی نہیں کرنا، بہت سے رجحان کے مواقع کو کھو دے گا.

اصلاح کی سمت

  1. زیادہ مضبوط پیرامیٹر مجموعہ تلاش کرنے کے لئے TSI اشارے کے پیرامیٹرز کو بہتر بنائیں۔ خودکار اصلاح کے طریقے جیسے جینیاتی الگورتھم استعمال کیے جاسکتے ہیں۔
  2. کامیابی کی شرح کو بہتر بنانے کے لئے پوزیشن کھولتے وقت رجحان کی سمت کا انتخاب کرنے کے لئے رجحان کی تشخیص کے اشارے شامل کریں ، جیسے ایم اے یا ایم اے سی ڈی۔
  3. اعلی اتار چڑھاؤ مارکیٹ کے ماحول میں تجارت کی تعداد کو کم کرنے کے لئے اتار چڑھاؤ کے اشارے شامل کریں، جیسے اے ٹی آر.
  4. ایک پوزیشن مینجمنٹ ماڈل متعارف کروانا جس میں حالیہ مارکیٹ کی کارکردگی اور اکاؤنٹ کی خالص قیمت کی بنیاد پر ہر تجارت کے پوزیشن کے سائز کو متحرک طور پر ایڈجسٹ کیا جائے۔
  5. رجحان ٹریکنگ منطق کو رجحان مارکیٹ میں پوزیشنوں کو برقرار رکھنے کے لئے شامل کیا جا سکتا ہے تاکہ بڑی رجحانات کو پکڑنے کے لئے حکمت عملی کی صلاحیت کو بہتر بنایا جا سکے.

خلاصہ

یہ حکمت عملی TSI اشارے پر مبنی ہے اور TSI اور اس کی سگنل لائن کے کراس کے ذریعے تجارتی سگنل تیار کرتی ہے۔ ایک ہی وقت میں ، یہ خطرات کو کنٹرول کرنے کے لئے تجارتی وقت اور تعدد کو محدود کرتی ہے۔ حکمت عملی کا فائدہ یہ ہے کہ منطق آسان اور واضح ہے ، اور یہ وقت پر نقصان اور منافع کو روکتی ہے۔ تاہم ، نقصان یہ ہے کہ رجحان فیصلے اور پوزیشن مینجمنٹ کی کمی ، TSI پیرامیٹرز کے لئے حساسیت ، اور صرف رجحان کی واپسی کی مارکیٹ کو پکڑ سکتی ہے جبکہ مارکیٹ کو یاد رکھتی ہے۔ مستقبل میں ، حکمت عملی کو رجحان اور اتار چڑھاؤ کے فیصلے ، پوزیشن مینجمنٹ ، اور پیرامیٹر کی اصلاح جیسے پہلوؤں سے بہتر بنایا جاسکتا ہے۔


/*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)


متعلقہ

مزید