جوکر ٹریلنگ لے منافع کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-23 15:04:20
ٹیگز:

جائزہ

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

حکمت عملی منطق

یہ حکمت عملی مجموعی رجحان کی نشاندہی کرنے کے لئے تیز رفتار اور سست حرکت پذیر اوسط استعمال کرتی ہے۔ جب تیز رفتار ایم اے سست ایم اے کے اوپر عبور کرتا ہے تو یہ طویل ہوجاتا ہے ، اور جب تیز رفتار ایم اے سست ایم اے سے نیچے عبور کرتا ہے تو یہ مختصر ہوجاتا ہے۔

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

جب پوزیشن کی سمت سگنل سے مماثل ہوتی ہے تو ، اگر ٹریلنگ غیر فعال ہے تو منافع لینے کے لئے ایک حد کا آرڈر استعمال کیا جاتا ہے۔ اگر ٹریلنگ فعال ہے تو ، قدم کے سائز کی بنیاد پر منافع لینے کی قیمت کو ٹریک کیا جاتا ہے۔

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

  • چلتی اوسط مارکیٹ کے شور کو فلٹر کرتی ہے اور غلط سگنل سے بچتی ہے۔

  • ٹریلنگ ٹیک منافع منافع کی سطح کو متحرک طور پر قیمت کی کارروائی کی بنیاد پر ایڈجسٹ کرتا ہے۔ یہ فکسڈ ٹیک منافع کی قیمت سے زیادہ لچکدار ہے۔

  • منافع لینے کے پیچھے آنے سے زیادہ منافع میں تالا لگ جاتا ہے اور منافع واپس دینے کا موقع کم ہوجاتا ہے۔ یہ ایک مقررہ منافع لینے کی سطح کے ساتھ بہت جلد باہر نکلنے سے بھی بچتا ہے۔

  • سٹاپ نقصان کا فنکشن اس حکمت عملی کو اجازت دیتا ہے کہ جب رجحان الٹ جاتا ہے تو اس سے پہلے ہی باہر نکلیں.

خطرے کا تجزیہ

  • متحرک اوسط بڑے پیمانے پر قیمتوں میں اتار چڑھاؤ کے دوران غلط سگنل یا تاخیر پیدا کرسکتے ہیں۔ اس سے غلط سمت کی تجارت سے نقصانات ہوسکتے ہیں۔ ایم اے پیرامیٹرز کی اصلاح اور فلٹرز کا اضافہ مدد کرسکتا ہے۔

  • منافع لینے کا تناسب بہت زیادہ مقرر ہونے سے انعقاد کی مدت اور اصل اور متوقع منافع لینے کی قیمت کے درمیان انحراف بڑھ جاتا ہے۔ تناسب کو کم کرنے سے یہ خطرہ کم ہوجاتا ہے۔

  • ایک پیچھے آنے والا قدم بہت چھوٹا ہوتا ہے جس کی وجہ سے آرڈر کی زیادہ تازہ کاری ہوتی ہے اور فیس اور سکڑ بڑھ جاتی ہے۔ پیچھے آنے والے آفسیٹ کی اصلاح کی ضرورت ہے۔

  • ٹریلنگ ٹی پی صرف اوپر کی طرف بڑھتا ہے اور ڈراؤونگ پر غور نہیں کرتا ہے۔ اس سے اصل اور متوقع منافع لینے کی قیمت کے درمیان انحراف ہوسکتا ہے۔ دو طرفہ ٹریلنگ میکانزم مدد کرسکتا ہے۔

اصلاح کی ہدایات

  • متغیرات کی بنیاد پر ایم اے پیرامیٹرز کی متحرک ایڈجسٹمنٹ پر غور کریں۔ جب اتار چڑھاؤ بڑھتا ہے تو بڑے عرصے اور جب اتار چڑھاؤ کم ہوتا ہے تو چھوٹے عرصے.

  • ریسرچ مختلف مصنوعات اور مارکیٹوں کے لئے منافع کے تناسب کو بہتر بنانے کے لئے انحراف کے خطرے کو کم سے کم کرنے کے لئے.

  • دو طرفہ ٹریلنگ میکانزم کو دریافت کریں تاکہ اوپر اور نیچے دونوں طرف ٹریل کریں۔ اس سے منافع کو قیمت کے قریب رکھا جاسکے گا۔

  • کمزور رجحانات میں منافع لینے کے تناسب کو کم کرنے اور مضبوط رجحانات میں اضافہ کرنے کے لئے رجحان کی طاقت کے اشارے شامل کریں.

  • مشین لرننگ ماڈلز کے ساتھ مل کر متوقع قیمت کی حدوں کی بنیاد پر منافع لینے کے تناسب کو متحرک طور پر مقرر کریں۔

