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

اندرونی طول و عرض سٹاپ نقصان پر مبنی مومنٹم بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-23 14:14:58
ٹیگز:

img

جائزہ

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

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

یہ حکمت عملی بنیادی طور پر غیر معمولی بڑھتی ہوئی K لائنوں کی تشکیل کا جائزہ لیتی ہے۔ جب ایک K لائن بند> کھلی اور اعلی < اعلی [1] اور کم > کم [1] ظاہر ہوتی ہے تو ، اس کا خیال ہے کہ غیر معمولی بڑھتی ہوئی مارکیٹ کی موجودہ مدت موجود ہے۔ ایک طویل انٹری سگنل تیار کیا جائے گا ، جس میں موجودہ K لائن کی سب سے زیادہ قیمت کے قریب انٹری قیمت ہوگی۔ اسٹاپ نقصان کی قیمت بھی پچھلی K لائن کی سب سے کم قیمت کے قریب طے کی جاتی ہے تاکہ ایک اعلی بیعانہ رسک کنٹرول ماڈل تشکیل دیا جاسکے۔ اسٹاپ نقصان کی لائن کی قیمت کی خرابی کی مسلسل نگرانی کرکے رسک کنٹرول حاصل کیا جاتا ہے۔

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

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

خطرے کا تجزیہ

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

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

حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. غیر معمولی اضافے کا جائزہ لینے کے معیار حکمت عملی میں تجارتی سگنل کے فیصلوں کی درستگی کو بہتر بنانے کے لئے فیصلوں میں مدد کے لئے مزید اشارے یا گہری سیکھنے کے ماڈل متعارف کروا سکتے ہیں۔

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

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

  4. حکمت عملی کے اندراج کے معیار کو ایڈجسٹ کیا جاسکتا ہے اور انہیں غیر معمولی اضافے والی K لائنوں تک محدود رہنے کی ضرورت نہیں ہے۔ مزید اشارے اور ماڈلز کو مل کر فیصلے کرنے اور متعدد تصدیق کے طریقہ کار کو تشکیل دینے کے لئے ملایا جاسکتا ہے۔

خلاصہ

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


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

// LOVE JOY PEACE PATIENCE KINDNESS GOODNESS FAITHFULNESS GENTLENESS SELF-CONTROL 
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JoshuaMcGowan
// I needed to test/verify the functionality for canceling an open limit order in a strategy and also work thru the pieces needed to set the position sizing so each loss is a set amount. 
// This is not meant to be dropped into a chart but rather gives the code/logic in order to use in your own script w/alerts or strategy. Hope it helps. 
 
//@version=4
strategy("Strategy Test - Cancel Limit Order and Position Sizing", overlay=true, precision=4)
 
/////////////////
// Backtest Period Selection
 
testStartYear = input(2020, "Backtest Start Year",minval=1980)
testStartMonth = input(2, "Backtest Start Month",minval=1,maxval=12)
testStartDay = input(1, "Backtest Start Day",minval=1,maxval=31)
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
 
testStopYear = input(2020, "Backtest Stop Year",minval=1980)
testStopMonth = input(12, "Backtest Stop Month",minval=1,maxval=12)
testStopDay = input(31, "Backtest Stop Day",minval=1,maxval=31)
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
 
testPeriod() => time >= true
 
//////////////
// Inside Bar
bull_inside_bar = close>open and high<high[1] and low>low[1]

// Set Levels
bull_inside_bar_sl = valuewhen(bull_inside_bar, low[1], 0) - (1*syminfo.mintick)
bull_breakout_price = valuewhen(bull_inside_bar, high, 0) + (1*syminfo.mintick)
entry_buy   = high
inside_bar_dist = entry_buy - bull_inside_bar_sl
inside_bar_be = entry_buy + (inside_bar_dist * 1)
inside_bar_tgt = entry_buy + (inside_bar_dist * 2)

///////////////////
// Position Sizing 
//////////////////
// For each trade setup that fires in this scenario we want to set our total loss amount in USD, so every trade that loses is lets say $1 and the 2:1 target would be $2 in this example. 
// The math logic for this take the risk amount and divide by the stop percentage, take that number and divide by leverage amount chosen. Stop percentage is a variable below if questions on that. 
//
// Taken from @JoshuaMorris (shout out to the UK peeps) position sizing google doc so thank you sir. 
// Would be used if risking based on percentage of a portfolio. Leaving code snippets here in case that's the direction someone wants to go. 
// xbt_price = security("BITMEX:XBTUSD", "D", close)
// account_size_xbt = input(1, "Account Size (XBT)", type=input.float)
// account_size_usd = (account_size_xbt * xbt_price)
// percentage_risk = input(0.01, "Personal Risk Percent - Default is 1%", type=input.float)
// personal_risk = (account_size_usd * percentage_risk)
// position_size_usd = (personal_risk) / risk_percent
// leverage_req = position_size_usd / account_size_usd

// Will want to hard code leverage as 1x, 5x, 10x etc and dont need it to automagically be set as is above. If you're doing 100x you are gnarly haha. 
leverage_amount = input(title="Leverage Amount Desired", type=input.integer, defval=10, options=[1, 2, 3, 5, 10, 25, 50, 100])
risk_amount = input(title="Risk Total Per Trade in USD", type=input.integer, defval=1, minval=1, step=1)

// Reminder this is for Longs. Math needs to be changed a bit for Shorts. This is the information using the long/short tool would give us if doing manually. 
stop_percent = inside_bar_dist / (entry_buy)
pos_size_no_lev = risk_amount / stop_percent
pos_size_with_lev = pos_size_no_lev / leverage_amount 

//////////////
// Strategy Section

if testPeriod()
    strategy.entry(id="Long", long=true, qty=1, limit=9320.00, when=bull_inside_bar)
    strategy.cancel(id="Long", when = low < 9310)
// as a test swap the price to be above the limit or below to see the cancel in play.
 
//////////////
// Plot Section
plotchar(bull_inside_bar, title="bull_inside_bar", char="🐂", location=location.belowbar, offset=-0, color=color.green, transp=25)
plot(bull_inside_bar_sl, title="bull_inside_bar_sl", transp=100)
plot(entry_buy, title="entry_buy", transp=100)
plot(inside_bar_dist, title="inside_bar_dist", transp=100)
plot(stop_percent, title="stop_percent", transp=100)
plot(pos_size_no_lev, title="pos_size_no_lev", transp=100)
plot(pos_size_with_lev, title="pos_size_with_lev", transp=100)

// Hidden Plots // For Data Window Eyes Only // 
// plot(longCondition==true?1:0, title="Long Condition", transp=100)
// plot(xbt_price, title="XBT Price", transp=100)
// plot(account_size_usd, title="Account Size USD", transp=100)
// plot(risk_percent, title="risk_percent", transp=100)
// plot(position_size_usd, title="position_size_usd", transp=100)
// plot(leverage_req, title="leverage_req", transp=100)

// END //

مزید