
اس حکمت عملی نے ایک خالص رجحان ٹریکنگ حکمت عملی کو ڈیزائن کیا ہے جس کا مقصد درمیانی اور طویل مدتی رجحانات کو پکڑنا ، جھٹکے کو فلٹر کرنا اور مضبوط رجحانات کی سمت کو ٹریک کرنا ہے۔
اس حکمت عملی میں توازن پیمانہ بادل گراف اشارے میں تبدیلی کی لائن ، بیس لائن اور تاخیر کی لائن جیسے اہم اشارے استعمال کیے جاتے ہیں۔ طویل مدتی رجحانات کے فیصلے کے سلسلے میں ، رجحانات کا فیصلہ کرنے کے لئے فرنٹیئر بادل اور فرنٹیئر بادل کے اوپر اور نیچے تبدیلی کے تعلقات پر توجہ دی جاتی ہے۔ مخصوص اندراج اور باہر نکلنے کے وقت کے انتخاب پر ، تبدیلی کی لائن اور بیس لائن کے کراسنگ اور قیمت اور بادل گراف کے تعلقات میں تبدیلی بنیادی بنیاد ہے۔
مجموعی طور پر ، اس حکمت عملی کا بنیادی منطق یہ ہے کہ: درمیانی اور طویل مدتی رجحان کی سمت کی تصدیق کریں-> مضبوط رجحانات کے دوبارہ آغاز کے مواقع کا انتظار کریں-> رجحانات کی پیروی کریں-> اسٹاپ نقصان سے باہر نکلیں۔
خاص طور پر ، درمیانی اور طویل مدتی رجحان کا تعین کرتے وقت ، سامنے والے بادل اور پیچھے والے بادل کے تبدیلی کے تعلقات کے ذریعہ اس بات کا تعین کیا جاتا ہے کہ ((اگر سامنے والا بادل اوپر ہے اور سبز ہے تو ، اس کا مطلب ہے کہ یہ بڑھتا ہوا رجحان ہے ، اس کے برعکس ، اس کا مطلب یہ ہے کہ یہ گرتا ہوا رجحان ہے۔) ۔ جب درمیانی اور طویل مدتی رجحان کی تصدیق کے بعد ، ٹرانسفر لائن اور بیس لائن کے کراسنگ اور قیمت کے بادل کے نقشے کو توڑنے والے سگنل کے ذریعہ رجحان کا تعین دوبارہ شروع کیا جاتا ہے ، تو انٹری سگنل جاری کیا جاتا ہے۔
اس طرح ، درمیانی اور قلیل مدتی اتار چڑھاؤ کو فلٹر کرنے کے ساتھ ساتھ ، مضبوط رجحانات کے مواقع سے فائدہ اٹھانا اور طویل مدتی مستحکم اضافی منافع حاصل کرنا ممکن ہے۔
(i) وسط اور طویل مدتی رجحانات کی سمت کا تعین کرنے کے لئے توازن پیمانے پر بادلوں کا نقشہ استعمال کریں ، جو اہم سمتوں کی نشاندہی کرنے میں معاون ہے۔
(ii) ٹرانسمیشن لائن اور بیس لائن کراسنگ اور قیمت اور بادل گراف کے مابین تعلقات میں تبدیلی کے ذریعہ داخلے کے وقت کا تعین کرنا ، جو مضبوط رجحانات کو پکڑنے کے لئے زلزلے کو مؤثر طریقے سے فلٹر کرسکتا ہے
(iii) ٹریکنگ اسٹاپ نقصان سے باہر نکلنے کا طریقہ ، جس سے بڑے رجحانات سے فائدہ اٹھایا جاسکتا ہے اور انفرادی نقصانات کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔
(د) ایک منظم رجحان کی پیروی کی حکمت عملی، مستحکم اچھی کارکردگی کی تشکیل کرنے کے لئے، متعدد توازن پیمانے بادل گراف سگنل کو ضم
(i) درمیانی اور طویل مدتی میں غلط فیصلے کا نظاماتی خطرہ۔ اگر درمیانی اور طویل مدتی رجحانات غلط فیصلے کرتے ہیں تو ، بعد میں ہونے والی کارروائیوں کو غلط سمت کا خطرہ درپیش ہوگا۔
(ii) داخلے کے وقت میں غلط انتخاب سے پیدا ہونے والے خطرات۔ اگر داخلے کے وقت میں غلط انتخاب کیا جائے تو ، اس کا مقابلہ کرنا آسان ہے۔
(۳) ٹریکنگ سٹاپ نقصان سے زیادہ قریب سے پیدا ہونے والے خطرات۔ اگر اسٹاپ نقصان کا فاصلہ زیادہ قریب سے ہو تو ، انتہائی حالات میں اسٹاپ نقصان کو توڑنے کا خطرہ ہے ، جس سے نقصان ہوتا ہے۔
(۴) ٹرانزیکشن فیس کا بوجھ جو اعلی ٹرانزیکشن فریکوئینسی سے پیدا ہوتا ہے۔ اگر پیرامیٹرز کی غلط ترتیب سے ٹرانزیکشن فریکوئینسی زیادہ ہو جاتی ہے تو ، ٹرانزیکشن فیس بھی بڑھ جاتی ہے۔
(i) مختلف متوازن پیمائش کے پیرامیٹرز کے مجموعے کو جانچنے اور بہترین پیرامیٹرز تلاش کرنے کے لئے
(ii) داخلے کے حالات کو بہتر بنانا ، زیادہ سخت فلٹرز ڈیزائن کرنا ، تاکہ داخلے کو موثر بنایا جاسکے۔
(۳) سٹاپ نقصان کے فاصلے کو ایڈجسٹ کرنا تاکہ خطرے اور منافع کے درمیان بہترین توازن پایا جا سکے۔
(۴) منافع بخش قیمتوں کا ہدف شامل کرنا، قیمتوں اور کلیدی توازن پیمانے کے اشارے کے فاصلے کے ساتھ مل کر، متحرک منافع بخش میکانیزم تشکیل دینا
اس توازن پیمانے بادل نقشہ رجحان ٹریکنگ حکمت عملی، جامع توازن پیمانے بادل نقشہ کئی سگنل رجحان کی سمت کا فیصلہ، داخلہ وقت، نقصان سے باہر نکلنے. پریکٹس سے پتہ چلتا ہے کہ حکمت عملی کو مؤثر طریقے سے درمیانے اور طویل مدتی رجحانات، فلٹر جھٹکے، مستحکم اضافی آمدنی حاصل کر سکتے ہیں. مستقبل میں مسلسل اصلاح ٹیسٹ کے ذریعے، حکمت عملی کی کارکردگی کو مزید بہتر بنانے کے لئے، بہتر واپسی حاصل کرنے کے لئے امید ہے.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Ichimoku trendfollowing", overlay=true, initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=0.04, slippage=2)
//***************************
// INPUT BACKTEST RANGE *
//***************************
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2000)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true
//***************
//* ICHIMOKU *
//***************
//inizializzazione parametri,,
tenkanPeriods = input(9, minval=1, title="Tenkan-Sen")
kinjunPeriods = input(26, minval=1, title="Kinjun-Sen")
senkouSpanBPeriods = input(52, minval=1, title="Senkou Span B")
displacement = input(26, minval=1, title="-ChinkouSpan/+SenkouSpan A")
//definizione Tenkan-Sen (9 Period), Kinjun-Sen (26 Period), Chinkou Span (Lagging Line)
averageHighLow(period) => avg(lowest(period), highest(period))
tenkan= averageHighLow(tenkanPeriods)
kinjun = averageHighLow(kinjunPeriods)
senkouSpanA = avg(tenkan, kinjun)
senkouSpanB = averageHighLow(senkouSpanBPeriods)
//definisco il colore della kumo in base al trend.
senkouSpan1Above = senkouSpanA >= senkouSpanB ? 1 : na
senkouSpan2Below = senkouSpanA <= senkouSpanB ? 1 : na
span1plotU = senkouSpan1Above ? senkouSpanA : na
span2plotU = senkouSpan1Above ? senkouSpanB : na
span1plotD = senkouSpan2Below ? senkouSpanA : na
span2plotD = senkouSpan2Below ? senkouSpanB : na
col = senkouSpanA >= senkouSpanB ? lime : red
//plots Ichimoku
plot(tenkan, title = 'Tenkan-Sen', linewidth=1, color=blue)
plot(kinjun, title = 'Kinjun-Sen', linewidth=1, color=red)
plot(close, title = 'Chinkou Span', linewidth=1, offset = -displacement, color=aqua)
plot( senkouSpanA, title = 'Senkou Span A', style=line, linewidth=1, offset = displacement, color=lime)
plot(senkouSpanB, title = 'Senkou Span B', style=line, linewidth=1, offset = displacement, color=red)
//Cloud Lines Plot
p1 = plot(span1plotU ? span1plotU : na, title = 'Senkou Span A Above Senkou Span B', style=linebr, linewidth=1, offset = displacement, color=col)
p2 = plot(span2plotU ? span2plotU : na, title = 'Senkou Span B (52 Period) Below Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p3 = plot(span1plotD ? span1plotD : na, title = 'Senkou Span A (26 Period) Below Span B Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p4 = plot(span2plotD ? span2plotD : na, title = 'Senkou Span B (52 Period) Above Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
//Fills that color cloud based on Trend.
fill(p1, p2, color=lime, transp=70, title='Kumo (Cloud)')
fill(p3, p4, color=red, transp=70, title='Kumo (Cloud)')
//***********************************************
//* condizioni ingresso ed uscita mercato *
//***********************************************
isKumoRialzista = senkouSpanA >= senkouSpanB ? true : false
isSopraKumo = (close > max(senkouSpanA[displacement], senkouSpanB[displacement]))
isSottoKumo = (close < min(senkouSpanA[displacement], senkouSpanB[displacement]))
isChinkouSpanSopra = high[displacement]<close
isChinkouSpanSotto = low[displacement]>close
filtroLong=isSopraKumo and isChinkouSpanSopra
filtroShort=isSottoKumo and isChinkouSpanSotto
//rimbalzato su kijun quando i prezzi stavano ritracciando e il trend era già in atto(tenkan >kijun x entrare long
isPullBackLijunEntryLong = kinjun<tenkan and low<kinjun and (close>kinjun)
isPullBackLijunEntryShort =kinjun>tenkan and high>kinjun and (close<kinjun)
//Breackout Kumo
isBreackoutKumoEntryLong = crossover(close, max(senkouSpanA[displacement], senkouSpanB[displacement])) and (close>tenkan) and (close>kinjun)
isBreackoutKumoEntryShort = crossunder(close, min(senkouSpanA[displacement], senkouSpanB[displacement])) and (close<tenkan) and (close<kinjun)
ConditionEntryLong = (isPullBackLijunEntryLong or isBreackoutKumoEntryLong ) and filtroLong
ConditionEntryShort = (isPullBackLijunEntryShort or isBreackoutKumoEntryLong ) and filtroShort
isExitLong = close<kinjun
isExitShort = close>kinjun
//ingressi ed uscite Mercato
strategy.entry ("Long",long=true, when = window() and ConditionEntryLong)
strategy.entry ("Short",long=false, when = window() and ConditionEntryShort)
strategy.close(id="Long", when=isExitLong)
strategy.close(id="Short", when=isExitShort)
strategy.close_all(when=not window())