اس حکمت عملی میں تیزی سے چلنے والی اوسط اور آہستہ چلنے والی اوسط کا ایک کراس اصول استعمال کیا گیا ہے تاکہ مارکیٹ کے رجحان کی سمت کا اندازہ لگایا جاسکے اور خرید و فروخت کے سگنل دیئے جاسکیں۔ حکمت عملی کو سمجھنا آسان ہے ، اس پر عمل درآمد کرنا آسان ہے ، اور اس کا اطلاق مڈل اور شارٹ لائن تجارت پر ہوتا ہے۔
یہ حکمت عملی دو چلتی اوسطوں کا استعمال کرتی ہے ، ایک تیز لائن اور ایک سست لائن۔ تیز لائن کا پیرامیٹر 3 دن کا ای ایم اے ہے ، اور سست لائن کا پیرامیٹر 15 دن کا ای ایم اے ہے۔ حکمت عملی کا فیصلہ ہے کہ جب تیز لائن نیچے کی طرف سے سست لائن کو توڑتی ہے تو ، اس وقت اسے ایک خریدنے کا اشارہ سمجھا جاتا ہے۔ اس کے برعکس ، جب تیز لائن اوپر کی طرف سے نیچے کی طرف سے سست لائن کو توڑتی ہے ، تو اسے اس وقت ایک فروخت کا اشارہ سمجھا جاتا ہے۔
اس حکمت عملی میں ایک تیز تر پیرامیٹر 3 دن کا ای ایم اے بھی مقرر کیا گیا ہے۔ جب قیمت اس تیزی سے باہر نکلنے والی لائن سے نیچے آجاتی ہے تو ، اس رجحان کو تبدیل کرنے کا فیصلہ کیا جاتا ہے ، اور اسے اپنی اصل کثیر جہتی پوزیشن سے باہر نکلنا چاہئے۔ اسی طرح ، جب قیمت دوبارہ اس راستے سے باہر نکل جاتی ہے تو ، یہ دوبارہ بیعانہ میں تبدیل ہوجاتا ہے ، لہذا یہ دوبارہ داخل ہونے کا اشارہ ہے۔
مخصوص آپریٹنگ سگنل کی ترتیبات مندرجہ ذیل ہیں:
تیز رفتار لائن نیچے سے اوپر کی طرف سے، سست رفتار لائن کو توڑنے کے لئے، زیادہ سے زیادہ
تیز رفتار لائنیں اوپر سے نیچے کی طرف گرتی ہیں اور سست رفتار لائنوں کو توڑتی ہیں
قیمتوں میں تیزی سے باہر نکلنے کی لائن سے نیچے گرنے کے بعد ، قیمتوں میں اضافہ ہوا
قیمتوں میں تیزی سے باہر نکلنے کی لائن کو دوبارہ توڑنے کے لئے
استعمال میں آسان، صرف دو منتقل اوسط کے پیرامیٹرز کو ترتیب دینے کی ضرورت ہے، اور لاگو کرنے میں بہت آسان ہے
کافی اعداد و شمار کا پتہ لگانا ، حکمت عملی کی تاثیر کا اندازہ کرنے کے لئے استعمال ہونے والے عام اشارے
زیادہ سے زیادہ ترتیب کے پیرامیٹرز، آپ کو پیرامیٹرز کو ایڈجسٹ کرکے حکمت عملی کو بہتر بنانے کے کر سکتے ہیں
خطرے کو بہتر طور پر کنٹرول کرنے کے لئے اسٹاپ نقصان کو فوری طور پر اوسط سے ہٹانے کی ترتیب کا استعمال کریں
حکمت عملی واضح ہے ، خرید و فروخت کے اشارے بہت واضح ہیں
آپریٹنگ فریکوئینسی کو اعتدال پسند بنائیں اور زیادہ بار بار تجارت سے گریز کریں
رجحانات کی پیروی کرنے کی حکمت عملی کے طور پر ، جب رجحانات واضح نہیں ہوتے ہیں تو ، مزید جعلی سگنل تیار کیے جاتے ہیں
ایک بار جب آپ نے یہ سمجھا ہے کہ آپ کے پاس اس کے بارے میں معلومات نہیں ہے تو ، آپ کو اس کے بارے میں مزید معلومات حاصل کرنے کی ضرورت ہے۔
فکسڈ پیرامیٹرز کی ترتیبات مارکیٹ میں تبدیلیوں کے مطابق نہیں ہوسکتی ہیں ، پیرامیٹرز کے بہتر استعمال کے ساتھ کام کرنا چاہئے
نقصان کی روک تھام کی ترتیبات بہت کمزور ہوسکتی ہیں اور وقت پر نقصان کو روک نہیں سکتی ہیں
اسٹریٹجک سگنلز زیادہ ہوتے ہیں اور ٹرانزیکشن کی لاگت زیادہ ہوسکتی ہے
ٹریڈنگ سگنل میں انحراف کا امکان ہے ، جس کی تصدیق دیگر اشارے کے ساتھ کی جانی چاہئے
پیرامیٹرز کو بہتر بنانے ، دوسرے اشارے کی تصدیق کے ساتھ معاونت کرنے ، نقصان کے معیار کو مناسب طریقے سے نرمی دینے ، اور پیرامیٹرز کو بروقت اپ ڈیٹ کرنے جیسے طریقوں سے خطرے کو کنٹرول کیا جاسکتا ہے۔
موجودہ مارکیٹ کی خصوصیات کے مطابق زیادہ متحرک اوسط پیرامیٹرز کو بہتر بنانے کے لئے ٹیسٹ کیا جا سکتا ہے
مزید اشارے متعارف کروائے جاسکتے ہیں تاکہ ان کو ایک مضبوط حکمت عملی کے نظام میں جوڑا جاسکے
مرضی کے مطابق پیرامیٹرز کی ترتیبات کو مارکیٹ کے مطابق پیرامیٹرز کو ریئل ٹائم ایڈجسٹ کرنے کے لئے مقرر کیا جاسکتا ہے
حکمت عملی کو بہتر بنانے کے لئے مشین لرننگ الگورتھم کو متعارف کرانے کے لئے
متحرک سٹاپ اور ٹریکنگ سٹاپ کو بہتر طور پر کنٹرول کرنے کے لیے خطرہ مقرر کیا جا سکتا ہے
کوالٹی انرجی کے اشارے کو جوڑ کر غلط موڑ کے نتیجے میں انحراف سے بچایا جاسکتا ہے
یہ حکمت عملی مجموعی طور پر ایک نسبتا simple آسان دوہری حرکت پذیر اوسط کراسنگ حکمت عملی ہے۔ یہ مارکیٹ کے رجحانات اور خرید و فروخت کے اوقات کا تعین کرنے کے لئے تیز رفتار اوسط اور سست رفتار اوسط کے مابین کراسنگ تعلقات کا استعمال کرتی ہے۔ حکمت عملی کی خوبی یہ ہے کہ اس کی سوچ واضح ہے ، اس پر عمل درآمد کرنا آسان ہے ، اور اس کے پیرامیٹرز کو بہتر بنانے کے ذریعہ مختلف مارکیٹوں کے مطابق ڈھال لیا جاسکتا ہے۔ لیکن اس میں کچھ خطرات بھی موجود ہیں ، جس میں زیادہ اشارے متعارف کرانے کی ضرورت ہے ، اور اس کی تصدیق کی ضرورت ہے۔ اگر اس کا استعمال وسط لائن میں کیا جاتا ہے ، اور مسلسل اصلاح کے ساتھ ایڈجسٹ کیا جاتا ہے تو ، یہ حکمت عملی ایک بہت ہی عملی مقداری تجارتی نظام بن سکتی ہے۔
/*backtest
start: 2023-01-01 00:00:00
end: 2023-02-03 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/
// © ehaarjee, ECHKAY, JackBauer007
//@version=4
//study(title="Tale_indicators", overlay=true)
strategy("Tale Indicators Strategy", overlay=true, precision=8, max_bars_back=200, pyramiding=0, initial_capital=20000, commission_type="percent", commission_value=0.1)
len_fast = input(3, minval=1, title="FAST EMA")
src_fast = input(close, title="Source for Fast")
fastMA = ema(src_fast, len_fast)
plot(fastMA, title="Slow EMA", color=color.orange)
len_slow = input(15, minval=1, title="SLOW EMA")
src_slow = input(close, title="Source for Slow")
slowMA = ema(src_slow, len_slow)
plot(slowMA, title="Fast EMA", color=color.blue)
len_fast_exit = input(3, minval=1, title="FAST EMA Exit")
src_fast_exit = input(close, title="Source for Fast Exit")
fastMAE = ema(src_fast_exit, len_fast_exit)
plot(fastMAE, title="Fast EMA Ex", color=color.red)
src_slow_enter_short = input(low, title="Source for Short Entry")
slowMASEn = ema(src_slow_enter_short, len_slow)
src_slow_enter_long = input(high, title="Source for Long Entry")
slowMALEn = ema(src_slow_enter_long, len_slow)
src_slow_exit_short = input(low, title="Source for Short Exit")
slowMASEx = ema(src_slow_enter_short, len_slow)
src_slow_exit_long = input(high, title="Source for Long Exit")
slowMALEx = ema(src_slow_enter_long, len_slow)
enter_long = crossover(fastMA, slowMALEn)
enter_short = crossunder(fastMA, slowMASEn)
exit_long = crossunder(fastMAE, slowMALEx)
exit_short = crossover(fastMAE, slowMALEx)
out_enter = iff(enter_long == true, 1, iff(enter_short == true, -1, 0))
plotarrow(out_enter, "Plot Enter Points", colorup=color.green, colordown=color.red, maxheight = 30)
bull = fastMA > slowMALEn
bear = fastMA < slowMASEn
c = bull ? color.green : bear ? color.red : color.white
bgcolor(c)
exit_tuner = input(0.005, title="Exit Tuner to touch slowEMA")
bull_exit = (bull and (low>(fastMAE*(1+exit_tuner)))) or exit_long or (not(bear) and (fastMAE>high))
bear_exit = (bear and ((fastMAE*(1-exit_tuner))>high)) or exit_short or (not(bull) and (low>fastMAE))
bull_r = (bull and ((bull_exit[1]) or (bull_exit[2] and bull_exit[1])) and (low<=fastMAE))
bear_r = (bear and ((bear_exit[1]) or (bull_exit[2] and bull_exit[1])) and (fastMAE<=high))
bull_re = (bull and (low<slowMALEn)) and not(enter_long)
bear_re = (bear and (high>slowMASEn)) and not(enter_short)
bull_ree = (bull and ((low<slowMALEn) and not(bull_re[1] or enter_long[1])))
bear_ree = (bear and ((high>slowMASEn) and not(bear_re[1] or enter_short[1])))
bull_reenter = (bull_r) and not(enter_long)
bear_reenter = (bear_r) and not(enter_short)
plotshape(bull_exit, "Plot Bull Exit", style = shape.arrowdown, color=color.green, size=size.small, text="ExL", location=location.abovebar)
plotshape(bear_exit, "Plot Bear Exit", style = shape.arrowup, color=color.red, size=size.small, text="ExS", location=location.belowbar)
plotshape(bull_reenter, "Plot Bull ReEnter", style = shape.arrowup, color=color.green, size=size.small, text="ReL", location=location.belowbar)
plotshape(bear_reenter, "Plot Bear ReEnter", style = shape.arrowdown, color=color.red, size=size.small, text="ReS", location=location.abovebar)
run_strategy = input(true, title="Run Strategy")
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 2000)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2100, title = "Thru Year", type = input.integer, minval = 2000)
// === INPUT SHOW PLOT ===
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
var long_position_open = false
var short_position_open = false
if (enter_long and not(bull_exit) and not(long_position_open))
// strategy.entry("LO", strategy.long, qty=4)
long_position_open := true
if (short_position_open)
// strategy.close("SO")
short_position_open := false
if (bull_reenter and not(long_position_open))
// strategy.entry("LO", strategy.long, qty=1)
long_position_open := true
if (bull_exit and long_position_open)
// strategy.close("LO")
long_position_open := false
if (enter_short and not(bear_exit) and not(short_position_open))
// strategy.entry("SO", strategy.short, qty=4)
short_position_open := true
if(long_position_open)
// strategy.close("LO")
long_position_open := false
if (bear_reenter and not(short_position_open))
// strategy.entry("SO", strategy.long, qty=1)
long_position_open := true
if (bear_exit and short_position_open)
// strategy.close("SO")
short_position_open := false
if(run_strategy)
strategy.entry("LO", strategy.long, when=(window() and enter_long), qty=4)
strategy.entry("LO", strategy.long, when=(window() and bull_reenter and not(long_position_open)), qty=1)
strategy.close("LO", when=(window() and bull_exit and long_position_open))
strategy.entry("SO", strategy.short, when=(window() and enter_short), qty=4)
strategy.entry("SO", strategy.short, when=(window() and bear_reenter and not(short_position_open)), qty=1)
strategy.close("SO", when=(window() and bear_exit and short_position_open))