CASHISKING | CASHISKING
CMF, EMA, SMA
یہ حکمت عملی چائکن فنڈ فلو ((CMF) اشارے اور انڈیکس منتقل اوسط ((EMA) پر مبنی ٹریڈنگ سگنل تیار کرتی ہے۔ پہلے ، سی ایم ایف کی قیمتوں کا حساب مخصوص دورانیے میں کیا جاتا ہے ، اور پھر سی ایم ایف کے اعداد و شمار کو ہموار کرنے کے لئے دو مختلف دورانیوں کی ای ایم اے کا استعمال کیا جاتا ہے۔ جب تیز رفتار ای ایم اے اوپر کی طرف سے کراس کرتا ہے تو خریدنے کا اشارہ ہوتا ہے ، اور اس کے برعکس فروخت کا اشارہ ہوتا ہے۔ حکمت عملی میں خطرے کو کنٹرول کرنے اور منافع کو مقفل کرنے کے لئے اسٹاپ اور اسٹاپ کی شرائط بھی رکھی گئی ہیں۔
اس حکمت عملی میں چائکن کیش فلو اشارے اور اشاریہ کی متحرک اوسط کا استعمال کیا گیا ہے ، جس میں قیمتوں اور حجم کے اعداد و شمار کے ساتھ مل کر ، رجحان کی پیروی کو بنیادی خیال کے طور پر استعمال کیا گیا ہے ، جبکہ خطرے کو کنٹرول کرنے کے لئے اسٹاپ نقصان اور اسٹاپ شرائط طے کی گئیں۔ حکمت عملی کا فائدہ یہ ہے کہ متعدد عوامل کو جامع طور پر مدنظر رکھا جاسکتا ہے ، مختلف ٹائم اسکیل کے رجحانات کو پکڑنے کے لئے ، لیکن پیرامیٹرز کی ترتیب اور رجحانات کی شناخت کے لئے ابھی بھی اصلاح کی گنجائش موجود ہے۔ مستقبل میں ، اس حکمت عملی کی استحکام اور منافع کو مزید بہتر بنانے کے لئے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کیا جاسکتا ہے ، دوسرے اشارے متعارف کروائے ، اسٹاپ نقصان کو بہتر بنائیں اور پوزیشن مینجمنٹ کے طریقوں کو شامل کریں۔
/*backtest
start: 2023-06-01 00:00:00
end: 2024-06-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("CASHISKING", overlay=false)
// Kullanıcı girişleri ile parametreler
cmfPeriod = input.int(200, "CMF Periyodu", minval=1)
emaFastPeriod = input.int(80, "Hızlı EMA Periyodu", minval=1)
emaSlowPeriod = input.int(160, "Yavaş EMA Periyodu", minval=1)
stopLossPercent = input.float(3, "Stop Loss Yüzdesi", minval=0.1) / 100
stopGainPercent = input.float(5, "Stop Gain Yüzdesi", minval=0.1) / 100
// CMF hesaplama fonksiyonu
cmfFunc(close, high, low, volume, length) =>
clv = ((close - low) - (high - close)) / (high - low)
valid = not na(clv) and not na(volume) and (high != low)
clv_volume = valid ? clv * volume : na
sum_clv_volume = ta.sma(clv_volume, length)
sum_volume = ta.sma(volume, length)
cmf = sum_volume != 0 ? sum_clv_volume / sum_volume : na
cmf
// CMF değerlerini hesaplama
cmf = cmfFunc(close, high, low, volume, cmfPeriod)
// EMA hesaplamaları
emaFast = ta.ema(cmf, emaFastPeriod)
emaSlow = ta.ema(cmf, emaSlowPeriod)
// Göstergeleri çiz
plot(emaFast, color=color.blue, title="EMA 23")
plot(emaSlow, color=color.orange, title="EMA 50")
// Alım ve Satım Sinyalleri
crossOverHappened = ta.crossover(emaFast, emaSlow)
crossUnderHappened = ta.crossunder(emaFast, emaSlow)
// Kesişme sonrası bekleme sayacı
var int crossOverCount = na
var int crossUnderCount = na
if (crossOverHappened)
crossOverCount := 0
if (crossUnderHappened)
crossUnderCount := 0
if (not na(crossOverCount))
crossOverCount += 1
if (not na(crossUnderCount))
crossUnderCount += 1
// Alım ve Satım işlemleri
if (crossOverCount == 2)
strategy.entry("Buy", strategy.long)
crossOverCount := na // Sayaç sıfırlanır
if (crossUnderCount == 2)
strategy.entry("Sell", strategy.short)
crossUnderCount := na // Sayaç sıfırlanır
// Stop Loss ve Stop Gain hesaplama
longStopPrice = strategy.position_avg_price * (1 - stopLossPercent)
shortStopPrice = strategy.position_avg_price * (1 + stopLossPercent)
longTakeProfitPrice = strategy.position_avg_price * (1 + stopGainPercent)
shortTakeProfitPrice = strategy.position_avg_price * (1 - stopGainPercent)
// Stop Loss ve Stop Gain'i uygula
if (strategy.position_size > 0 and strategy.position_avg_price > 0)
strategy.exit("Stop", "Buy", stop=longStopPrice, limit=longTakeProfitPrice)
else if (strategy.position_size < 0 and strategy.position_avg_price > 0)
strategy.exit("Stop", "Sell", stop=shortStopPrice, limit=shortTakeProfitPrice)