اس حکمت عملی میں لکس الگو کے ذریعہ تیار کردہ ٹی ایم او اور اے ایم اے دونوں اشارے کے خرید و فروخت کے اشارے کا مجموعہ کیا گیا ہے ، جس میں صدمے کی صف بندی میں رجحان کا آغاز کرنے کا موقع ملا ہے۔ یہ ٹی ایم او اشارے کے خرید و فروخت کے اشارے ، اے ایم اے اشارے کے خرید و فروخت کی انتہائی قیمت ، K لائن کی ادارہ جاتی مقدار میں آہستہ آہستہ اضافے وغیرہ کی متعدد شرائط کو پورا کرنے کے بعد ، زیادہ سے زیادہ کال آؤٹ کرے گا۔ اسٹاپ نقصان کا طریقہ حالیہ این کیو لائن کی سب سے زیادہ قیمت ہے۔
ٹی ایم او اشارے قیمت کی نقل و حرکت کی عکاسی کرتا ہے۔ یہ ایک صدماتی اشارے کی قسم ہے ، جس میں قیمت کے انحراف کی صورت میں تجارتی سگنل جاری کیا جاسکتا ہے۔ اے ایم اے اشارے ایک ہموار حرکت پذیر اوسط اشارے ہیں۔ یہ قیمت کے اتار چڑھاؤ کی ایک حد کو ظاہر کرتا ہے ، اور جب قیمت اوپر کی طرف بڑھتی ہے تو اس کا مطلب ہے کہ اوور بیئر اور اوور سیل۔
اس حکمت عملی کا بنیادی منطق یہ ہے کہ: ٹی ایم او اشارے ٹریڈنگ سگنل فراہم کرنے کے لئے قیمت کے رجحان سے انحراف کی عکاسی کرسکتے ہیں ، اے ایم اے اشارے ان علاقوں کو ظاہر کرسکتے ہیں جہاں قیمتوں میں الٹ ہونے کا امکان ہے ، جبکہ رجحان کے آغاز کی تصدیق کے لئے K لائن اداروں کی مقدار میں اضافہ کے ساتھ مل کر۔ لہذا ان کا مجموعہ تجارت کی کامیابی کی شرح کو بڑھا سکتا ہے۔ خاص طور پر ، حکمت عملی مندرجہ ذیل حالات میں پوزیشن کو زیادہ یا کم کرے گی:
اس طرح یہ ایک ہی اشارے کی وجہ سے جھوٹے سگنل کے مسئلے کو حل کرتی ہے۔ اسٹاپ نقصان کا طریقہ N روٹ K لائن میں حالیہ قیمتوں میں سب سے زیادہ قیمتوں کا انتخاب کرتا ہے ، جس سے خطرے کو بہتر طور پر کنٹرول کیا جاسکتا ہے۔
اس حکمت عملی کے درج ذیل فوائد ہیں:
اشارے کا مجموعہ ، سگنل کی درستگی کو بہتر بناتا ہے۔ ٹی ایم او اشارے اور اے ایم اے اشارے ایک دوسرے کی تصدیق کرتے ہیں ، جعلی سگنل کو کم کرسکتے ہیں ، جس سے سگنل کی درستگی میں اضافہ ہوتا ہے۔
ایک سے زیادہ شرائط کا مجموعہ ، رجحان کا آغاز۔ حکمت عملی کے ذریعہ طے شدہ ٹی ایم او اشارے کے اشارے ، اے ایم اے اشارے کی انتہائی قیمت اور K لائن ہستی کی مقدار کو بڑھانا وغیرہ متعدد شرائط ، رجحان کے آغاز کے وقت کو مؤثر طریقے سے پکڑ سکتی ہیں ، جو اسکیلپنگ حکمت عملی کا مقصد ہے۔
K لائن اسٹاپ کا خطرہ کنٹرول کریں۔ K لائن کی تازہ ترین اعلی ترین قیمت کو کم سے کم قیمت کے طور پر روکنے کے لئے ، ہر ایک کے خطرے کو بہتر طور پر کنٹرول کیا جاسکتا ہے۔ اس کے ساتھ ہی ، اشارے کے دوبارہ حساب کتاب سے پیدا ہونے والے پیچھے رہ جانے والے خطرے کو بھی تبدیل نہیں کیا جائے گا۔
سادہ اور موثر تجارتی منطق۔ اس حکمت عملی میں صرف دو اشارے استعمال کیے گئے ہیں تاکہ اس سے زیادہ مکمل اسکیلپنگ حکمت عملی حاصل کی جاسکے۔ یہ پیچیدہ نہیں ہے ، منطق سادہ اور واضح ہے۔ اور مثال کے نتائج کے مطابق ، حکمت عملی نے اچھی منافع حاصل کی ہے۔
اس حکمت عملی میں مندرجہ ذیل خطرات شامل ہیں:
اسکیلپنگ حکمت عملی کے طور پر ، اس کی پوزیشن کی مدت طویل نہیں ہے ، اگر تجارت کی قیمت زیادہ ہے تو ، اس سے منافع پر کچھ اثر پڑتا ہے۔
K لائن سٹاپ بہت زیادہ جارحانہ خطرہ ہے۔ حال ہی میں سب سے زیادہ قیمتوں میں سب سے کم قیمتوں کو روکنے کے طور پر استعمال کیا جاسکتا ہے، جو مارکیٹ کے شور کو مکمل طور پر فلٹر کرنے کے قابل نہیں ہوسکتا ہے، جس سے روکنے کے امکانات میں اضافہ ہوتا ہے.
پیرامیٹرز کو بہتر بنانے میں دشواری کا خطرہ ہے۔ حکمت عملی میں متعدد پیرامیٹرز شامل ہیں ، لہذا بہترین پیرامیٹرز کا مجموعہ تلاش کرنا مشکل ہوسکتا ہے۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
مزید فلٹرنگ میٹرکس جیسے مارکیٹ ٹرانزیکشن کو شامل کرنے سے کچھ جعلی سگنل کو فلٹر کیا جاسکتا ہے اور سگنل کی معیار کو مزید بہتر بنایا جاسکتا ہے۔
اسٹاپ کے طریقہ کار میں فلٹرنگ کی شرائط کو بڑھانے کی کوشش کریں تاکہ اسٹاپ کو زیادہ شدت سے روکنے سے بچا جاسکے۔ مثال کے طور پر ، اسٹاپ کو متحرک کرنے سے پہلے کئی روٹ K لائن کی تصدیق کا انتظار کریں ، پھر اسٹاپ کریں۔
پیرامیٹرز کو بہتر بنانے کے لئے ، اشارے کے پیرامیٹرز کا بہترین مجموعہ تلاش کریں۔ اس سے زیادہ شور کو فلٹر کیا جاسکتا ہے ، حکمت عملی کی کامیابی میں اضافہ ہوتا ہے۔ بنیادی طور پر ٹی ایم او اشارے کی لمبائی ، اے ایم اے اشارے کی لمبائی اور ضرب جیسے پیرامیٹرز کو بہتر بنانا۔
مختلف اقسام اور وقت کے دورانیوں پر فاریکس ٹریڈنگ کی حکمت عملی کا جائزہ لینے کے لئے فاریکس ٹریڈنگ کی اقسام اور دورانیوں کو تلاش کریں جو حکمت عملی کی منطق کے ساتھ سب سے زیادہ مطابقت رکھتا ہے.
اس حکمت عملی میں ٹی ایم او اور اے ایم اے اشارے کے تجارتی اشارے کا مجموعہ ہے ، جو کہ رجحان کے آغاز کے وقت کو تلاش کرنے کے لئے ہنگامہ خیز حالات میں اسکیلپنگ کا استعمال کرتا ہے۔ اس میں اعلی سگنل کی درستگی ، رجحان کو جلدی پکڑنے اور خطرے کو کنٹرول کرنے کے فوائد ہیں۔ مزید پیرامیٹرز اور قواعد کو بہتر بنانے کے بعد ، یہ حکمت عملی ایک دن کے اندر اسکیلپنگ حکمت عملی بن سکتی ہے جس میں بہت مضبوط عملی جنگ کی قیمت ہے۔
/*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)