
اس حکمت عملی کی بنیاد پر ٹریڈنگ سگنل کا فیصلہ کیا جاتا ہے کھلنے کی قیمت اور اونچی قیمت کے کراس۔ جب کھلنے کی قیمت پر اونچی قیمت پر زیادہ قیمت لگتی ہے تو زیادہ کام کریں ، جب کھلنے کی قیمت کے نیچے اونچی قیمت پر خالی ہوجائیں۔ قیمت کے اعداد و شمار کو ہموار کرنے کے لئے ، شور کی تجارت کو کم کرنے کے لئے ، متحرک اوسط کا استعمال کریں۔ متحرک اوسط کی اقسام اور پیرامیٹرز کو تشکیل دیں۔ منافع کو مقفل کرنے کے لئے ٹریکنگ اسٹاپ کو چالو کرنے کی تشکیل بھی کی جاسکتی ہے۔
ان پٹ پیرامیٹرز کے مطابق متبادل سائیکل ریزولوشن استعمال کرنے کا فیصلہ کریں: useRes) ◄ ۔ اگر استعمال کیا جاتا ہے تو ، سٹریٹ ریس کے مطابق سائیکل سیٹ کریں۔
ان پٹ پیرامیٹرز کی بنیاد پر فیصلہ کریں کہ آیا منتقل اوسط استعمال کیا جائے گا یا نہیں۔ اگر استعمال کیا جائے تو ، منتقل اوسط کی قسم کو بیس ٹائپ کے مطابق منتخب کریں ، بیس لین دورانیہ کی لمبائی طے کرے گا۔
اوپن اور کلوزنگ کی سیریز حاصل کریں۔ اگر آپ ایک اوسط اوسط استعمال کرتے ہیں تو ، منتخب کردہ اوسط اوسط کی قسم اور پیرامیٹرز کو ہموار کریں۔
اوپن سیریز کے اوپن سیریز کے ساتھ موجودہ قیمتوں کا موازنہ کریں۔ اگر ایکس اوپن سیریز سے بڑا ہے تو ، رجحان کی حالت میں ٹرینڈ اسٹیٹ کثیر سر ہے ، ورنہ خالی سر ہے۔
جب قیمت کھلنے پر قیمت کھلنے پر قیمت منتقل ہونے والی اوسط سے ٹکراتی ہے تو ایک سے زیادہ سگنل longCond پیدا ہوتا ہے ، اور جب قیمت کھلنے پر قیمت کھلنے پر قیمت منتقل ہونے والی اوسط سے ٹکراتی ہے تو ایک مختصر سگنل shortCond پیدا ہوتا ہے۔
اگر ٹریکنگ اسٹاپ نقصان کو فعال کیا گیا ہے تو ، اسٹاپ نقصان کی پوزیشن اور اس کی دوری کا تعین کریں۔
ایک ہی ڈیٹا سیٹ کی حدود سے بچنے کے لئے ، کھولنے اور اونچی قیمت کی دو مختلف سیریز کا استعمال کرتے ہوئے ٹریڈنگ سگنل کا فیصلہ کریں۔
اس کے علاوہ ، اس میں ٹریڈنگ کے بارے میں بھی معلومات شامل ہیں ، اور یہ بھی کہا گیا ہے کہ اس میں ٹریڈنگ کے بارے میں بھی معلومات شامل ہیں۔
متحرک اوسط کی قسم کو لچکدار ترتیب دیں ، پیرامیٹرز کو بہتر اثر کے ل adjust ایڈجسٹ کریں۔
آپ کو یہ اختیار حاصل ہے کہ ٹریکنگ اسٹاپ کا استعمال کرکے اپنے خطرے کو کنٹرول کریں اور منافع کو لاک کریں۔
حکمت عملی کو بہتر بنانے کے لئے کافی جگہ موجود ہے ، جس میں مختلف اقسام اور مارکیٹ کے حالات کے مطابق پیرامیٹرز کو ایڈجسٹ کیا جاسکتا ہے۔
ایک ہی ٹرانزیکشن سگنل ماخذ، سگنل نایاب، آسانی سے ضائع ہونے والا.
اس کے علاوہ ، یہ بھی کہا گیا ہے کہ اس کی وجہ یہ ہے کہ اس کی وجہ سے اس میں تاخیر ہوئی ہے۔
ٹریکنگ سٹاپ نقصان کی ترتیب غلط ہے اور اس کی وجہ سے اسٹاپ نقصان بہت جلد یا بہت زیادہ ہوسکتا ہے۔
پیرامیٹرز کی غلط ترتیب سے ورچوئل ٹرانزیکشنز کی کثرت ہوسکتی ہے جس سے ریئل ڈسک کی کارکردگی متاثر ہوتی ہے۔
مختلف اقسام اور مارکیٹ کے حالات میں پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہوتی ہے ، جس میں اصلاح کرنا مشکل ہوتا ہے۔
دوسرے اشارے کے فیصلے کو شامل کرکے یا مشین لرننگ ماڈل متعارف کرانے کے ذریعہ سگنل کے ذرائع کو افزودہ کیا جاسکتا ہے۔ متحرک اوسط کی اقسام اور پیرامیٹرز کو زیادہ سے زیادہ ہموار اثر کے ل adjust ایڈجسٹ کریں۔ احتیاط سے روکنے کی پوزیشنیں مرتب کریں ، زیادہ سے زیادہ منافع حاصل کرنے کے لئے مناسب طریقے سے نرمی کریں۔
دیگر تکنیکی اشارے کے فیصلے میں اضافہ کریں ، جیسے برین بینڈ ، کے ڈی وغیرہ ، جو تجارتی سگنل کو مالا مال کرے گا۔
مشین لرننگ ماڈل کا استعمال کرتے ہوئے سگنل کے فیصلے کو سنبھالنا۔
متحرک اوسط پیرامیٹرز کو بہتر بنائیں اور بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔
اسٹاپ نقصان کے پیرامیٹرز کو بہتر بنانے کے لئے ، اسٹاپ نقصان کی حد اور منافع کو متوازن کریں۔
پیرامیٹرز کو بہتر بنانے کی خصوصیت شامل کی گئی ہے ، جو خود بخود بہترین پیرامیٹرز کو تلاش کرتی ہے۔
مختلف پرجاتیوں کے لئے خصوصی پیرامیٹرز ٹیمپلیٹس تیار کریں۔
کوانٹیکٹیو ریٹرننگ فریم ورک تیار کریں ، تیز رفتار تکرار کی حکمت عملی تیار کریں
یہ حکمت عملی قیمتوں میں اضافے اور قیمتوں میں اضافے کی بنیاد پر ٹریڈنگ سگنل کا فیصلہ کرتی ہے ، اور متحرک اوسط ٹیکنالوجی فلٹرنگ شور کا استعمال کرتی ہے۔ اس میں لچکدار پیرامیٹرز کی تشکیل کی جاسکتی ہے ، جس سے متعدد اثرات مرتب ہوسکتے ہیں۔ اس میں کچھ فوائد ہیں ، لیکن اس میں کچھ مسائل بھی ہیں ، جیسے کم سگنل ، تاخیر وغیرہ۔ زیادہ اشارے کے مجموعے کے فیصلے ، مشین لرننگ کے طریقوں وغیرہ کو متعارف کرانے کے ذریعہ اصلاح کی جاسکتی ہے ، جس سے ایک مضبوط تجارتی حکمت عملی تشکیل دی جاسکتی ہے۔ مختلف اقسام اور مارکیٹ کے ماحول کے لئے پیرامیٹرز کو ایڈجسٹ کرنے کی ضرورت ہے ، تاکہ بہترین اثر حاصل کیا جاسکے۔
/*backtest
start: 2022-10-17 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//strategy(title = "Open Close Cross Strategy", shorttitle = "OCC Strategy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10)
// Revision: 1
// Author: @JayRogers
//
// Description:
// - Strategy based around Open-Close Crossovers.
// Setup:
// - I have generally found that setting the strategy resolution to 3-4x that of the chart you are viewing
// tends to yield the best results, regardless of which MA option you may choose (if any)
// - Don't aim for perfection. Just aim to get a reasonably snug fit with the O-C band, with good runs of
// green and red.
// - Option to either use basic open and close series data, or pick your poison with a wide array of MA types.
// - Optional trailing stop for damage mitigation if desired (can be toggled on/off)
// - Positions get taken automagically following a crossover - which is why it's better to set the resolution
// of the script greater than that of your chart, so that the trades get taken sooner rather than later.
// - If you make use of the trailing stops, be sure to take your time tweaking the values. Cutting it too fine
// will cost you profits but keep you safer, while letting them loose could lead to more drawdown than you
// can handle.
// === INPUTS ===
useRes = input(defval = true, title = "Use Alternate Resolution? ( recommended )")
stratRes = input(defval = "120", title = "Set Resolution ( should not be lower than chart )")
useMA = input(defval = true, title = "Use MA? ( otherwise use simple Open/Close data )")
basisType = input(defval = "DEMA", title = "MA Type: SMA, EMA, DEMA, TEMA, WMA, VWMA, SMMA, HullMA, LSMA, ALMA ( case sensitive )")
basisLen = input(defval = 14, title = "MA Period", minval = 1)
offsetSigma = input(defval = 6, title = "Offset for LSMA / Sigma for ALMA", minval = 0)
offsetALMA = input(defval = 0.85, title = "Offset for ALMA", minval = 0, step = 0.01)
useStop = input(defval = true, title = "Use Trailing Stop?")
slPoints = input(defval = 200, title = "Stop Loss Trail Points", minval = 1)
slOffset = input(defval = 400, title = "Stop Loss Trail Offset", minval = 1)
// === /INPUTS ===
// === BASE FUNCTIONS ===
// Returns MA input selection variant, default to SMA if blank or typo.
variant(type, src, len, offSig, offALMA) =>
v1 = sma(src, len) // Simple
v2 = ema(src, len) // Exponential
v3 = 2 * v2 - ema(v2, len) // Double Exponential
v4 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len) // Triple Exponential
v5 = wma(src, len) // Weighted
v6 = vwma(src, len) // Volume Weighted
v7 = na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len // Smoothed
v8 = wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) // Hull
v9 = linreg(src, len, offSig) // Least Squares
v10 = alma(src, len, offALMA, offSig) // Arnaud Legoux
type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : type=="SMMA"?v7 : type=="HullMA"?v8 : type=="LSMA"?v9 : type=="ALMA"?v10 : v1
// security wrapper for repeat calls
reso(exp, use, res) => use ? request.security(syminfo.tickerid, res, exp) : exp
// === /BASE FUNCTIONS ===
// === SERIES SETUP ===
// open/close
//closeSeries = useMA ? reso(variant(basisType, close, basisLen, offsetSigma, offsetALMA), useRes, stratRes) : reso(close, useRes, stratRes)
openSeries = useMA ? reso(variant(basisType, open, basisLen, offsetSigma, offsetALMA), useRes, stratRes) : reso(open, useRes, stratRes)
x = openSeries[1]
trendState = x > openSeries ? true : x < openSeries ? false : trendState[1]
// === /SERIES ===
// === PLOTTING ===
barcolor(color = x > openSeries ? #006600 : #990000, title = "Bar Colours")
// channel outline
closePlot = plot(x, title = "Close Line", color = #009900, linewidth = 2, style = line, transp = 90)
openPlot = plot(openSeries, title = "Open Line", color = #CC0000, linewidth = 2, style = line, transp = 90)
// channel fill
closePlotU = plot(trendState ? x : na, transp = 100, editable = false)
openPlotU = plot(trendState ? openSeries : na, transp = 100, editable = false)
closePlotD = plot(trendState ? na : x, transp = 100, editable = false)
openPlotD = plot(trendState ? na : openSeries, transp = 100, editable = false)
fill(openPlotU, closePlotU, title = "Up Trend Fill", color = #009900, transp = 40)
fill(openPlotD, closePlotD, title = "Down Trend Fill", color = #CC0000, transp = 40)
// === /PLOTTING ===
// === STRATEGY ===
// conditions
longCond = crossover(openSeries, x)
shortCond = crossunder(openSeries, x)
// entries and base exit
strategy.entry("long", true, when = longCond)
strategy.entry("short", false, when = shortCond)
// if we're using the trailing stop
//if (useStop)
// strategy.exit("XL", from_entry = "long", trail_points = slPoints, trail_offset = slOffset)
// strategy.exit("XS", from_entry = "short", trail_points = slPoints, trail_offset = slOffset)
// not sure needed, but just incase..
//strategy.exit("XL", from_entry = "long", when = shortCond)
//strategy.exit("XS", from_entry = "short", when = longCond)
// === /STRATEGY ===