اس حکمت عملی میں مارکیٹ کی رجحانات کو کنٹرول کرتے ہوئے مارکیٹ کی نقل و حرکت کو حاصل کرنے کے لئے ایم اے سی ڈی اشارے اور مارٹنگیل منی مینجمنٹ کے طریقہ کار کو جوڑ دیا گیا ہے۔ یہ حکمت عملی ایم اے سی ڈی فاسٹ لائن اور سست لائن کے کراس اوور کو تجارتی سگنل کے طور پر استعمال کرتی ہے ، اور پوزیشن کے سائز کو کنٹرول کرنے کے لئے مارٹنگیل نقطہ نظر کی ایک محدود تعداد کو اپناتی ہے۔ جب کھونے والی تجارت ہوتی ہے تو ، حکمت عملی پچھلے نقصانات کی وصولی کے لئے اگلی تجارت کے لئے معاہدوں کی تعداد کو زیادہ سے زیادہ تین گنا تک دوگنا کردے گی۔ اسی وقت ، حکمت عملی خطرات کو مزید کنٹرول کرنے کے لئے منافع اور اسٹاپ نقصان کی شرائط طے کرتی ہے۔
اس حکمت عملی کا مقصد مارکیٹوں کے رجحانات کو کنٹرول کرتے ہوئے مارکیٹوں کے رجحانات سے فائدہ اٹھانا ہے۔ حکمت عملی کا منطق واضح اور لاگو کرنا آسان ہے ، لیکن ابھی بھی مارٹنگیل لیوریجنگ سے وابستہ خطرات اور مقررہ منافع اور اسٹاپ نقصان کے تناسب کی حدود ہیں۔ مستقبل میں ، حکمت عملی کو لیوریجنگ کے نقطہ نظر کو متحرک طور پر ایڈجسٹ کرکے ، تجارتی سگنلز کو بہتر بنانے ، موافقت پذیر منافع اور اسٹاپ نقصان کے طریقوں کو اپنانے ، اور حکمت عملی کی استحکام اور منافع بخش کو بہتر بنانے کے لئے پوزیشن مینجمنٹ کو نافذ کرنے سے بہتر بنایا جاسکتا ہے۔
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 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=500) // MACD 설정 변경 fastLength = 15 slowLength = 30 signalSmoothing = 9 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) // 계약수 및 이전 거래 결과 기록 var float contractSize = 0.02 // 계약 수를 0.05로 시작 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.015)) 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.02 // 리셋 할 때 0.05로 리셋 martingaleCount := 0 else contractSize := 0.02 // 초기화 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")