یہ حکمت عملی LuxAlgo
ٹی ایم او اشارے قیمت کی رفتار کی عکاسی کرتا ہے۔ یہ آسکیلیٹر اشارے کی قسم سے تعلق رکھتا ہے اور جب اختلاف ہوتا ہے تو تجارتی سگنل تیار کرسکتا ہے۔ اے ایم اے اشارے ایک ہموار حرکت پذیر اوسط ہے۔ یہ قیمتوں میں اتار چڑھاؤ کی ایک حد دکھاتا ہے ، جب قیمت اوور بک / اوور سیل حالات کی نشاندہی کرتی ہے جب قیمت اوپری / نچلے بینڈ کی طرف بڑھتی ہے۔
اس حکمت عملی کے پیچھے بنیادی منطق یہ ہے کہ: ٹی ایم او تجارتی سگنل پیدا کرنے کے لئے رجحان کی تغیر کا پتہ لگاسکتی ہے۔ ایم اے اے قیمتوں میں الٹ زون کی نشاندہی کرسکتا ہے۔ موم بتی کے جسم کے سائز میں اضافے کی تصدیق کے ساتھ ، وہ رجحان کے آغاز کو پکڑنے کی درستگی کو بہتر بنا سکتے ہیں۔ لہذا حکمت عملی طویل / مختصر ہوگی جب:
اس سے واحد اشارے کے غلط سگنل کا مسئلہ حل ہوجاتا ہے۔ حالیہ باروں
اس حکمت عملی کے فوائد میں شامل ہیں:
اشارے کا مجموعہ سگنل کی درستگی کو بہتر بناتا ہے۔ ٹی ایم او اور اے ایم اے غلط سگنل کو کم کرنے اور درستگی کو بہتر بنانے کے لئے ایک دوسرے کی توثیق کرتے ہیں۔
متعدد حالات رجحان کے آغاز پر قبضہ کرتے ہیں۔ ٹی ایم او سگنل ، اے ایم اے انتہا اور موم بتی کے سائز میں اضافے کا امتزاج حکمت عملی کو مؤثر طریقے سے رجحان کے آغاز کی نشاندہی کرنے کی اجازت دیتا ہے ، جس کے بعد اسکیلپنگ کی حکمت عملیوں کا پیچھا کیا جاتا ہے۔
موم بتی پر مبنی اسٹاپ نقصان خطرہ کا انتظام کرتا ہے۔ حالیہ سلاخوں
جامع اور موثر منطق۔ صرف دو اشارے کے ساتھ ، حکمت عملی نے واضح اور آسان منطق کے ساتھ ایک مکمل اسکیلپنگ سسٹم نافذ کیا ہے۔ بیک ٹیسٹ کے نتائج بھی منافع بخش نظر آتے ہیں۔
حکمت عملی کے اہم خطرات:
اکثر ان آؤٹ ٹریڈنگ کا خطرہ۔ مختصر انعقاد کی مدت کو نشانہ بنانے والی اسکیلپنگ حکمت عملی کے طور پر ، اعلی تجارتی لاگت اس کی منافع کو متاثر کرسکتی ہے۔
جارحانہ اسٹاپ نقصان کا خطرہ۔ اسٹاپ نقصان کے لئے حالیہ انتہائی قیمتوں کا استعمال کرتے ہوئے ، یہ مارکیٹ کے شور کے لئے کمزور ہوسکتا ہے اور اسٹاپ نقصان کو متحرک کرنے کا امکان بڑھ سکتا ہے۔
پیرامیٹر کی اصلاح کا مشکل خطرہ۔ حکمت عملی میں متعدد پیرامیٹرز شامل ہیں۔ پیرامیٹرز کا بہترین مجموعہ تلاش کرنا مشکل ہوسکتا ہے۔
اسٹریٹیجی کو مندرجہ ذیل شعبوں میں مزید بہتر بنایا جاسکتا ہے:
غلط سگنل کو دور کرنے اور سگنل کے معیار کو مزید بہتر بنانے کے لئے حجم جیسے زیادہ فلٹر اشارے شامل کریں۔
سٹاپ نقصان کے قوانین پر ترمیم کی جانچ کریں تاکہ اسے کم جارحانہ بنایا جاسکے ، مثال کے طور پر اسٹاپ نقصان کو چلانے سے پہلے تصدیق کی سلاخوں کو شامل کریں۔
اشارے کے لئے بہترین پیرامیٹر مجموعہ تلاش کرنے کے لئے پیرامیٹر کی اصلاح کریں ، جس سے زیادہ شور کو فلٹر کرنے اور جیت کی شرح میں اضافہ کرنے میں مدد مل سکتی ہے۔ بنیادی طور پر TMO لمبائی ، AMA لمبائی اور ضرب کو بہتر بنائیں۔
اس حکمت عملی کی منطق کے لئے بہترین فٹ مارکیٹ کی حالت کو تلاش کرنے کے لئے مختلف مصنوعات اور ٹائم فریموں میں بیک ٹیسٹ اور تجارت کریں.
یہ حکمت عملی TMO اور AMA کے تجارتی سگنلز کو ابتدائی رجحان کی نقل و حرکت پر قبضہ کرکے رینج سے منسلک مارکیٹوں میں اسکیلپ میں جوڑتی ہے۔ اس کے پاس سگنل کی اعلی درستگی ، ابتدائی رجحان کی گرفتاری اور موثر رسک کنٹرول کے فوائد ہیں۔ پیرامیٹرز اور حکمت عملی کے قوانین پر مزید اصلاحات اسے انتہائی عملی انٹرا ڈے اسکیلپنگ حکمت عملی بنا سکتی ہیں۔
/*backtest start: 2023-11-23 00:00:00 end: 2023-11-30 00:00:00 period: 10m basePeriod: 1m 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/ // © Kaspricci //@version=5 strategy("TradeIQ - Crazy Scalping Trading Strategy [Kaspricci]", overlay=true, initial_capital = 1000, currency = currency.USD) headlineTMO = "TMO Settings" tmoLength = input.int(7, "TMO Length", minval = 1, group = headlineTMO) tmoSource = input.source(close, "TMO Source", group = headlineTMO) // calculate values osc = ta.mom(ta.sma(ta.sma(tmoSource, tmoLength), tmoLength), tmoLength) // determine color of historgram oscColor = osc > osc[1] and osc > 0 ? #00c42b : osc < osc[1] and osc > 0 ? #4ee567 : osc < osc[1] and osc < 0 ? #ff441f : osc > osc[1] and osc < 0 ? #c03920 : na // plot histogram //plot(osc, "OSC", oscColor, linewidth = 3, style = plot.style_histogram) // conditon to find highs and lows up = ta.highest(tmoSource, tmoLength) dn = ta.lowest(tmoSource, tmoLength) // define conditions to be used for finding divergence phosc = ta.crossunder(ta.change(osc), 0) plosc = ta.crossover (ta.change(osc), 0) // test for divergence bear = osc > 0 and phosc and ta.valuewhen(phosc,osc,0) < ta.valuewhen(phosc,osc,1) and ta.valuewhen(phosc,up,0) > ta.valuewhen(phosc,up,1) ? 1 : 0 bull = osc < 0 and plosc and ta.valuewhen(plosc,osc,0) > ta.valuewhen(plosc,osc,1) and ta.valuewhen(plosc,dn,0) < ta.valuewhen(plosc,dn,1) ? 1 : 0 // ------------------------------------------------------------------------------------------------------------- headlineAMA = "AMA Settings" amaSource = input.source(defval = close, title = "AMA Source", group = headlineAMA) amaLength = input.int(defval = 50, title = "AMA Length", minval = 2, group = headlineAMA) amaMulti = input.float(defval = 2.0, title = "Factor", minval = 1) amaShowCd = input(defval = true , title = "As Smoothed Candles") amaShowEx = input(defval = true, title = "Show Alternating Extremities") amaAlpha = input.float(1.0, "Lag", minval=0, step=.1, tooltip='Control the lag of the moving average (higher = more lag)', group= 'AMA Kernel Parameters') amaBeta = input.float(0.5, "Overshoot", minval=0, step=.1, tooltip='Control the overshoot amplitude of the moving average (higher = overshoots with an higher amplitude)', group='AMA Kernel Parameters') // ------------------------------------------------------------------------------------------------------------- headlineSL = "Stop Loss Settings" slLength = input.int(defval = 10, title = "SL Period", minval = 1, group = headlineSL, tooltip = "Number of bars for swing high / low") // ------------------------------------------------------------------------------------------------------------- var b = array.new_float(0) var float x = na if barstate.isfirst for i = 0 to amaLength - 1 x := i / (amaLength - 1) w = math.sin(2 * 3.14159 * math.pow(x, amaAlpha)) * (1 - math.pow(x, amaBeta)) array.push(b, w) // local function to filter the source filter(series float x) => sum = 0. for i = 0 to amaLength - 1 sum := sum + x[i] * array.get(b,i) sum / array.sum(b) // apply filter function on source series srcFiltered = filter(amaSource) deviation = ta.sma(math.abs(amaSource - srcFiltered), amaLength) * amaMulti upper = srcFiltered + deviation lower = srcFiltered - deviation //---- crossHigh = ta.cross(high, upper) crossLow = ta.cross(low, lower) var os = 0 os := crossHigh ? 1 : crossLow ? 0 : os[1] ext = os * upper + (1 - os) * lower //---- os_css = ta.rsi(srcFiltered, amaLength) / 100 extColor = os == 1 ? #30FF85 : #ff1100 plot(srcFiltered, "MA", amaShowCd ? na : color.black, 2, editable = false) plot(amaShowEx ? ext : na, "Extremities", ta.change(os) ? na : extColor, 2, editable=false) // handle smoothed candles var float h = na var float l = na var float c = na var float body = na if amaShowCd h := filter(high) l := filter(low) c := filter(amaSource) body := math.abs(math.avg(c[1], c[2]) - c) ohlc_os = ta.rsi(c, amaLength) / 100 plotcandle(math.avg(c[1], c[2]), h, l, c, "Smooth Candles", #434651, bordercolor = na, editable = false, display = amaShowCd ? display.all : display.none) // ------------------------------------------------------------------------------------------------------------- plotshape(bull ? ext : na, "Bullish Circle", shape.circle, location.absolute, color = #00c42b, size=size.tiny) plotshape(bear ? ext : na, "Bearish Circle", shape.circle, location.absolute, color = #ff441f, size=size.tiny) plotshape(bull ? ext : na, "Bullish Label", shape.labeldown, location.absolute, color = #00c42b, text="Buy", textcolor=color.white, size=size.tiny) plotshape(bear ? ext : na, "Bearish Label", shape.labelup, location.absolute, color = #ff441f, text="Sell", textcolor=color.white, size=size.tiny) // ------------------------------------------------------------------------------------------------------------- candleSizeIncreasing = body[2] < body[1] and body[1] < body[0] longEntryCond = os == 1 and bull shortEntryCond = os == 0 and bear longEntry = strategy.opentrades == 0 and candleSizeIncreasing and not candleSizeIncreasing[1] and ta.barssince(longEntryCond) < ta.barssince(os == 0) and ta.barssince(longEntryCond) < ta.barssince(bear) shortEntry = strategy.opentrades == 0 and candleSizeIncreasing and not candleSizeIncreasing[1] and ta.barssince(shortEntryCond) < ta.barssince(os == 1) and ta.barssince(shortEntryCond) < ta.barssince(bull) longExit = strategy.opentrades > 0 and strategy.position_size > 0 and (bear or os == 0) shortExit = strategy.opentrades > 0 and strategy.position_size < 0 and (bull or os == 1) recentSwingHigh = ta.highest(high, slLength) // highest high of last candles recentSwingLow = ta.lowest(low, slLength) // lowest low of recent candles bgcolor(longEntry ? color.rgb(76, 175, 79, 90) : na) bgcolor(shortEntry ? color.rgb(255, 82, 82, 90) : na) slLong = (close - recentSwingLow) / syminfo.mintick // stop loss in ticks slShort = (recentSwingHigh - close) / syminfo.mintick // stop loss in ticks newOrderID = str.tostring(strategy.closedtrades + strategy.opentrades + 1) curOrderID = str.tostring(strategy.closedtrades + strategy.opentrades) alertMessageForEntry = "Trade {0} - New {1} Entry at price: {2} with stop loss at: {3}" if (longEntry) alertMessage = str.format(alertMessageForEntry, newOrderID, "Long", close, recentSwingLow) strategy.entry(newOrderID, strategy.long, alert_message = alertMessage) strategy.exit("Stop Loss Long", newOrderID, loss = slLong, alert_message = "Stop Loss for Trade " + newOrderID) if(longExit) strategy.close(curOrderID, alert_message = "Close Trade " + curOrderID) if (shortEntry) alertMessage = str.format(alertMessageForEntry, newOrderID, "Short", close, recentSwingLow) strategy.entry(newOrderID, strategy.short, alert_message = alertMessage) strategy.exit("Stop Loss Short", newOrderID, loss = slShort, alert_message = "Stop Loss for Trade " + newOrderID) if(shortExit) strategy.close(curOrderID, alert_message = "Close Trade " + curOrderID)