
یہ حکمت عملی قیمت چینل اشارے پر مبنی ہے ، جس میں متحرک پیرامیٹرز کا تعین کیا گیا ہے ، جس میں مختلف ادوار کی اعلی ترین قیمتوں اور کم ترین قیمتوں کی اوسط قیمتوں کا حساب کتاب کرکے قیمت چینل کی وسط لائن تشکیل دی گئی ہے۔ اس کے لئے ، لمبی اور مختصر لائنوں کا تعین کریں۔ جب قیمت لمبی لائن کو توڑتی ہے تو ، زیادہ کام کریں اور جب قیمت مختصر لائن کو توڑتی ہے تو ، خالی ہوجائیں۔
اس حکمت عملی میں قیمت چینل کے اشارے کا استعمال کیا جاتا ہے جو مختلف ادوار میں سب سے زیادہ قیمت اور کم قیمت کی اوسط قیمت کا حساب لگاتا ہے ، جس سے قیمت چینل کی درمیانی لائن تشکیل دی جاتی ہے۔ درمیانی لائن کو بیس لائن کے طور پر استعمال کرتے ہوئے ، شفٹ پیرامیٹرز کے ذریعہ لمبی اور مختصر لائنیں مرتب کی گئیں۔ خاص طور پر ، لمبی لائن کا حساب لگانے کا فارمولا ہے: درمیانی لائن + ((درمیانی لائن × لمبی لائن پیرامیٹرز٪) ؛ مختصر لائن کا حساب لگانے کا فارمولا ہے: درمیانی لائن + ((درمیانی لائن × مختصر لائن پیرامیٹرز٪) ۔
جب قیمت لمبی لائن سے کم ہو تو ، محدود قیمت کے واحد کے ساتھ کثیر آرڈر کھولیں؛ جب قیمت مختصر لائن سے زیادہ ہو تو ، محدود قیمت کے واحد کے ساتھ خالی آرڈر کھولیں۔ کثیر خالی آرڈر کا نقصان روکنے کا طریقہ قیمت کی واپسی ہے۔
یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:
اس حکمت عملی کے کچھ خطرات بھی ہیں:
آپ کو آپٹمائزڈ پیرامیٹرز ، اسٹاپ نقصان کی فہرست ، یا دیگر اشارے کے ساتھ مل کر ان خطرات کو کم کرنا چاہئے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
یہ حکمت عملی قیمت چینل اشارے پر مبنی ڈیزائن آئیڈیاز پر مبنی ہے ، توڑ پھوڑ کی پوزیشن کا استعمال خطرہ کو مؤثر طریقے سے کنٹرول کرسکتا ہے۔ تاہم ، پیرامیٹرز کی اصلاح کے لئے زیادہ جگہ موجود ہے ، نقصان کی روک تھام کے طریقہ کار کو بہتر بنانے کے لئے مسائل ہیں۔ مجموعی طور پر ، اس حکمت عملی میں کچھ عملی قدر ہے ، جو مزید جانچ اور اصلاح کے قابل ہے۔
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's PCMA Strategy v1.0", shorttitle = "PCMA 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, title = "Length")
shortlevel = input(10.0, title = "Short line (red)")
longlevel = input(-5.0, title = "Long line (lime)")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Price Channel
h = highest(high, per)
l = lowest(low, per)
c = (h + l) / 2
ll = c + ((c / 100) * longlevel)
sl = c + ((c / 100) * shortlevel)
//Lines
shortcolor = needshort ? red : na
longcolor = needlong ? lime : na
plot(sl, linewidth = 2, color = shortcolor, title = "Short line")
plot(c, linewidth = 2, color = blue, title = "SMA line")
plot(ll, linewidth = 2, color = longcolor, title = "Long line")
//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[per])) and size == 0 and needlong
strategy.entry("L", strategy.long, lot, limit = ll, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[per])) and size == 0 and needshort
strategy.entry("S", strategy.short, lot, limit = sl, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[per])) and size > 0
strategy.entry("Close", strategy.short, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if (not na(close[per])) and size < 0
strategy.entry("Close", strategy.long, 0, limit = c, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()