Ichimoku کلاؤڈ، MACD اور اسٹوکاسٹک پر مبنی ملٹی ٹائم فریم ٹرینڈ ٹریکنگ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-05 10:30:45
ٹیگز:

img

جائزہ

یہ حکمت عملی متعدد ٹائم فریموں میں رجحانات کی نشاندہی اور ان کا سراغ لگانے کے لئے Ichimoku Cloud ، چلتی اوسط ، MACD ، اسٹوکاسٹک اور ATR اشارے کو مربوط کرتی ہے۔ یہ اعلی امکان کے رجحان سگنل حاصل کرنے کے بعد خطرہ کنٹرول کے لئے ATR پر مبنی اسٹاپ نقصان اور منافع کے طریقوں کو اپناتا ہے۔

حکمت عملی منطق

  1. Ichimoku Cloud درمیانی اور طویل مدتی رجحانات کی سمتوں کا جائزہ لیتا ہے۔ Ichimoku کی موڑ لائن اور بیس لائن سے اوپر CLOSE قیمت عبور کرنا ایک تیزی کا اشارہ ہے ، اور ان سے نیچے عبور کرنا ایک bearish اشارہ ہے۔

  2. ایم اے سی ڈی قلیل مدتی رجحانات اور زیادہ خرید / فروخت کی صورتحال کا جائزہ لیتا ہے۔ ایم اے سی ڈی سگنل لائن سے اوپر عبور کرنے والا ایم اے سی ڈی ہسٹوگرام ایک تیزی کا اشارہ ہے ، اور اس سے نیچے عبور کرنا ایک bearish اشارہ ہے۔

  3. اسٹوکاسٹک کے ڈی اوور بک / اوور سیل زونوں کا جائزہ لیتا ہے۔ 20 سے اوپر کی لائن عبور کرنا ایک تیزی کا اشارہ ہے ، اور 80 سے نیچے عبور کرنا ایک bearish اشارہ ہے۔

  4. چلتی اوسط درمیانی مدت کے رجحانات کا فیصلہ کرتی ہے۔ ایم اے سے اوپر کی قیمت کو قریب سے عبور کرنا ایک تیزی کا اشارہ ہے ، اور اس سے نیچے عبور کرنا ایک bearish اشارہ ہے۔

  5. مندرجہ بالا اشارے سے سگنل کو ضم کریں تاکہ کچھ غلط سگنل کو فلٹر کریں اور اعلی امکان کے پائیدار رجحان سگنل تشکیل دیں۔

  6. اسٹاپ نقصان اور منافع کی قیمت کا حساب لگانے کے لئے اے ٹی آر کا استعمال کریں۔ خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان کے طور پر اے ٹی آر کا ایک خاص ضرب استعمال کریں اور منافع بٹس لیں.

فوائد

  1. سگنل کی درستگی کو بہتر بنانے کے لئے متعدد ٹائم فریموں میں رجحانات کی نشاندہی کریں۔

  2. غلط سگنل کو مؤثر طریقے سے فلٹر کرنے کے لئے وسیع پیمانے پر اشارے کے مجموعے کا استعمال کریں.

  3. اے ٹی آر پر مبنی سٹاپ نقصان اور منافع حاصل کریں ہر تجارت کے نقصان پر نمایاں حد.

  4. داخلے کی شرائط کی اپنی مرضی کے مطابق سختی مختلف رسک بھوک کو پورا کرتی ہے۔

خطرات

  1. فطرت کے مطابق رجحان سیاہ بچھو واقعات کی وجہ سے الٹ کا پتہ لگانے میں ناکام رہتا ہے.

  2. مثالی اے ٹی آر سٹاپ نقصان لائیو ٹریڈنگ میں مکمل طور پر نقل کرنا مشکل ہے۔

  3. پیرامیٹر کی غلط ترتیبات سے زیادہ تجارت یا سگنل کی ناکافی درستگی ہوسکتی ہے۔

  4. مختلف مصنوعات اور مارکیٹ کے ماحول کو فٹ کرنے کے لئے پیرامیٹر ٹویک کی ضرورت ہے۔

بہتری کے شعبے

  1. مشین لرننگ متعارف کروانا تاکہ رجحان کی تبدیلی کے مقامات کا جائزہ لیا جاسکے۔

  2. مختلف مصنوعات کے لئے ATR ضارب پیرامیٹر اقدار کو بہتر بنائیں.

  3. اختراعی سگنل کی درستگی کو بہتر بنانے کے لئے حجم کی تبدیلیوں جیسے دیگر عوامل کو شامل کریں.

  4. بہترین پیرامیٹر مجموعے تلاش کرنے کے لئے بیک ٹیسٹ کے نتائج کی بنیاد پر پیرامیٹرز کو بہتر بناتے رہیں.

