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