
یہ حکمت عملی غیر معمولی اضافے کی K لائن کی نشاندہی کرکے فیصلہ کرتی ہے کہ آیا موجودہ مارکیٹ میں اچانک یکطرفہ رویہ موجود ہے۔ جب غیر معمولی اضافے کی K لائن کی نشاندہی کی جاتی ہے تو ، اس K لائن کی اونچائی کے قریب خرید و فروخت کے احکامات مرتب کیے جاتے ہیں ، اور اس سے پہلے کی K لائن کی نچلی سطح کے قریب اسٹاپ نقصان کے احکامات مرتب کیے جاتے ہیں ، جس سے اعلی بیعانہ خطرے کا کنٹرول ہوتا ہے۔ حکمت عملی اصل وقت میں اسٹاپ نقصان کی نگرانی کرتی ہے ، اور اگر قیمت نیچے کی طرف ٹوٹ جاتی ہے تو ، اسٹاپ نقصان کو فوری طور پر واپس لے لی جاتی ہے۔
یہ حکمت عملی بنیادی طور پر غیر معمولی اضافہ K لائن کی تشکیل کا فیصلہ کرتی ہے، جب بند> کھلی اور اعلی> اعلی[1] اور کم> کم[1] کی لائن پر ، یہ سمجھا جاتا ہے کہ موجودہ سائیکل میں غیر معمولی اضافے کی صورت حال ہے۔ اس وقت ایک طویل واحد داخلہ سگنل قائم کیا جائے گا ، جس میں داخلہ کی قیمت موجودہ K لائن کی اعلی ترین قیمت کے قریب ہوگی۔ اس کے ساتھ ہی اسٹاپ نقصان کی قیمت کو پچھلی 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 //