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

اصلی کچھیچٹان کی کچھی کی طرح مضبوط حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-18 14:34:40
ٹیگز:

img

جائزہ

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

اصول

داخلے کا اصول

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

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

باہر نکلنے کا اصول

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

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

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

پوزیشن سائزنگ

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

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

مستحکم آپریشن

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

کھپت کے خلاف مزاحمت

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

خطرے کی روک تھام

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

خطرے کا تجزیہ

خرابی کا خطرہ

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

پیرامیٹر کی اصلاح کا خطرہ

جامد حکمت عملی کے پیرامیٹرز جیسے انٹری / ایگزٹ پیریڈ غیر قانونی ہوسکتے ہیں اگر مارکیٹ کا نظام ڈرامائی طور پر بدل جائے۔ ان پیرامیٹرز کو اپنانے کے لئے دوبارہ تشخیص اور دوبارہ اصلاح کی ضرورت ہوگی۔

تکنیکی اشارے میں ناکامی کا خطرہ

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

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

رجحان فلٹر شامل کریں

عام رجحان کے اشارے جیسے ایم اے ، ایم اے سی ڈی شامل کیے جاسکتے ہیں۔ صرف اپ ٹرینڈ میں لمبا اور صرف ڈاؤن ٹرینڈ میں مختصر ہوجائیں تاکہ انسداد رجحان کے وِپساؤ سے بچ سکیں۔

ٹائم فریم کا خلاصہ

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

متحرک پیرامیٹر ٹوننگ

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

خلاصہ

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


/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Real Turtle", shorttitle = "Real Turtle", overlay=true, pyramiding=1, default_qty_type= strategy.percent_of_equity,calc_on_order_fills=false, slippage=25,commission_type=strategy.commission.percent,commission_value=0.075)
//////////////////////////////////////////////////////////////////////
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
// Use if using a specific date range
testPeriodBackground = input(title="Color Background?", type=bool, defval=false)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop
//////////////////////////////////////////////////////////////////////

//How many candles we want to determine our position entry
enterTrade = input(20, minval=1, title="Entry Channel Length")
//How many candles we want ot determine our position exit
exitTrade = input(10, minval=1, title="Exit Channel Length")

//True Range EMA Length
trLength = input(13, minval=1, title="True Range Length")
//Go all in on every trade
allIn = input(false, title="Use whole position on every trade")
dRisk = input(2, "Use Desired Risk %")
//How much of emaTR to use for TS offset
multiEmaTR = input(2, "Desired multiple of ema Tr (N)")
//absolute value (highest high of of this many candles - lowest high of this many candles) . This is used if we want to change our timeframe to a higher timeframe otherwise just works like grabbing high o r low of a candle
//True range is calculated as just high - low. Technically this should be a little more complicated but with 24/7 nature of crypto markets high-low is fine.
trueRange = max(high - low, max(high - close[1], close[1] - low))
//Creates an EMA of the true range by our custom length
emaTR = ema(trueRange, trLength)
//Highest high of how many candles back we want to look as specified in entry channel for long
longEntry = highest(enterTrade)
//loweest low of how many candles back we want to look as specified in exit channel for long
exitLong = lowest(exitTrade)
//lowest low of how many candles back want to look as specified in entry channel for short
shortEntry = lowest(enterTrade)
//lowest low of how many candles back want to look as specified in exit channel for short
exitShort = highest(exitTrade)
//plots the longEntry as a green line
plot(longEntry[1], title="Long Entry",color=green)
//plots the short entry as a purple line
plot(shortEntry[1], title="Short Entry",color=purple)

howFar = barssince(strategy.position_size == 0)
actualLExit = strategy.position_size > 0 ? strategy.position_avg_price - (emaTR[howFar] * multiEmaTR) : longEntry - (emaTR * multiEmaTR)
actualLExit2 = actualLExit > exitLong ? actualLExit : exitLong
actualSExit = strategy.position_size < 0 ? strategy.position_avg_price + (emaTR[howFar] * multiEmaTR) : shortEntry + (emaTR * multiEmaTR)
actualSExit2 = actualSExit < exitShort ? actualSExit : exitShort

//plots the long exit as a red line
plot(actualLExit2[1], title="Long Exit",color=red)
//plots the short exit as a blue line
plot(actualSExit2[1], title="Short Exit",color=yellow)


//Stop loss in ticks
SLLong =(emaTR * multiEmaTR)/ syminfo.mintick
SLShort = (emaTR * multiEmaTR)/ syminfo.mintick


//Calculate our potential loss as a whole percentage number. Example 1 instead of 0.01 for 1% loss. We have to convert back from ticks to whole value, then divided by close
PLLong = ((SLLong * syminfo.mintick) * 100) / longEntry
PLShort = ((SLShort * syminfo.mintick) * 100) / shortEntry
//Calculate our risk by taking our desired risk / potential loss. Then multiple by our equity to get position size. we divide by close because we are using percentage size of equity for quantity in this script as not actual size.
//we then floor the value. which is just to say we round down so instead of say 201.54 we would just input 201 as TV only supports whole integers for quantity.
qtyLong = floor(((dRisk / PLLong) * strategy.equity) /longEntry )
qtyShort = floor(((dRisk / PLShort) * strategy.equity) /shortEntry )
qtyLong2 = allIn ? 100 : qtyLong
qtyShort2 = allIn ? 100 : qtyShort
//Only open long or short positions if we are inside the test period specified earlier
if testPeriod()
    //Open a stop market order at our long entry price and keep it there at the quantity specified. This order is updated/changed on each new candlestick until a position is opened
    strategy.entry("long", strategy.long, stop = longEntry, qty = qtyLong2) 
    //sets up or stop loss order by price specified in our actualLExit2 variable
    strategy.exit("Stoploss-Long", "long", stop=actualLExit2)
    
     //Open a stop market order at our short entry price and keep it there at the quantity specified. This order is updated/changed on each new candlestick until a position is opened
    strategy.entry("short", strategy.short, stop = shortEntry, qty = qtyShort2)
    //sets up or stop loss order by price specified in our actualLExit2 variable
    strategy.exit("Stoploss-Short", "short", stop=actualSExit2)



مزید