
متحرک سمندری طوفان کی رجحانات کی پیروی کرنے والی حکمت عملی سمندری طوفان کے تجارتی اصولوں پر مبنی ایک رجحانات کی پیروی کرنے والی حکمت عملی ہے۔ یہ سمندری طوفان کے اشارے کو رجحانات کی نشاندہی کرنے کے لئے استعمال کرتا ہے ، اور متحرک اشارے کے ساتھ مل کر کچھ شور تجارت کو فلٹر کرتا ہے۔ اس حکمت عملی کا بنیادی فائدہ یہ ہے کہ قیمتوں کے مضبوط رجحانات کو پکڑنے اور اضافی منافع حاصل کرنے کے قابل ہو۔
یہ حکمت عملی سمندری طوفان کے اشارے میں بنیادی توڑنے والے نظام کا استعمال کرتی ہے تاکہ رجحان کی سمت کا فیصلہ کیا جاسکے۔ خاص طور پر ، جب بند ہونے والی قیمت پچھلے 20 دن کی اونچائی سے اوپر ہو تو اس وقت زیادہ کام کریں ، اور جب بند ہونے والی قیمت پچھلے 20 دن کی اونچائی سے نیچے ہو تو اس کی حکمت عملی کو نیچے جانے کا اشارہ دیا جائے۔
شور کی تجارت کو فلٹر کرنے کے لئے ، اس حکمت عملی میں ایک متحرک عنصر بھی شامل کیا گیا ہے۔ اگر قیمت میں اتار چڑھاؤ 5 اے ٹی آر سے کم ہے تو حکمت عملی تجارت میں داخل نہیں ہوگی۔ یہ اس نقصان سے بچا جاسکتا ہے جس کی وجہ سے بہت کم تجارت ہوتی ہے۔
پوزیشن کھولنے کے بعد ، حکمت عملی ساحل سمندر کے اصول میں N قدر کو توڑ کر باہر نکل جاتی ہے۔ یہ نظام حالیہ 20 دن کی اعلی ترین اور کم ترین قیمتوں پر مبنی ہے جس کی بنیاد پر اسٹاپ نقصان کی پوزیشن طے کی جاتی ہے۔ مثال کے طور پر ، ایک سے زیادہ اسٹاپ نقصان کی قیمت پچھلے 20 دن کی کم ترین قیمت کے نیچے 2N کا اے ٹی آر ہے۔ حکمت عملی کا اسٹاپ نسبتا simple آسان ہے ، جو اکاؤنٹ کے کل اثاثوں کا 10٪ ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ یہ رجحانات کی نگرانی اور حجم کے انتظام کو ایک ساتھ جوڑتا ہے۔ سمندری ٹریڈنگ سسٹم قیمتوں کے درمیانی مدت کے رجحانات کو درست طریقے سے پکڑ سکتا ہے اور مارکیٹ کے شور سے پریشان ہونے سے بچ سکتا ہے۔ جبکہ اے ٹی آر متحرک حجم فلٹر کو شامل کرنے سے غیر ضروری تجارت کو مزید کم کیا جاسکتا ہے ، جس سے منافع کی گنجائش میں نمایاں اضافہ ہوتا ہے۔
اس حکمت عملی کے کچھ فوائد ہیں:
اگرچہ اس حکمت عملی میں بہتری کی گنجائش ہے ، لیکن اس میں کچھ ممکنہ خطرات بھی ہیں جن سے بچنے کی ضرورت ہے:
مندرجہ بالا خطرے کے تجزیے کے مطابق ، اس حکمت عملی میں کچھ اہم اصلاحات ہیں:
متحرک سیلاب رجحان ٹریکنگ حکمت عملی مجموعی طور پر ایک بہت ہی عملی درمیانی لمبی لائن رجحان ٹریکنگ اسکیم ہے۔ یہ سیلاب اشارے کے فیصلے کے رجحان اور اے ٹی آر اشارے کے جھٹکے کے فلٹر کو ایک ساتھ جوڑتا ہے ، جس سے مضبوط قیمت کے رجحان کو مؤثر طریقے سے مقفل کیا جاسکتا ہے۔ اس کے علاوہ ، حکمت عملی کا خطرہ کنٹرول اور پیرامیٹرز کی اصلاح بھی بہت اچھی طرح سے کی گئی ہے ، جس سے واپسی کی شرح کو کم کیا جاسکتا ہے۔ متحرک پوزیشن مینجمنٹ ، ریورس میکانزم اور منافع کے اہداف جیسے ماڈیول کو شامل کرنے کے ساتھ ، اس حکمت عملی کی تاثیر کو مزید بڑھایا جاسکتا ہے۔
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Heiken Ashi BF 🚀", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)
/////////////// Time Frame ///////////////
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)
testStopYear = input(2029, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)
testPeriod() => true
///////////// HA /////////////
haTicker = heikinashi(syminfo.tickerid)
haOpen = security(haTicker, "D", open)
haHigh = security(haTicker, "D", high)
haLow = security(haTicker, "D", low)
haClose = security(haTicker, "D", close)
///////////// Rate Of Change /////////////
source = close
roclength = input(30, minval=1)
pcntChange = input(7.0, minval=1)
roc = 100 * (source - source[roclength]) / source[roclength]
emaroc = ema(roc, roclength / 2)
isMoving() => emaroc > (pcntChange / 2) or emaroc < (0 - (pcntChange / 2))
/////////////// Strategy ///////////////
long = haOpen < haClose and isMoving()
short = haOpen > haClose and isMoving()
last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
last_open_long_signal = 0.0
last_open_short_signal = 0.0
last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1])
last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1])
last_long_signal = 0.0
last_short_signal = 0.0
last_long_signal := long_signal ? time : nz(last_long_signal[1])
last_short_signal := short_signal ? time : nz(last_short_signal[1])
in_long_signal = last_long_signal > last_short_signal
in_short_signal = last_short_signal > last_long_signal
last_high = 0.0
last_low = 0.0
last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1])
last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1])
sl_inp = input(2.0, title='Stop Loss %') / 100
tp_inp = input(5000.0, title='Take Profit %') / 100
take_level_l = strategy.position_avg_price * (1 + tp_inp)
take_level_s = strategy.position_avg_price * (1 - tp_inp)
since_longEntry = barssince(last_open_long_signal != last_open_long_signal[1])
since_shortEntry = barssince(last_open_short_signal != last_open_short_signal[1])
slLong = in_long_signal ? strategy.position_avg_price * (1 - sl_inp) : na
slShort = strategy.position_avg_price * (1 + sl_inp)
long_sl = in_long_signal ? slLong : na
short_sl = in_short_signal ? slShort : na
/////////////// Execution ///////////////
if testPeriod()
strategy.entry("L", strategy.long, when=long)
strategy.entry("S", strategy.short, when=short)
strategy.exit("L SL", "L", stop=long_sl, limit=take_level_l, when=since_longEntry > 0)
strategy.exit("S SL", "S", stop=short_sl, limit=take_level_s, when=since_shortEntry > 0)
/////////////// Plotting ///////////////
plotcandle(haOpen, haHigh, haLow, haClose, title='HA Candles', color = haOpen < haClose ? color.lime : color.red)
bgcolor(isMoving() ? long ? color.lime : short ? color.red : na : color.white, transp=70)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=50)