یہ حکمت عملی مارکیٹ کے رجحانات میں تبدیلی کے وقت تجارتی مواقع کو حاصل کرنے کے لئے ایم اے سی ڈی اشارے کو محدود مارٹنگیل منی مینجمنٹ کے طریقہ کار کے ساتھ جوڑتی ہے۔ جب ایم اے سی ڈی فاسٹ لائن سست لائن سے تجاوز کرتی ہے تو خرید کا اشارہ پیدا ہوتا ہے ، اور جب فاسٹ لائن سست لائن سے نیچے عبور کرتی ہے تو فروخت کا اشارہ پیدا ہوتا ہے۔ اسی وقت ، حکمت عملی میں زیادہ سے زیادہ 3 اضافی پوزیشنوں کے ساتھ ، محدود مارٹنگیل طریقہ کار کا استعمال کیا جاتا ہے۔ حکمت عملی ہر تجارت کے لئے 1٪ کا مقررہ منافع اور اسٹاپ نقصان طے کرتی ہے۔
یہ حکمت عملی محدود مارٹنگیل کا استعمال کرتے ہوئے ایم اے سی ڈی اشارے کے ذریعہ رجحانات کو حاصل کرتی ہے تاکہ ڈراؤونگ کو کنٹرول کیا جاسکے ، جو رجحاناتی منڈیوں میں اچھے نتائج حاصل کرسکتی ہے۔ تاہم ، اس حکمت عملی میں کچھ خطرات بھی ہیں ، جیسے سگنل کی ناکامی اور فکسڈ اسٹاپ نقصانات۔ دوسرے اشارے متعارف کرانے ، پیرامیٹر کی ترتیبات کو بہتر بنانے ، پوزیشن سائزنگ اور دیگر طریقوں سے ، اس حکمت عملی کی استحکام اور منافع کو مزید بہتر بنایا جاسکتا ہے۔
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Advanced MACD Strategy with Limited Martingale", overlay=true, initial_capital=100) // MACD 설정 fastLength = 15 slowLength = 30 signalSmoothing = 9 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // 계약수 및 이전 거래 결과 기록 var float contractSize = 0.01 var int martingaleCount = 0 // 마틴게일 카운트 var float lastTradeResult = 0 // 매수 및 매도 조건 longCondition = ta.crossover(macdLine, signalLine) shortCondition = ta.crossunder(macdLine, signalLine) // 매수 신호 if (longCondition) strategy.entry("Long", strategy.long, qty=contractSize) lastTradeResult := strategy.netprofit // 매도 신호 if (shortCondition) strategy.entry("Short", strategy.short, qty=contractSize) lastTradeResult := strategy.netprofit // 익절 및 손절 조건 strategy.close("Long", when=(close / strategy.position_avg_price >= 1.01)) strategy.close("Short", when=(strategy.position_avg_price / close >= 1.01)) strategy.close("Long", when=(close / strategy.position_avg_price <= 0.99)) strategy.close("Short", when=(strategy.position_avg_price / close <= 0.99)) // 마틴게일 전략 적용 if (strategy.netprofit < lastTradeResult) if (martingaleCount < 3) contractSize := contractSize * 2 martingaleCount := martingaleCount + 1 else contractSize := 0.01 martingaleCount := 0 else contractSize := 0.01 martingaleCount := 0 // 매수, 매도 포인트 화살표로 표시 plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")