یہ حکمت عملی ترتیب کے ذریعہ متعدد تیز اور آہستہ اوسط لائنوں کا مجموعہ طے کرتی ہے ، جب تمام تیز لائنوں پر سست لائنوں کو عبور کرتے ہیں تو زیادہ کرتے ہیں۔ جب کم از کم ایک تیز لائن کے نیچے سست لائنوں کو عبور کرتے ہیں تو صف بندی کریں۔ حکمت عملی متعدد اوسط لائنوں کے فوائد کو بھرپور طریقے سے استعمال کرتی ہے ، جس سے پوزیشن رکھنے کا ایک مضبوط فیصلہ سازی نظام تشکیل دیا جاتا ہے۔
اس حکمت عملی کے اہم اجزاء اور قواعد درج ذیل ہیں:
کثیر گروپ سست اور تیز اوسط: ایس ایم اے ، ڈبلیو ایم اے ، وی ڈبلیو ایم اے اور دیگر متعدد اوسط اشارے استعمال کریں۔
زیادہ سگنل بنائیں: تمام تیز لائنوں پر سست لائن کو عبور کرتے وقت زیادہ کریں۔
ہمت کی نشاندہی: کسی بھی تیز لائن کے نیچے سست لائن کو عبور کرتے وقت ہمت کی نشاندہی کریں۔
اسٹاپ نقصان: اے ٹی آر کی قیمت پر مقررہ اسٹاپ نقصان کا نقطہ۔
ترتیب: ایک سے زیادہ گروپ اوسط لائن پیرامیٹرز کو لچکدار ترتیب دے سکتا ہے۔
متعدد اوسط لائن مجموعہ موقف ووٹنگ کے ذریعے داخلہ ، سگنل کی وشوسنییتا کو مؤثر طریقے سے بڑھا سکتا ہے۔ متعدد اوسط لائن پیرامیٹرز کو اپنی مرضی کے مطابق ترتیب دیا جاسکتا ہے ، جس میں لچک بھی شامل ہے۔
اس حکمت عملی کے مقابلے میں مندرجہ ذیل فوائد ہیں:
ایک سے زیادہ اوسط لائنوں کا مجموعہ ایک وسیع تر رجحان کا فیصلہ فراہم کرتا ہے.
ووٹنگ کے طریقہ کار سے شور مچانے والی ٹرانزیکشنز سے بچنے کے لیے۔
ہر اوسط پیرامیٹرز کو آزادانہ طور پر ترتیب دیا جاسکتا ہے ، بہتر بنانے کے لئے کافی جگہ ہے۔
متعدد اوسط اشارے کی حمایت کرتا ہے ، استعمال میں لچکدار
اسٹاپ اسٹاپ نقصان کی پوزیشن کو ترتیب دیں ، جو ایک ہی نقصان کو کنٹرول کرسکتی ہے۔
طویل عرصے سے استعمال کے سائیکل کو بہتر بنانے کے لئے، یہ کم کربلا کم کر سکتا ہے.
کمپیوٹنگ سادہ، بدیہی، لاگو کرنے اور چلانے میں آسان ہے۔
مجموعی طور پر ، یہ ایک اوسط لائن کے مقابلے میں بہتر استحکام اور استحکام ہے۔
لیکن اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:
اس سے حکمت عملی کی پیچیدگی میں اضافہ ہوتا ہے۔
پیرامیٹرز کو زیادہ بہتر بنانے کا خطرہ ہے۔
اوسط لکیروں میں رجحان کی تبدیلیوں کی دیر سے شناخت ہوتی ہے۔
اس کے علاوہ ، یہ بھی کہا گیا ہے کہ یہ ایک بہت بڑا مسئلہ ہے۔
اسٹاپ نقصان کی ترتیب زیادہ صوابدیدی ہے ، اور اس سے غیر ضروری طور پر صفائی ہوسکتی ہے۔
مارکیٹ کے ماحول میں تبدیلی کے ساتھ اثر و رسوخ میں زیادہ اتار چڑھاؤ ہوتا ہے۔
منافع کی واپسی کے تناسب پر توجہ دیں تاکہ منحنی خطوط کو زیادہ سے زیادہ کھینچنے سے بچایا جاسکے۔
متعدد نسلوں میں استحکام کی جانچ پڑتال کرنے کے لئے پیرامیٹرز۔
مندرجہ بالا تجزیہ کی بنیاد پر، اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بڑھا جا سکتا ہے:
ٹیسٹ اوسط لکیری پیرامیٹرز مختلف نسلوں میں مضبوطی۔
تجارت میں اضافے یا اتار چڑھاؤ کی شرح کی توثیق۔
سٹاپ نقصان پیرامیٹرز کو بہتر بنائیں۔
زیادہ سے زیادہ واپسی کی رواداری مقرر کریں۔
متحرک پوزیشن مینجمنٹ میکانزم کی تشکیل
مشین لرننگ متعارف کرانے کے اثرات کا جائزہ لینا
زیادہ سے زیادہ واپسی اور منافع کے منحنی خطوط پر توجہ دیں۔
اس کے علاوہ، یہ بھی کہا گیا ہے کہ:
اس حکمت عملی نے متعدد اوسط لائنوں کا مجموعہ ترتیب دے کر تشکیل دیا ، جس سے پوزیشن رکھنے کے فیصلے کا ایک زیادہ مستحکم طریقہ کار تشکیل دیا گیا۔ لیکن کسی بھی حکمت عملی کو ضرورت سے زیادہ فٹ ہونے سے بچنے اور مارکیٹ کے حالات کے مطابق متحرک طور پر ایڈجسٹ کرنے کی ضرورت ہے۔ صرف مسلسل بہتر جانچ اور مقداری حکمت عملی ہی مارکیٹ میں طویل مدتی طور پر موزوں ہوسکتی ہے۔
/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 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/
// © levieux
//@version=5
strategy(title='Configurable Multi MA Crossover Voting System', shorttitle='Configurable Multi MA Crossover Voting System', initial_capital=1000, overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)
crossoverConfig= input.string(defval="2x4,3x5,4x6", title="Crossover Config")
source= input.source(high)
maType= input.string("WMA", title="Moving Average Type", options=["WMA","SMA","VWMA"])
atrPeriod= input(14, title="ATR Period")
profitAtr = input(10, title="Profit ATR x")
lossAtr = input(5, title="Loss ATR x")
ma(src,length,type) =>
float ma = switch type
"SMA" => ta.sma(src, length)
"WMA" => ta.wma(src, length)
"VWMA" => ta.vwma(src, length)
crossoverGroups= str.split(crossoverConfig, ",")
crossoverCount= array.size(crossoverGroups)
crossovers= array.new_string(crossoverCount)
positions= array.new_int(crossoverCount, 0)
longVotes= 0
for i= 0 to crossoverCount-1
crossover= str.tostring(array.get(crossoverGroups, i))
crossoverBoundaries= str.split(crossover, "x")
int fastLength= math.round(str.tonumber(array.get(crossoverBoundaries, 0)))
int slowLength= math.round(str.tonumber(array.get(crossoverBoundaries, 1)))
wmaFast= ma(source,fastLength,maType)
wmaSlow= ma(source,slowLength,maType)
if wmaFast>wmaSlow
longVotes:= longVotes + 1
array.set(positions, i, 1)
longCondition= longVotes==crossoverCount and strategy.position_size==0
//profitTicks = profitAtr*ta.atr(atrPeriod)/syminfo.mintick
//lossTicks = lossAtr*ta.atr(atrPeriod)/syminfo.mintick
profitPrice= close+profitAtr*ta.atr(atrPeriod)
lossPrice= close-lossAtr*ta.atr(atrPeriod)
if strategy.position_size>0
profitPrice:= profitPrice[1]
lossPrice:= lossPrice[1]
plot(profitPrice, color=color.green)
plot(lossPrice, color=color.red)
if longCondition and profitPrice>0
strategy.entry("Long", strategy.long)
if longVotes<crossoverCount and strategy.position_size>0 and (high>profitPrice or low<lossPrice)
strategy.close("Long")
longVotes:= 0