خلاصہ

یہ حکمت عملی کثیر ٹائم فریم ٹرینڈ کی نشاندہی کے لئے Ichimoku کلاؤڈ ، MACD ، اسٹوکاسٹک اور زیادہ کا فائدہ اٹھاتی ہے ، جو بلیک سوان کے واقعات میں پھنس جانے سے بچتے ہوئے رجحانات کو پکڑتی ہے۔ اے ٹی آر پر مبنی اسٹاپ نقصان اور منافع حاصل کرنے سے فی تجارتی نقصان مؤثر طریقے سے حد ہوتی ہے۔ مزید معاون فیصلوں اور مشینی سیکھنے کے طریقوں کو متعارف کرانے کے ساتھ ، اس حکمت عملی میں مزید اصلاح کی صلاحیت ہے۔


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 4h
basePeriod: 15m
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/
// © FXFUNDINGMATE

//@version=4
strategy(title="FXFUNDINGMATE TREND INDICATOR", overlay=true)

//Ichimoku Cloud
conversionPeriods = input(9, minval=1, title="Conversion Line Length")
basePeriods = input(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Length")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)[displacement - 1]
leadLine2 = donchian(laggingSpan2Periods)[displacement - 1]


//macd
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)

fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


//kd
periodK = input(5, title="%K Length", minval=1)
smoothK = input(3, title="%K Smoothing", minval=1)
periodD = input(3, title="%D Smoothing", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)


//atr
atrlength = input(title="Atr Length", defval=8, minval=1)
SMulti = input(title="Stop loss multi Atr", defval=1.0)
TMulti = input(title="Take profit multi Atr", defval=1.0)
smoothing = input(title="Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
ma_function(source, length) =>
	if smoothing == "RMA"
		rma(source, length)
	else
		if smoothing == "SMA"
			sma(source, length)
		else
			if smoothing == "EMA"
				ema(source, length)
			else
				wma(source, length)
atr = ma_function(tr(true), atrlength)


operation_type = input(defval = "Both", title = "Position side", options = ["Long", "Short", "Both"])
operation = operation_type == "Long" ? 1 : operation_type == "Short" ? 2 : 3
showlines = input(true,  title="Show sl&tp lines")

// MA
sma_len = input(100, title="MA Length", type=input.integer)
sma = sma(close, sma_len)

longCond = crossover(k, 20) and macd > 0 and close > sma and close > leadLine1 and close > leadLine2
shortCond = crossunder(k, 80)  and macd < 0 and close < sma and close < leadLine1 and close < leadLine2

entry_price  = float(0.0) //set float
entry_price := strategy.position_size != 0 or longCond or shortCond ? strategy.position_avg_price : entry_price[1]
entry_atr = valuewhen(longCond or shortCond, atr,0)
short_stop_level     = float(0.0)   //set float
short_profit_level   = float(0.0)   //set float
long_stop_level      = float(0.0)   //set float
long_profit_level    = float(0.0)   //set float
short_stop_level    := entry_price + SMulti * entry_atr
short_profit_level  := entry_price - TMulti * entry_atr
long_stop_level     := entry_price - SMulti * entry_atr
long_profit_level   := entry_price + TMulti * entry_atr


//  Strategy Backtest Limiting Algorithm
i_startTime = input(defval = timestamp("1 Jan 2020 00:00 +0000"), title = "Backtesting Start Time", type = input.time)
i_endTime = input(defval = timestamp("31 Dec 2025 23:59 +0000"), title = "Backtesting End Time", type = input.time)
timeCond = true

if (operation == 1 or operation == 3)
    strategy.entry("long" , strategy.long , when=longCond and timeCond, alert_message = "Long")
    strategy.exit("SL/TP", from_entry = "long" , limit = long_profit_level , stop = long_stop_level , alert_message = "Long exit")

if (operation == 2 or operation == 3)
    strategy.entry("short", strategy.short, when=shortCond and timeCond, alert_message="Short")
    strategy.exit("SL/TP", from_entry = "short", limit = short_profit_level , stop = short_stop_level , alert_message = "Short exit")
    
if time > i_endTime  
    strategy.close_all(comment = "close all", alert_message = "close all")
    
plot(showlines and strategy.position_size <= 0 ? na : long_stop_level,    color=color.red,  style=plot.style_linebr, linewidth = 2)
plot(showlines and strategy.position_size <= 0 ? na : long_profit_level,  color=color.lime, style=plot.style_linebr, linewidth = 2)
plot(showlines and strategy.position_size >= 0 ? na : short_stop_level,   color=color.red,  style=plot.style_linebr, linewidth = 2)
plot(showlines and strategy.position_size >= 0 ? na : short_profit_level, color=color.lime, style=plot.style_linebr, linewidth = 2)

//}



مزید