یہ حکمت عملی رجحان کے مواقع کی نشاندہی کرنے کے لئے فراکٹل لہر تھیوری اور ایس ایم ایم اے کو جوڑتی ہے ، اور منافع کو زیادہ سے زیادہ کرنے کے لئے خطرات کو کنٹرول کرنے کے لئے مناسب اسٹاپ نقصان اور ٹریلنگ اسٹاپ کا استعمال کرتی ہے۔ یہ صرف مخصوص تجارتی سیشنوں کے دوران پوزیشنوں میں داخل ہوتا ہے تاکہ مخصوص اوقات میں مارکیٹ میں اتار چڑھاؤ سے بچ سکے۔
حل:
یہ حکمت عملی تجارت میں رجحان اور الٹ پوائنٹس کی نشاندہی کرنے کے لئے فریکٹل ویو تھیوری اور ایس ایم ایم اے کو مربوط کرتی ہے ، جس میں مناسب اسٹاپ نقصان اور منافع لینے کے ساتھ ہے۔ پیرامیٹرز کو بہتر بنانے اور زیادہ استحکام اور منافع بخش ہونے کے لئے تصدیق کرنے والے اشارے شامل کرکے اس میں مزید بہتری لائی جاسکتی ہے۔
/*backtest start: 2022-11-12 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("FX Strategy Based on Fractals and SMMA", overlay=true) // パラメータ SMMAPeriod1 = input(30, title="SMMA Period") StopLoss1 = input(7, title="Stop Loss %") TrailingStopCoef1 = input(2.7, title="Trailing Stop Coefficient") fractalPeriod = input(5, title="Fractal Period") // SMMAの計算関数 smma(src, length) => var float smma = na if na(smma[1]) smma := sma(src, length) else smma := (smma[1] * (length - 1) + src) / length smma // フラクタルの近似 highFractal = high[2] > high[1] and high[2] > high[3] and high[2] > high[4] and high[2] > high lowFractal = low[2] < low[1] and low[2] < low[3] and low[2] < low[4] and low[2] < low // エントリー条件 longEntrySignal = lowFractal and close[1] < smma(close, SMMAPeriod1) shortEntrySignal = highFractal and close[1] > smma(close, SMMAPeriod1) // エントリー実行 if (longEntrySignal) strategy.entry("Long", strategy.long) if (shortEntrySignal) strategy.entry("Short", strategy.short) // トレーリングストップの計算 atrValue = atr(10) longStopPrice = close - atrValue * TrailingStopCoef1 shortStopPrice = close + atrValue * TrailingStopCoef1 // トレーリングストップの設定 strategy.exit("Exit Long", "Long", stop=longStopPrice) strategy.exit("Exit Short", "Short", stop=shortStopPrice) // バックテスト期間の設定(MetaTraderのバックテストと同じ期間) startYear = 2007 startMonth = 05 startDay = 01 endYear = 2022 endMonth = 04 endDay = 01 startDate = timestamp(startYear, startMonth, startDay, 00, 00) endDate = timestamp(endYear, endMonth, endDay, 23, 59) // バックテスト期間内でのみトレードを実行 if (time >= startDate and time <= endDate) if (longEntrySignal) strategy.entry("Long", strategy.long) if (shortEntrySignal) strategy.entry("Short", strategy.short)