یہ حکمت عملی کریپٹو کرنسیوں کی قیمت کے رجحان کو توڑنے والی اعلی اور کم قیمتوں کو ترتیب دے کر ٹریک کرتی ہے۔ جب قیمت سب سے زیادہ قیمت سے تجاوز کرتی ہے تو یہ طویل ہوجاتی ہے اور جب قیمت رجحان کو پکڑنے کے لئے سب سے کم قیمت سے نیچے ہوجاتی ہے تو مختصر ہوجاتی ہے۔
یہ حکمت عملی بنیادی طور پر وزن دار اوسط چلنے والے طریقہ کار کا استعمال کرتی ہے تاکہ یہ معلوم کیا جاسکے کہ آیا واضح طور پر اوپر یا نیچے کا رجحان ہے۔ خاص طور پر ، یہ ایک خاص مدت کے دوران سب سے زیادہ اور سب سے کم قیمتوں کو ریکارڈ کرے گا۔ جب اصل تجارتی قیمت ریکارڈ کردہ سب سے زیادہ قیمت سے تجاوز کرتی ہے تو ، یہ فیصلہ کیا جاتا ہے کہ ایک اوپر کا رجحان واقع ہوا ہے ، اور یہ لمبا ہوجائے گا۔ جب اصل تجارتی قیمت ریکارڈ شدہ سب سے کم قیمت سے کم ہوتی ہے تو ، یہ فیصلہ کیا جاتا ہے کہ ایک نیچے کا رجحان واقع ہوا ہے ، اور یہ مختصر ہوجائے گا۔
لانگ اور شارٹ کی افتتاحی قیمتیں
خاص طور پر، حکمت عملی کا بنیادی منطق یہ ہے:
اس منطقی لوپ کے ذریعے، یہ قیمت کے اوپر اور نیچے کے رجحانات کو پکڑ سکتا ہے اور رجحان کی پیروی حاصل کرسکتا ہے.
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ پیرامیٹرز کو ایڈجسٹ کرکے ، یہ رجحان کی سمت کے دستی فیصلے کی ضرورت کے بغیر قیمت کے رجحانات کو خود بخود پکڑ سکتا ہے۔ جب تک پیرامیٹرز کو مناسب طریقے سے ترتیب دیا جاتا ہے ، یہ خود بخود کرپٹو کرنسیوں کی قیمت میں اتار چڑھاؤ کو ٹریک کرسکتا ہے۔
اس کے علاوہ ، یہ حکمت عملی مقداری تجارت کے لئے بہت موزوں ہے اور آسانی سے خودکار آرڈر کی جگہ حاصل کرسکتی ہے۔ دستی آپریشن کے بغیر ، یہ جذباتی تجارت کے خطرے کو کم کرتا ہے اور تجارت کی کارکردگی کو بہت بہتر بناتا ہے۔
آخر میں ، یہ حکمت عملی پیرامیٹرز کو ایڈجسٹ کرکے واپسی کو بھی زیادہ سے زیادہ کرسکتی ہے۔ مختلف ENTRY اور EXIT پیرامیٹرز کی جانچ کرکے ، واپسی کو زیادہ سے زیادہ کرنے کے لئے زیادہ سے زیادہ پیرامیٹرز تلاش کیے جاسکتے ہیں۔
اس حکمت عملی کا سب سے بڑا خطرہ یہ ہے کہ پیرامیٹر کی غلط ترتیبات سے زیادہ کثرت سے تجارت ، تجارتی فیسوں میں اضافہ اور سکڑنے والے نقصانات ہوسکتے ہیں۔ اگر ENTRY کو بہت کم اور EXIT کو بہت زیادہ مقرر کیا جاتا ہے تو ، غلط تجارتی سگنل آسانی سے پیدا ہوجاتے ہیں۔
اس کے علاوہ ، پیرامیٹرز کی غلط ترتیب سے وقت میں قیمت کے رجحانات کو پکڑنے میں ناکامی بھی ہوسکتی ہے ، تجارتی مواقع سے محروم ہوجاتا ہے۔ اس کے لئے زیادہ سے زیادہ پیرامیٹرز تلاش کرنے کے لئے بہت سارے بیک ٹیسٹنگ کی ضرورت ہوتی ہے۔
آخر میں ، یہ حکمت عملی قلیل مدتی مارکیٹ شور کے لئے بہت حساس ہے ، جو غلط تجارتی سگنل پیدا کرسکتی ہے۔ اس سے بچنے کے لئے ٹریڈنگ ٹائم سائیکل پیرامیٹرز کو مناسب طریقے سے ترتیب دینا ضروری ہے۔
اس حکمت عملی کے لئے مندرجہ ذیل پہلوؤں کو مزید بہتر بنایا جاسکتا ہے:
اسٹاپ نقصان منطق شامل کریں۔ اس سے بڑے نقصانات سے بچنے کے لئے نقصانات کو روکنے کی اجازت ملتی ہے جب نقصانات ایک خاص فیصد سے تجاوز کرتے ہیں۔
مختصر مدت کے شور کی وجہ سے بہت زیادہ تجارت سے بچنے کے لئے مجموعی رجحان کا فیصلہ کرنے کے لئے چلتی اوسط ، کے ڈی جے جیسے تکنیکی اشارے فلٹر شامل کریں۔
پیرامیٹر سیٹنگ منطق کو بہتر بنائیں۔ متحرک تبدیلی کا طریقہ کار جامد ترتیب کے بجائے ENTRY اور EXIT پیرامیٹرز کے لئے مقرر کیا جاسکتا ہے تاکہ وہ مارکیٹ کے حالات کی بنیاد پر ایڈجسٹ کرسکیں۔
بہترین پیرامیٹرز کی تربیت کے لئے مشین لرننگ کا استعمال کریں۔ بڑے پیمانے پر تاریخی ڈیٹا ٹریننگ کے ذریعے موجودہ مارکیٹ ماحول کے لئے بہترین ENTRY اور EXIT ترتیبات حاصل کریں۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ قیمتوں کے رجحانات کو پکڑنے سے یہ خودکار تجارت حاصل کرتا ہے ، جو تجارت پر انسانی جذبات کے اثرات کو کم کرسکتا ہے ، خطرات کو کم کرسکتا ہے ، اور کارکردگی کو بہتر بناسکتا ہے۔ اسی وقت ، پیرامیٹرز کو ایڈجسٹ کرکے زیادہ سے زیادہ منافع پوائنٹس تلاش کیے جاسکتے ہیں۔
اس حکمت عملی کے اہم خطرات پیرامیٹرز کی غلط ترتیبات اور مارکیٹ شور کے لئے زیادہ حساسیت ہیں۔ اس میں اسٹاپ نقصان ، اشارے کے فلٹرز ، موافقت پذیر پیرامیٹرز کی اصلاح اور بہت کچھ کے ذریعے بہتری لانے کی ضرورت ہے۔
مجموعی طور پر ، یہ ایک سادہ اور موثر رجحان ہے جو مقدار اور خودکار تجارت کے لئے موزوں حکمت عملی پر عمل پیرا ہے۔ مسلسل اصلاح کے ذریعہ ، حکمت عملی کے استحکام کو مزید بہتر بنایا جاسکتا ہے۔
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © JstMtlQC //@version=4 strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) /////////////// INPUT ENTRY EXIT entry= input(100, "ENTRY H/L") exit= input(50, "EXIT H/L") /////////////// Backtest Input FromYear = input(2015, "Backtest Start Year") FromMonth = input(1, "Backtest Start Month") FromDay = input(1, "Backtest Start Day") ToYear = input(2999, "Backtest End Year") ToMonth = input(1, "Backtest End Month") ToDay = input(1, "Backtest End Day") /////////////// Backtest Setting start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false /////////////// BUY OPEN PLOT highestpricelong = highest(high,entry)[1] plot(highestpricelong, color=color.green, linewidth=2) /////////////// BUY CLOSE PLOT lowestpricelong = lowest(high,exit)[1] plot(lowestpricelong, color=color.green, linewidth=2) /////////////// SHORT OPEN PLOT lowestpriceshort = lowest(low,entry)[1] plot(lowestpriceshort, color=color.red, linewidth=2) /////////////// SHORT CLOSE PLOT highestpriceshort = highest(low,exit)[1] plot(highestpriceshort, color=color.red, linewidth=2) /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////// CONDITION LONG SHORT ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////// SHORT entryshort= crossunder(close, lowestpriceshort) exitshort= crossover(close,highestpriceshort) /////////////// LONG exitlong= crossover(close, lowestpricelong) entrylong= crossover(close,highestpricelong) /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////// LONG and SHORT ORDER ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /////////////// LONG if (entrylong) strategy.entry("LongEntry", strategy.long, when = window()) if (exitlong or entryshort) strategy.close("LongEntry", when=window()) /////////////// SHORT if (entryshort) strategy.entry("short", strategy.short, when = window()) if (exitshort or entrylong) strategy.close("short", when=window())