
اس حکمت عملی میں متعدد تکنیکی اشارے جیسے آر ایس آئی ، ایم اے سی ڈی ، او بی وی ، سی سی آئی ، سی ایم ایف ، ایم ایف آئی اور وی ڈبلیو ایم اے سی ڈی کا استعمال کیا جاتا ہے تاکہ ممکنہ داخلے کے مواقع کی نشاندہی کی جاسکے۔ اس حکمت عملی کے ساتھ ساتھ صارف ڈپ کا پتہ لگانے والے اشارے بھی شامل ہیں ، جو اعلی اتار چڑھاؤ اور گہرائی یا وی ایف آئی شرائط کو پورا کرتے وقت تجارتی سگنل دیتے ہیں۔ حکمت عملی صرف اس سے زیادہ کام کرتی ہے ، جس میں اسٹاپ نقصانات کو ٹریک کرنے کا استعمال کیا جاتا ہے۔
RSI ، MACD ، OBV ، CCI ، CMF ، MFI اور VWMACD جیسے اشارے کا حساب لگائیں اور خود بخود لکیری رجعت کے طریقہ کار کے ذریعہ ہر اشارے اور تاریخی قیمتوں کے مابین فاصلے کا پتہ لگائیں۔ جب اشارے کی جدت کم ہوتی ہے اور قیمت کی جدت کم نہیں ہوتی ہے تو خریدنے کا اشارہ دیا جاتا ہے۔
صارف کے ان پٹ پر مبنی اتار چڑھاو کی شرح اور گہرائی فیصد کی قیمت پر مبنی ، VFI اشارے فلٹرنگ کے ساتھ مل کر ، اعلی اتار چڑھاو اور گہرائی ٹیسٹ کے مطابق K لائن پر سگنل۔
ابتدائی زیادہ کرنے کے بعد ، اگر قیمت آخری زیادہ قیمت کے ایک خاص تناسب سے نیچے آجائے تو ((کنفیگریٹڈ)) ، پھر زیادہ کرنے کے لئے پوزیشن میں اضافہ کریں۔
ٹریکنگ اسٹاپ نقصان کا استعمال کرتے ہوئے ، جب آپ کی تشکیل کا اسٹاپ تناسب پورا ہوتا ہے تو اس کی صفائی کریں۔
متعدد عوامل کا مجموعہ ، قیمتوں اور حجم کے اشارے کا جامع استعمال ، سگنل کی وشوسنییتا کو بہتر بناتا ہے۔
خود کو اپنانے لکیری رجعت کے طریقہ کار سے پتہ چلتا ہے کہ انحراف ، انسانی فیصلے سے بچنے کے لئے موضوعی ہے۔
اتار چڑھاؤ کی شرح اور گہرائی / VFI ٹیسٹ کے اشارے کے ساتھ مل کر ، اس سے واپسی کے مواقع کی نشاندہی کرنے میں مدد ملتی ہے۔
ایک سے زیادہ ذخیرہ اندوزی سے قیمتوں میں واپسی کا بھرپور فائدہ اٹھایا جاسکتا ہے ، اور منافع کو روکنے کے لئے اسٹاپ مارجن کا فائدہ اٹھایا جاسکتا ہے۔
کثیر فیکٹر مجموعہ کا فیصلہ زیادہ پیچیدہ ہے ، پیرامیٹرز کی اصلاح اور شناخت سے ہٹ جانے والے اثرات سے اصل کارکردگی متاثر ہوسکتی ہے۔
ایک طرفہ پوزیشن کا خطرہ زیادہ ہے ، اگر غلط فیصلہ کیا گیا تو اس سے زیادہ نقصان ہوسکتا ہے۔
بار بار پوزیشننگ کے موڈ میں ، نقصانات میں اضافہ ہوتا ہے ، اور پوزیشنوں کو احتیاط سے کنٹرول کرنے کی ضرورت ہے۔
اصل منافع پر ٹرانزیکشن فیس کے اثرات پر توجہ دینا ضروری ہے۔
مختلف پیرامیٹرز کے مجموعے اور اشارے کی تاثیر کی جانچ کرنا ، ترجیحی ترتیب۔
اسٹاپ نقصان کی حکمت عملی کو شامل کریں ، ایکسپریس اور زیادہ سے زیادہ نقصان کو کنٹرول کریں۔
خطرے کو پھیلانے کے لئے دو طرفہ تجارت کے مواقع پر غور کریں۔
مشین سیکھنے کے طریقوں کے ساتھ مل کر پیرامیٹرز کو خود کار طریقے سے بہتر بنائیں۔
اس حکمت عملی میں متعدد تکنیکی اشارے شامل ہیں جن میں داخلے کے وقت کی نشاندہی کی گئی ہے ، جبکہ صارف کی وضاحت کی شرائط اور VFI اشارے کا استعمال کرتے ہوئے غلط سگنل کو فلٹر کیا گیا ہے۔ حکمت عملی قیمت کی واپسی کا استعمال کرتے ہوئے مسلسل پوزیشنوں کو پیچھے چھوڑتی ہے ، جو رجحان میں مواقع پر قبضہ کرنے کے لئے موزوں ہے۔ تاہم ، غلط فیصلے اور یکطرفہ پوزیشن رکھنے کے خطرے کا بھی سامنا کرنا پڑتا ہے ، خطرے کو کم کرنے اور منافع کی گنجائش کو بڑھانے کے لئے اشارے کے پیرامیٹرز ، نقصان کی حکمت عملی وغیرہ کو مناسب طریقے سے بہتر بنانے کی ضرورت ہے۔
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mkose81
//@version=5
strategy("RSI ve MACD Uyumsuzluğu Stratejisi (Sadece Long)", overlay=true, max_bars_back=4000,use_bar_magnifier= true,pyramiding=40)
// RSI Hesaplama
rsi = ta.rsi(close, 14)
float botRSI = na
botRSI := ta.pivotlow(5, 5)
botcRSI = 0
botcRSI := botRSI ? 5 : nz(botcRSI[1]) + 1
newbotRSI = ta.pivotlow(5, 0)
emptylRSI = true
if not na(newbotRSI) and newbotRSI < low[botcRSI]
diffRSI = (newbotRSI - low[botcRSI]) / botcRSI
llineRSI = newbotRSI - diffRSI
for x = 1 to botcRSI - 1 by 1
if close[x] < llineRSI
emptylRSI := false
break
llineRSI -= diffRSI
emptylRSI
// Pozitif Uyumsuzluk Alım Sinyali - RSI
alRSI = 0
if emptylRSI and not na(newbotRSI)
if rsi[botcRSI] < rsi
alRSI := 1
// MACD Hesaplama
[macd, signal, _] = ta.macd(close, 21, 55, 8)
float botMACD = na
botMACD := ta.pivotlow(5, 5)
botcMACD = 0
botcMACD := botMACD ? 5 : nz(botcMACD[1]) + 1
newbotMACD = ta.pivotlow(5, 0)
emptylMACD = true
if not na(newbotMACD) and newbotMACD < low[botcMACD]
diffMACD = (newbotMACD - low[botcMACD]) / botcMACD
llineMACD = newbotMACD - diffMACD
for x = 1 to botcMACD - 1 by 1
if close[x] < llineMACD
emptylMACD := false
break
llineMACD -= diffMACD
emptylMACD
// Pozitif Uyumsuzluk Alım Sinyali - MACD
alMACD = 0
if emptylMACD and not na(newbotMACD)
if macd[botcMACD] < macd
alMACD := 1
// OBV Hesaplama ve Uyumsuzluk Tespiti
obv = ta.cum(ta.change(close) > 0 ? volume : ta.change(close) < 0 ? -volume : 0)
float botOBV = na
botOBV := ta.pivotlow(5, 5)
botcOBV = 0
botcOBV := botOBV ? 5 : nz(botcOBV[1]) + 1
newbotOBV = ta.pivotlow(5, 0)
emptylOBV = true
if not na(newbotOBV) and newbotOBV < obv[botcOBV]
diffOBV = (newbotOBV - obv[botcOBV]) / botcOBV
llineOBV = newbotOBV - diffOBV
for x = 1 to botcOBV - 1 by 1
if obv[x] < llineOBV
emptylOBV := false
break
llineOBV -= diffOBV
emptylOBV
// Pozitif Uyumsuzluk Alım Sinyali - OBV
alOBV = 0
if emptylOBV and not na(newbotOBV)
if obv[botcOBV] < obv
alOBV := 1
// CCI Hesaplama ve Uyumsuzluk Tespiti
cci = ta.cci(close, 20)
float botCCI = na
botCCI := ta.pivotlow(5, 5)
botcCCI = 0
botcCCI := botCCI ? 5 : nz(botcCCI[1]) + 1
newbotCCI = ta.pivotlow(5, 0)
emptylCCI = true
if not na(newbotCCI) and newbotCCI < cci[botcCCI]
diffCCI = (newbotCCI - cci[botcCCI]) / botcCCI
llineCCI = newbotCCI - diffCCI
for x = 1 to botcCCI - 1 by 1
if cci[x] < llineCCI
emptylCCI := false
break
llineCCI -= diffCCI
emptylCCI
// Pozitif Uyumsuzluk Alım Sinyali - CCI
alCCI = 0
if emptylCCI and not na(newbotCCI)
if cci[botcCCI] < cci
alCCI := 1
// CMF Hesaplama
length = 20
mfm = ((close - low) - (high - close)) / (high - low)
mfv = mfm * volume
cmf = ta.sma(mfv, length) / ta.sma(volume, length)
float botCMF = na
botCMF := ta.pivotlow(5, 5)
botcCMF = 0
botcCMF := botCMF ? 5 : nz(botcCMF[1]) + 1
newbotCMF = ta.pivotlow(5, 0)
emptylCMF = true
if not na(newbotCMF) and newbotCMF < cmf[botcCMF]
diffCMF = (newbotCMF - cmf[botcCMF]) / botcCMF
llineCMF = newbotCMF - diffCMF
for x = 1 to botcCMF - 1 by 1
if cmf[x] < llineCMF
emptylCMF := false
break
llineCMF -= diffCMF
emptylCMF
// Pozitif Uyumsuzluk Alım Sinyali - CMF
alCMF = 0
if emptylCMF and not na(newbotCMF)
if cmf[botcCMF] < cmf
alCMF := 1
// MFI Hesaplama
lengthMFI = 14
mfi = ta.mfi(close, lengthMFI)
float botMFI = na
botMFI := ta.pivotlow(mfi, 5, 5)
botcMFI = 0
botcMFI := botMFI ? 5 : nz(botcMFI[1]) + 1
newbotMFI = ta.pivotlow(mfi, 5, 0)
emptylMFI = true
if not na(newbotMFI) and newbotMFI < mfi[botcMFI]
diffMFI = (newbotMFI - mfi[botcMFI]) / botcMFI
llineMFI = newbotMFI - diffMFI
for x = 1 to botcMFI - 1 by 1
if mfi[x] < llineMFI
emptylMFI := false
break
llineMFI -= diffMFI
emptylMFI
// Pozitif Uyumsuzluk Alım Sinyali - MFI
alMFI = 0
if emptylMFI and not na(newbotMFI)
if mfi[botcMFI] < mfi
alMFI := 1
// VWMACD Hesaplama
fastLength = 12
slowLength = 26
signalSmoothing = 9
vwmacd = ta.ema(close, fastLength) - ta.ema(close, slowLength)
signalLine = ta.ema(vwmacd, signalSmoothing)
histogram = vwmacd - signalLine
// VWMACD Uyumsuzluk Tespiti
float botVWMACD = na
botVWMACD := ta.pivotlow(histogram, 5, 5)
botcVWMACD = 0
botcVWMACD := botVWMACD ? 5 : nz(botcVWMACD[1]) + 1
newbotVWMACD = ta.pivotlow(histogram, 5, 0)
emptylVWMACD = true
if not na(newbotVWMACD) and newbotVWMACD < histogram[botcVWMACD]
diffVWMACD = (newbotVWMACD - histogram[botcVWMACD]) / botcVWMACD
llineVWMACD = newbotVWMACD - diffVWMACD
for x = 1 to botcVWMACD - 1 by 1
if histogram[x] < llineVWMACD
emptylVWMACD := false
break
llineVWMACD -= diffVWMACD
emptylVWMACD
// Pozitif Uyumsuzluk Alım Sinyali - VWMACD
alVWMACD = 0
if emptylVWMACD and not na(newbotVWMACD)
if histogram[botcVWMACD] < histogram
alVWMACD := 1
//Dipci indikator
lengthd= 130
coef = 0.2
vcoef = 2.5
signalLength = 5
smoothVFI = false
ma(x, y) =>
smoothVFI ? ta.sma(x, y) : x
typical = hlc3
inter = math.log(typical) - math.log(typical[1])
vinter = ta.stdev(inter, 30)
cutoff = coef * vinter * close
vave = ta.sma(volume, lengthd)[1]
vmax = vave * vcoef
vc = volume < vmax ? volume : vmax //min( volume, vmax )
mf = typical - typical[1]
iff_4 = mf < -cutoff ? -vc : 0
vcp = mf > cutoff ? vc : iff_4
vfi = ma(math.sum(vcp, lengthd) / vave, 3)
vfima = ta.ema(vfi, signalLength)
d = vfi - vfima
// Kullanıcı girdileri
volatilityThreshold = input.float(1.005, title="Volume Percentage Threshold")
pinThreshold = input.float(1.005, title="Deep Percentage Threshold")
// Hesaplamalar
volatilityPercentage = (high - low) / open
pinPercentage = close > open ? (high - close) / open : (close - low) / open
// Volatilite koşulu ve VFI ile filtreleme
voldip = volatilityPercentage >= volatilityThreshold or pinPercentage >= pinThreshold
volCondition = voldip and vfi< 0 // VFI değeri 0'dan küçükse volCondition aktif olacak
threeCommasEntryComment = input.string(title="3Commas Entry Comment", defval="")
threeCommasExitComment = input.string(title="3Commas Exit Comment", defval="")
takeProfitPerc = input.float(1, title="Take Profit Percentage (%)") / 100
fallPerc = input.float(5, title="Percentage for Additional Buy (%)") / 100
// Değişkenlerin tanımlanması
var float lastBuyPrice = na
var float tpPrice = na
var int lastTpBar = na
// Alım koşulları
longCondition = alRSI or alMACD or alOBV or alCCI or alCMF or alMFI or alVWMACD or volCondition
// Son alım fiyatını saklamak için değişken
// İlk alım stratejisi
if (longCondition and strategy.position_size == 0)
strategy.entry("Long", strategy.long,comment=threeCommasEntryComment)
lastBuyPrice := open
// İkinci ve sonraki alım koşulları (son alım fiyatının belirlenen yüzde altında)
if (open < lastBuyPrice * (1 - fallPerc) and strategy.position_size > 0)
strategy.entry("Long Add", strategy.long,comment=threeCommasEntryComment)
lastBuyPrice := open
// Kar alma fiyatını hesaplama ve strateji çıkışı
tp_price = strategy.position_avg_price * (1 + takeProfitPerc)
if strategy.position_size > 0
strategy.exit("Exit Long", "Long", limit=tp_price,comment=threeCommasExitComment)
strategy.exit("Exit Long Add", "Long Add", limit=tp_price,comment=threeCommasExitComment)
tpPrice := na // Pozisyon kapandığında TP çizgisini sıfırla
// Kar alma seviyesi çizgisi çizme
plot(strategy.position_size > 0 ? tp_price : na, color=color.green, title="Take Profit Line")