نتیجہ

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


/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='Joker Trailing TP Bot', shorttitle='Joker TTP Bot', overlay=true, pyramiding=0, process_orders_on_close=false, close_entries_rule='ANY', calc_on_every_tick=false, calc_on_order_fills=false, commission_type=strategy.commission.percent, commission_value=0.07, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.USD) //, max_labels_count=500)

fromDate = input(timestamp('01 Jan 2021 00:00 UTC'), 'From Date')
toDate = input(timestamp('31 Dec 2121 23:59 UTC'), 'To Date')
fastMALen = input.int(23, 'Fast SMA Length')
slowMALen = input.int(50, 'Slow SMA Length')
longTakeProfitPerc = input.float(0.5, 'Long Take Profit %', minval=0.05, step=0.05) * 0.01
shortTakeProfitPerc = input.float(0.5, 'Short Take Profit %', minval=0.05, step=0.05) * 0.01
enableTrailing = input.bool(true, 'Enable Trailing')
trailingTakeProfitPerc = input.float(0.01, 'Trailing Take Profit %', minval=0.01, maxval=100, step=0.01) * 0.01

float fastMA = ta.sma(close, fastMALen)
float slowMA = ta.sma(close, slowMALen)
bool isWithinPeriod = true
bool openLongPosition = isWithinPeriod and ta.crossover(fastMA, slowMA)
bool openShortPosition = isWithinPeriod and ta.crossunder(fastMA, slowMA)
bool longIsActive = openLongPosition or strategy.position_size > 0
bool shortIsActive = openShortPosition or strategy.position_size < 0

float longTakeProfitPrice = na
longTakeProfitPrice := if longIsActive
    if openLongPosition and not (strategy.position_size > 0)
        close * (1 + longTakeProfitPerc)
    else
        nz(longTakeProfitPrice[1], close * (1 + longTakeProfitPerc))
else
    na

float shortTakeProfitPrice = na
shortTakeProfitPrice := if shortIsActive
    if openShortPosition and not (strategy.position_size < 0)
        close * (1 - shortTakeProfitPerc)
    else
        nz(shortTakeProfitPrice[1], close * (1 - shortTakeProfitPrice))
else
    na

float longTrailingTakeProfitStepTicks = longTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick
float shortTrailingTakeProfitStepTicks = shortTakeProfitPrice * trailingTakeProfitPerc / syminfo.mintick

strategy.entry(id = 'Long Entry', direction = strategy.long, when = openLongPosition, alert_message = 'Long(' + syminfo.ticker + '): Started')
strategy.entry(id = 'Short Entry', direction = strategy.short, when = openShortPosition, alert_message = 'Short(' + syminfo.ticker + '): Started')
strategy.exit(id = 'Long Take Profit', from_entry = 'Long Entry', limit = enableTrailing ? na : longTakeProfitPrice, trail_price = enableTrailing ? longTakeProfitPrice : na, trail_offset = enableTrailing ? longTrailingTakeProfitStepTicks : na, when = longIsActive, alert_message = 'Long(' + syminfo.ticker + '): Take Profit activated')
strategy.exit(id = 'Short Take Profit', from_entry = 'Short Entry', limit = enableTrailing ? na : shortTakeProfitPrice, trail_price = enableTrailing ? shortTakeProfitPrice : na, trail_offset = enableTrailing ? shortTrailingTakeProfitStepTicks : na, when = shortIsActive, alert_message = 'Short(' + syminfo.ticker + '): Take Profit activated')

plot(series = fastMA, title='Fast SMA', color = color.blue, linewidth = 1, style = plot.style_line)
plot(series = slowMA, title='Slow SMA', color = color.orange, linewidth = 1, style = plot.style_line)
plot(series = longTakeProfitPrice, title='Long Take Profit', color = color.green, linewidth = 1, style = plot.style_cross, offset = 1)
plot(series = shortTakeProfitPrice, title='Short Take Profit', color = color.red, linewidth = 1, style = plot.style_cross, offset = 1)
plot(series = strategy.position_avg_price, title='Position', color = color.white, linewidth = 1, style = plot.style_linebr)


مزید