
ایلس رینڈم سائیکلنگ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جو ٹریڈنگ سگنل پیدا کرنے کے لئے ایلس کے بے ترتیب سائیکلنگ اشارے کا استعمال کرتی ہے۔ اس حکمت عملی کا مقصد مارکیٹ میں وقتا فوقتا مواقع پر قبضہ کرنے کے لئے بے ترتیب اشارے اور سائیکلنگ اشارے کے فوائد کو جوڑنا ہے۔
یہ حکمت عملی سب سے پہلے ایک ہموار دورانیہ اشارے کی تعمیر کرتی ہے اور پھر اس اشارے کی بنیاد پر ایک بے ترتیب اشارے کی قیمت کی تعمیر کرتی ہے۔ تجارت کے سگنل کی پیداوار کا فیصلہ اس بے ترتیب اشارے کی قیمت کے چلنے والی اوسط کی کراسنگ کے مطابق کیا جاتا ہے۔
خاص طور پر ، ہموار دورانیہ اشارے کا حساب کتاب کرنے کا طریقہ یہ ہے:
smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6
جہاں src قیمت کے اعداد و شمار کی ایک ان پٹ ہے ، جیسے اختتامی قیمت۔ یہ اشارے موجودہ قیمت اور پچھلے 3 وقت کی قیمتوں کو مل کر ایک ہموار دورانیہ کا اشارہ بناتا ہے۔
اس smoothed اشارے کی بنیاد پر، پھر ایک بے ترتیب اشارے کی سائیکل کا حساب لگایا جا سکتا ہے:
cycle := (1 - .5 * alpha) * (1 - .5 * alpha) *
(smooth - 2 * smooth[1] + smooth[2]) +
2 * (1 - alpha) * cycle[1] -
(1 - alpha) * (1 - alpha) * cycle[2]
اس حساب کتاب کے فارمولے میں ہموار ہونے کے بعد کی مدت کے سگنل کے دو درجے کے تفریق اور پچھلے دو ادوار کی اقدار شامل ہیں۔ α ہموار کرنے والا عنصر ہے ، جو نئے اور پرانے دورانیے کی اقدار کا وزن ایڈجسٹ کرتا ہے۔
آخر میں ، اس سائیکل اشارے کے مطابق ، 0-100 کی ایک بے ترتیب قدر value1 کی گنتی کی جاتی ہے۔ اور value1 کی 10 دن کی متحرک اوسط کے مطابق سگنل کی قدر signal2 کی تعمیر کی جاتی ہے۔ جب سگنل کی متحرک اوسط سے اوپر یا نیچے ہوتا ہے تو ، ایک تجارتی سگنل جاری ہوتا ہے۔
اس حکمت عملی میں بے ترتیب اشارے اور دورانیہ اشارے کا امتزاج کیا گیا ہے ، جس میں ان دونوں کے فوائد کو جوڑ دیا گیا ہے۔ یہ حکمت عملی سادہ حرکت پذیری اوسط جیسی رجحانات کی حکمت عملی کے مقابلے میں بہتر کارکردگی کا مظاہرہ کرتی ہے ، جس میں دورانیہ کے مواقع کو بہتر طور پر پکڑ سکتا ہے۔
اہم فوائد:
اس حکمت عملی میں مندرجہ ذیل خطرات شامل ہیں:
آپ کو آپٹمائزڈ پیرامیٹرز کی ترتیب، سٹاپ نقصان کی ترتیب، اور دیگر فلٹرنگ کے اشارے کے ساتھ مل کر اس طرح کے طریقوں کے ذریعے خطرے کو کنٹرول کر سکتے ہیں.
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
ایلس رینڈم سائیکل اسٹریٹجی رینڈم اشارے اور سائیکل اشارے کے جامع استعمال کے فوائد کا استعمال کرتی ہے ، جس میں ڈبل سگنل ڈیزائن کے ذریعہ خطرے کو مؤثر طریقے سے کنٹرول کیا جاتا ہے ، جس سے زیادہ دورانیہ والی مارکیٹوں میں بہتر منافع حاصل کیا جاسکتا ہے۔ مزید اصلاح کے ساتھ ، یہ حکمت عملی ایک تجویز کردہ مقدار کی تجارت کی حکمت عملی بن سکتی ہے۔
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Ehlers Stochastic Cyber Cycle Strategy",overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, commission_type = strategy.commission.percent, commission_value = 0.1)
src = input(hl2, title = "Source")
alpha = input(.07, title = "Alpha")
lag = input(9, title = "Lag")
smooth = (src + 2 * src[1] + 2 * src[2] + src[3]) / 6
len = input(8, title = "Stochastic len")
cycle = na
if na(cycle[7])
cycle := (src - 2 * src[1] + src[2]) / 4
else
cycle := (1 - .5 * alpha) * (1 - .5 * alpha) * (smooth - 2 * smooth[1] + smooth[2]) + 2 * (1 - alpha) * cycle[1] - (1 - alpha) * (1 - alpha) * cycle[2]
value1 = stoch(cycle, cycle, cycle, len) / 100
value2 = 2 * ((4 * value1 + 3 * value1[1] + 2 * value1[2] + value1[3]) / 10 - 0.5)
signal = value2
oppositeTrade = input(true)
barsSinceEntry = 0
barsSinceEntry := nz(barsSinceEntry[1]) + 1
if strategy.position_size == 0
barsSinceEntry := 0
if (crossover(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossunder(signal, signal[1]))
strategy.entry("Long", strategy.long)
barsSinceEntry := 0
if (crossunder(signal, signal[1]) and not oppositeTrade) or (oppositeTrade and crossover(signal, signal[1]))
strategy.entry("Short", strategy.short)
barsSinceEntry := 0
if strategy.openprofit < 0 and barsSinceEntry > 8
strategy.close_all()
barsSinceEntry := 0
plot(0, title="ZeroLine", color=gray)
plotSrc = signal
cyclePlot = plot(plotSrc, title = "CyberCycle", color = blue)
triggerPlot = plot(plotSrc[1], title = "Trigger", color = green)
fill(cyclePlot, triggerPlot, color = plotSrc < plotSrc[1] ? red : lime, transp = 50)