
ایک خود کار طریقے سے ملٹی سگنل ایکویریم متحرک پوزیشن کوڈ کرنے کی حکمت عملی ایک ایسی حکمت عملی ہے جو خاص طور پر کریپٹوکرنسی مارکیٹ کے لئے ڈیزائن کی گئی ہے۔ اس حکمت عملی میں تکنیکی تجزیہ کے اشارے اور متحرک پوزیشن مینجمنٹ سسٹم کو یکجا کیا گیا ہے۔ مرکزی خیال یہ ہے کہ تیزی سے اور آہستہ چلنے والی اوسط کے کراس سگنل اور بے ترتیب نسبتا strong مضبوط اشارے ((Stochastic RSI) کا استعمال کرتے ہوئے مارکیٹ کے رجحان کی سمت اور داخلے کے وقت کا تعین کیا جائے ، جبکہ پائریٹڈ پوزیشننگ کا طریقہ کار استعمال کرتے ہوئے قیمتوں میں ردوبدل کا جواب دیا جائے۔ یہ حکمت عملی سیکیورٹی آرڈرز کو خود بخود طے شدہ قیمتوں کے زوال کے زون کے اندر انجام دیتی ہے ، ہر سیکیورٹی آرڈر کا سائز اس کے مطابق طے شدہ تناسب میں بتدریج بڑھتا ہے ، اس طرح زوال کے دوران اوسط پوزیشن ہولڈنگ لاگت کو کم کیا جاتا ہے ، اور جب قیمتیں منافع بخش ہدف کی سطح پر واپس آجاتی ہیں تو ایک بار پوزیشن منافع حاصل کرنا آسان
یہ حکمت عملی مندرجہ ذیل بنیادی تکنیکی اجزاء پر مبنی ہے:
ڈبل منتقل اوسط نظامحکمت عملی: دو چلتی اوسط ((فاسٹ اور سست) کے کراس کو بطور اہم انٹری سگنل استعمال کریں۔ صارف کو سادہ چلتی اوسط ((SMA) ، اشاریہ چلتی اوسط ((EMA) یا ہل چلتی اوسط ((HMA) کا انتخاب کرنے کا اختیار ہے ، اور مارکیٹ کی صورتحال کے مطابق اوسط لائن کو اوپر یا نیچے کراس کرنے کا انتخاب کرسکتا ہے۔
بے ترتیب نسبتا weak مضبوط اشارے ((Stochastic RSI)ایک معاون انٹری کی شرط کے طور پر ، جب اسٹوکاسٹک آر ایس آئی کی K لائن پر 5 کی سطح پہنتی ہے ، اور فوری طور پر چلتی اوسط بڑھتی ہوئی رجحان میں ہے ((مسلسل 5 سائیکلوں میں اضافہ) ، تو خریدنے کا اشارہ ہوتا ہے۔
متحرک سیکورٹی آرڈر سسٹم: ابتدائی اندراج کے بعد ، حکمت عملی پہلے سے طے شدہ قیمت کی سطح سے نیچے متعدد سیکیورٹی آرڈرز مرتب کرتی ہے۔ یہ قیمت کی سطحیں قیمت کے انحراف کے پیرامیٹرز اور قدم کی لمبائی کے سکالپنگ فیکٹر کے مطابق حساب کی جاتی ہیں۔
پوزیشن کے سائز میں متحرک تبدیلی: ہر سیکیورٹی آرڈر کا سائز سیکیورٹی آرڈر کے سائز کے پیمانے پر اسکیلپنگ فیکٹر کے مطابق بتدریج بڑھتا ہے ، جس سے بڑھتی ہوئی انوینٹری ڈھانچہ تشکیل ملتا ہے۔
ٹارگٹ منافع کو مستحکم کرنے کا طریقہ کار: حکمت عملی نے اوسط پوزیشن کی قیمت پر مبنی ہدف منافع کی سطح مقرر کی ، اور جب قیمت اس سطح تک پہنچ جاتی ہے تو ، تمام پوزیشنوں کو ختم کردیا جاتا ہے۔
پالیسی پر عملدرآمد کا عمل مندرجہ ذیل ہے:
کثیر جہتی داخلہ سگنل: رجحاناتی اشارے ((موبائل اوسط) اور متحرک اشارے ((اسٹوکاسٹک آر ایس آئی) کے ساتھ مل کر ، داخلے کی درستگی کو بہتر بناتا ہے ، جعلی سگنل کو کم کرتا ہے۔
انتہائی موافقت پذیر: حکمت عملی کے پیرامیٹرز انتہائی مرضی کے مطابق ہیں ، صارف مختلف مارکیٹ کے حالات اور ذاتی خطرے کی ترجیحات کے مطابق منتقل اوسط کی قسم ، دورانیہ ، کراس سمت ، قیمت کے انحراف کا تناسب وغیرہ کو ایڈجسٹ کرسکتا ہے۔
اوسط لاگت اثر: پہلے سے طے شدہ سیکیورٹی آرڈر سسٹم کے ذریعہ ، قیمتوں میں کمی کے وقت خود بخود پوزیشنیں بڑھائیں ، جس سے اوسط پوزیشن کی لاگت کو مؤثر طریقے سے کم کیا جاسکتا ہے ، اور اس سے منافع کی حتمی امکانات میں اضافہ ہوتا ہے۔
فنڈ کی کارکردگی کو بہتر بناناسیکیورٹی آرڈرز کے بڑھتے ہوئے پیمانے کے ڈیزائن نے فنڈز کی تقسیم کو زیادہ موثر بنا دیا ہے ، اور زیادہ فنڈز کو کم قیمت والے آرڈرز میں مختص کیا گیا ہے ، جو ویلیو انویسٹمنٹ کے تصور کے مطابق ہے۔
خودکار عملدرآمدایک بار جب پیرامیٹرز قائم ہوجاتے ہیں تو ، حکمت عملی مکمل طور پر خود کار طریقے سے چل سکتی ہے ، بغیر کسی انسانی مداخلت کی ضرورت ہوتی ہے ، جس سے جذبات پر مبنی تجارتی فیصلے کم ہوجاتے ہیں۔
لچکدار مارکیٹ کی موافقت: متحرک اوسط کی کراس سمت کو ایڈجسٹ کرکے ((اوپر یا نیچے پہننا) ، حکمت عملی مختلف مارکیٹ کے حالات ((بول مارکیٹ یا ریچھ مارکیٹ) کے مطابق ڈھال سکتی ہے۔
نقصان کے بغیر خطرہ: حکمت عملی کے ڈیزائن میں واضح طور پر کوئی اسٹاپ نقصان کا طریقہ کار متعین نہیں کیا گیا ہے ، جس سے مسلسل نیچے آنے والے حالات میں بڑے پیمانے پر نقصان ہوسکتا ہے۔ انتہائی مارکیٹ کے حالات میں ، جیسے اثاثوں کی قیمتوں میں گرنا یا صفر ہونا ، جس سے بڑے پیمانے پر مالی نقصان ہوسکتا ہے۔
فنڈز کی ضرورتچونکہ حکمت عملی کو متعدد سیکیورٹی آرڈرز کے لئے فنڈز کو محفوظ رکھنے کی ضرورت ہوتی ہے ، اور ہر آرڈر کی مقدار بڑھتی ہے ، لہذا اصل میں درکار فنڈز ابتدائی سرمایہ کاری سے کہیں زیادہ ہوسکتے ہیں ، لہذا سرمایہ کاروں کو یہ یقینی بنانا ہوگا کہ ان کے پاس کافی نقد رقم موجود ہے۔
کثیر الجہتی ہونا: موجودہ حکمت عملی کا ڈیزائن صرف کثیر جہتی کی حمایت کرتا ہے ، جو طویل مدتی نزولی رجحان میں بہت کم کام کرتا ہے۔ اس حکمت عملی کو مجموعی طور پر اچھی نظر آنے والی اثاثوں پر لاگو کرنے کی سفارش کی جاتی ہے۔
پیرامیٹر کی حساسیت: حکمت عملی کی کارکردگی پیرامیٹرز کی ترتیب پر بہت زیادہ انحصار کرتی ہے ، اور غلط پیرامیٹرز کی وجہ سے سیکیورٹی آرڈرز یا زیادہ ذخیرہ اندوزی کو جلدی سے متحرک کیا جاسکتا ہے۔
اوسط لاگت کا جالاس حکمت عملی کے تحت ، اگر اثاثوں کی قیمتوں میں مسلسل کمی واقع ہوتی ہے اور اس کی بحالی ممکن نہیں ہوتی ہے تو ، اس سے “پیچھا کرنے والے” اور فنڈز کی گرفت میں آنے کا خطرہ ہے۔
خطرے کو کم کرنے کے طریقوں میں شامل ہیں: مجموعی طور پر اچھے لگنے والے اثاثوں پر اس حکمت عملی کا اطلاق کریں؛ سیکیورٹی آرڈرز کے لئے کافی فنڈز مختص کریں؛ حکمت عملی کے پیرامیٹرز کی مارکیٹ کے ماحول کے ساتھ مطابقت کی باقاعدگی سے جانچ پڑتال کریں؛ سیکیورٹی آرڈرز کی زیادہ سے زیادہ تعداد کی حد مقرر کریں؛ حکمت عملی میں مجموعی طور پر روکنے کے طریقہ کار کو شامل کرنے پر غور کریں۔
نقصان کی روک تھام میں اضافہاس حکمت عملی کی سب سے واضح کمی یہ ہے کہ اس میں کوئی اسٹاپ نقصان کا طریقہ کار موجود نہیں ہے۔ ایک عالمی اسٹاپ نقصان پیرامیٹر شامل کرنے کی تجویز ہے ، جب نقصانات کا ایک خاص تناسب ہوتا ہے تو ، تمام پوزیشنوں کو غیر مستحکم کرنے پر مجبور کیا جاتا ہے ، تاکہ فنڈز کی حفاظت کی جاسکے۔
مارکیٹ رجحانات فلٹر میں شامل ہوں: طویل عرصے تک چلنے والی اوسط یا ADX اشارے جیسے رجحان سازی کے اشارے شامل کیے جاسکتے ہیں ، حکمت عملی کو صرف اس وقت انجام دیں جب مرکزی رجحانات کی سمت سے ہم آہنگ ہو ، اور واضح طور پر گہری مارکیٹ میں غیر ضروری اضافے سے بچیں۔
سیکیورٹی آرڈر ٹرگر منطق کو بہتر بنائیں: موجودہ سیکیورٹی آرڈرز صرف قیمت کے انحراف کی بنیاد پر ٹرگر کیے جاتے ہیں ، اور ان کو ٹرانزٹ ، اتار چڑھاؤ کی شرح یا دیگر تکنیکی اشارے کے ساتھ مل کر سمجھا جاسکتا ہے ، تاکہ سیکیورٹی آرڈرز کی ٹرگرنگ کو زیادہ ذہین بنایا جاسکے۔
متحرک ایڈجسٹ ہدف منافع: مارکیٹ میں اتار چڑھاؤ یا داخلے کے بعد قیمتوں کے عمل کی متحرکات کے مطابق ہدف منافع کی سطح کو ایڈجسٹ کیا جاسکتا ہے ، اور مارکیٹ کے انتہائی اتار چڑھاؤ والے ماحول میں زیادہ ہدف منافع مقرر کیا جاسکتا ہے۔
اضافی خالی جگہ کا کام: توسیع کی حکمت عملی کم قیمت کی سمت کی حمایت کرتی ہے ، جس سے یہ نیچے کی سمت میں بھی اتنا ہی موثر ہوجاتا ہے ، حکمت عملی کی مجموعی طور پر مارکیٹ میں موافقت کو بہتر بناتا ہے۔
ریٹیسمنٹ کنٹرول شامل کریں۔: زیادہ سے زیادہ واپسی کی حد مقرر کریں ، جب حکمت عملی کی واپسی حد سے تجاوز کر جائے تو تجارت کو روکیں یا پیرامیٹرز کو دوبارہ ترتیب دیں ، تاکہ مارکیٹ کے خراب حالات میں مسلسل نقصان سے بچایا جاسکے۔
دورانیہ پیرامیٹرز کی اصلاح: مارکیٹ کی خصوصیات میں تبدیلیوں کے مطابق حکمت عملی کو ایڈجسٹ کرنے کے لئے حالیہ مارکیٹ کے اعداد و شمار کی بنیاد پر پیرامیٹرز کو باقاعدگی سے ایڈجسٹ کرنے کے لئے خودکار پیرامیٹرز کی اصلاح کی خصوصیت شامل کی گئی۔
ان اصلاحات کا مقصد حکمت عملی کی رسک مینجمنٹ کی صلاحیت، مارکیٹ میں موافقت اور طویل مدتی استحکام کو بہتر بنانا ہے تاکہ وہ مختلف مارکیٹ کے ماحول میں نسبتا مستحکم کارکردگی کا مظاہرہ کرسکیں۔
خود کو اپنانے والی کثیر سگنل مساوی لائن متحرک پوزیشن کوڈنگ حکمت عملی ، متحرک محفوظ آرڈر سسٹم کے ساتھ ، متحرک اوسط اور بے ترتیب نسبتا weak مضبوط اشارے کے ساتھ مل کر ، کریپٹوکرنسی مارکیٹ کے لئے ایک منظم تجارت کا طریقہ فراہم کرتی ہے۔ اس کا بنیادی فائدہ یہ ہے کہ قیمت کی بحالی کے دوران خود کار طریقے سے پوزیشن میں اضافہ کیا جاسکتا ہے ، اوسط پوزیشن رکھنے کی لاگت کو کم کیا جاسکتا ہے ، اور قیمت کی بحالی کے دوران منافع کمانا۔
تاہم ، اس حکمت عملی میں واضح خطرات بھی شامل ہیں ، خاص طور پر اسٹاپ نقصان کے طریقہ کار کی کمی اور مسلسل گرتی ہوئی صورتحال میں فنڈز کے ممکنہ نقصانات۔ اس حکمت عملی کو استعمال کرتے وقت ، سرمایہ کاروں کو اس کی خطرے کی خصوصیات کے بارے میں پوری طرح سے آگاہ ہونا چاہئے ، اس بات کو یقینی بنانا چاہئے کہ ان کے پاس کافی رقم موجود ہے ، اور اضافی خطرے سے متعلق اقدامات کو بڑھانے پر غور کرنا چاہئے۔
معقول پیرامیٹرز کی ترتیب اور تجویز کردہ اصلاحی سمت کے ساتھ ، یہ حکمت عملی کریپٹوکرنسیوں کے طویل مدتی سرمایہ کاروں کے لئے ایک طاقتور ٹول بن سکتی ہے ، خاص طور پر ان سرمایہ کاروں کے لئے جو مخصوص کریپٹو اثاثوں کی طویل مدتی قدر پر یقین رکھتے ہیں لیکن داخلے کی لاگت کو بہتر بنانا چاہتے ہیں۔ عملی استعمال میں ، یہ تجویز کی جاتی ہے کہ پہلے اس کی اچھی طرح جانچ کی جائے۔
/*backtest
start: 2024-08-19 00:00:00
end: 2025-08-18 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"BTC_USDT","balance":5000}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//
//@version=6
strategy(title = 'PEPE- DCA Strategy', overlay = true, pyramiding = 11, process_orders_on_close = true, commission_value = 0.1)
Base_order_size = input.int(1500, 'Base order Size')/close
Safety_order_size = input.int(350, 'Save order')/close
Triger_Type = input.string('Over', 'Entry at Cross Over / Under', options = ['Over', 'Under'], group = 'Deal start condition > Trading View custom signal', inline = '1', tooltip = 'Deal start condition decision')
Short_Moving_Average = input.string('SMA', 'Short Moving Average', group = 'Deal start condition > Trading View custom signal', inline = '2', options = ['SMA', 'EMA', 'HMA'])
Short_Period = input.int(17, 'Period', group = 'Deal start condition > Trading View custom signal', inline = '2')
Long_Moving_Average = input.string('HMA', 'Long Moving Average', group = 'Deal start condition > Trading View custom signal', inline = '3', options = ['SMA', 'EMA', 'HMA'])
Long_Period = input.int(26, 'Period', group = 'Deal start condition > Trading View custom signal', inline = '3')
Target_profit = input.float(1.9, 'Target profit (%)', step = 0.05, group = 'Take profit / Stop Loss', inline = '1') * 0.01
Max_safety_trades_count = input.int(5, 'Max safety trades count', maxval = 10, group = 'Safety orders', inline = '1')
Price_deviation = input.float(2.45, 'Price deviation to open safety orders (% from initial order)', step = 0.01, group = 'Safety orders', inline = '2') * 0.01
Safety_order_volume_scale = input.float(1.85, 'Safety order volume scale', step = 0.01, group = 'Safety orders', inline = '3')
Safety_order_step_scale = input.float(1.61, 'Safety order step scale', step = 0.01, group = 'Safety orders', inline = '3')
// Position status
status_none = strategy.opentrades == 0
status_long = strategy.position_size[1] == 0 and strategy.position_size > 0
/////////// Moving_Averages
Short_Moving_Average_Line = Short_Moving_Average == 'SMA' ? ta.sma(close, Short_Period) : Short_Moving_Average == 'EMA' ? ta.ema(close, Short_Period) : Short_Moving_Average == 'HMA' ? ta.sma(close, Short_Period) : na
Long_Moving_Average_Line = Long_Moving_Average == 'SMA' ? ta.sma(close, Long_Period) : Long_Moving_Average == 'EMA' ? ta.ema(close, Long_Period) : Long_Moving_Average == 'HMA' ? ta.sma(close, Long_Period) : na
///////////// Moving_Averages long condition
Base_order_Condition = Triger_Type == 'Over' ? ta.crossover(Short_Moving_Average_Line, Long_Moving_Average_Line) : ta.crossunder(Short_Moving_Average_Line, Long_Moving_Average_Line) // Buy when close crossing lower band
//////////////////// Savety order deviation
safety_order_deviation(index) =>
Price_deviation * math.pow(Safety_order_step_scale, index - 1)
pd = Price_deviation
ss = Safety_order_step_scale
//////// Cal of deviation steps
step(i) =>
i == 1 ? pd : i == 2 ? pd + pd * ss : i == 3 ? pd + (pd + pd * ss) * ss : i == 4 ? pd + (pd + (pd + pd * ss) * ss) * ss : i == 5 ? pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss : i == 6 ? pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss : i == 7 ? pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss : i == 8 ? pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss : i == 9 ? pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ss : i == 10 ? pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + (pd + pd * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ss) * ss : na
long_line(i) =>
close[1] - close[1] * step(i)
////////// Savety order Triger
Safe_order_line(i) =>
i == 0 ? ta.valuewhen(status_long, long_line(0), 0) : i == 1 ? ta.valuewhen(status_long, long_line(1), 0) : i == 2 ? ta.valuewhen(status_long, long_line(2), 0) : i == 3 ? ta.valuewhen(status_long, long_line(3), 0) : i == 4 ? ta.valuewhen(status_long, long_line(4), 0) : i == 5 ? ta.valuewhen(status_long, long_line(5), 0) : i == 6 ? ta.valuewhen(status_long, long_line(6), 0) : i == 7 ? ta.valuewhen(status_long, long_line(7), 0) : i == 8 ? ta.valuewhen(status_long, long_line(8), 0) : i == 9 ? ta.valuewhen(status_long, long_line(9), 0) : i == 10 ? ta.valuewhen(status_long, long_line(10), 0) : na
l1 = Safe_order_line(1)
l2 = Safe_order_line(2)
l3 = Safe_order_line(3)
l4 = Safe_order_line(4)
l5 = Safe_order_line(5)
l6 = Safe_order_line(6)
l7 = Safe_order_line(7)
l8 = Safe_order_line(8)
l9 = Safe_order_line(9)
l10 = Safe_order_line(10)
//// take profit
TP_line = strategy.position_avg_price * (1 + Target_profit)
//Size of safety orders
safety_order_size(i) =>
Safety_order_size * math.pow(Safety_order_volume_scale, i - 1)
///plots
plot(Short_Moving_Average_Line, 'Short MA', color = color.new(color.red, 0), style = plot.style_line)
plot(Long_Moving_Average_Line, 'Long MA', color = color.new(color.green, 0), style = plot.style_line)
plot(strategy.opentrades == 1 ? l1 : na, 'Safety order1',color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 2 ? l2 : na, 'Safety order2', color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 3 ? l3 : na, 'Safety order3', color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 4 ? l4 : na, 'Safety order4', color =color.red, style = plot.style_linebr)
plot(strategy.opentrades == 5 ? l5 : na, 'Safety order5', color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 6 ? l6 : na, 'Safety order5', color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 7 ? l7 : na, 'Safety order6', color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 8 ? l8 : na, 'Safety order7', color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 9 ? l9 : na, 'Safety order8', color = color.red, style = plot.style_linebr)
plot(strategy.opentrades == 10 ? l10 : na, 'Safety order9', color = color.red, style = plot.style_linebr)
plot(strategy.position_size > 0 ? TP_line : na, 'Take Profit', color = color.green, style = plot.style_linebr)
///////////////SToch-Rsi
smoothK = input.int(1, "ST_RSI -K settings for long", minval=1)
smoothD = input.int(3, "ST_RSI-D settings for long", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(9, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
////////buy cond- ST_RSI
bk = ta.crossover(k,5)
r = ta.rising(Short_Moving_Average_Line,5)
buy = bk and r
//Stradegy mod
if Base_order_Condition or buy
if (Base_order_Condition or buy ) and strategy.opentrades == 0
strategy.entry('Base order', strategy.long, qty = Base_order_size )
for i = 1 to Max_safety_trades_count by 1
i_s = str.tostring(i)
if strategy.opentrades <= i and strategy.position_size > 0 and not(strategy.position_size == 0)
strategy.entry('Safety order' + i_s, strategy.long, qty = safety_order_size(i) , limit = Safe_order_line(i))
for i = 1 to Max_safety_trades_count by 1
i_s = str.tostring(i)
if status_none
strategy.cancel('Safety order' + i_s)
strategy.exit('TP/SL', 'Base order', limit = TP_line)
strategy.exit('TP/SL', 'Safety order' + i_s, limit = TP_line)
//