یہ حکمت عملی چلتی اوسط کے درمیان وقفے کو بڑھا کر رجحانات کی نشاندہی کرتی ہے۔ جب ایک بڑھتے ہوئے رجحان کی نشاندہی کی جاتی ہے تو ، یہ آہستہ آہستہ رجحان سے فائدہ اٹھانے کے لئے طویل پوزیشنیں بناتا ہے۔ اسی وقت ، خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان کے مقامات مرتب کیے جاتے ہیں۔
دو حرکت پذیر اوسط ، ای ایم اے 1 اور ای ایم اے 2 ، کو تھوڑا سا مختلف ادوار کے ساتھ ترتیب دیں ، مثال کے طور پر 55 اور 89۔ اس سے ایم اے کے مابین وسیع تر حد پیدا ہوتی ہے۔
جب قیمت ایم اے کے اوپر ٹوٹ جاتی ہے تو ، اس سے بڑھتی ہوئی رجحان کا اشارہ ہوتا ہے۔ اس کے بعد طویل پوزیشنیں بتدریج تعمیر کی جاسکتی ہیں۔
پوزیشن لینے کے بعد ، جب قیمت بڑھتی رہتی ہے تو اہرام سازی جاری رکھیں۔ اس سے رجحان سے زیادہ منافع ملتا ہے۔
ایم اے کے نیچے اسٹاپ نقصان کا نقطہ مقرر کریں۔ جب قیمت ایم اے سے نیچے آجاتی ہے تو ، اسٹاپ نقصان کو روکنے کے لئے طویل عرصے سے بند ہوجاتا ہے۔ اسٹاپ نقصان انٹری قیمت کے ساتھ تیرتا ہے۔
اس سے Pyramiding پوزیشنوں کو ایک رجحان سے منافع حاصل کرنے کی اجازت ملتی ہے، جبکہ خطرات کو کنٹرول کرنے کے لئے سٹاپ نقصان کی ترتیب.
ایم اے کی وسیع رینج رجحانات کو واضح طور پر شناخت کرنے میں مدد کرتی ہے۔
پرامڈائزنگ رجحانات سے زیادہ منافع پیدا کرتی ہے۔
متحرک سٹاپ نقصان نقصانات کو محدود کرتے ہوئے رجحانات سے منافع لیتا ہے.
طویل مدتی رجحان ٹریڈنگ کے لئے موزوں.
رجحان کو درست طریقے سے پہچانا جانا چاہیے، ورنہ نقصانات میں تیزی آئے گی۔
مارجن کال کے خطرات سے بچنے کے لئے پرامڈائڈنگ کو کنٹرول کیا جانا چاہئے۔
سٹاپ نقصان معقول حد تک مقرر کیا جانا چاہئے، بہت وسیع نقصانات کو بڑھا سکتا ہے، بہت تنگ whipsaws کا سبب بن سکتا ہے.
لیکویڈیٹی پر غور کرنا ضروری ہے، کم لیکویڈیٹی کے اثاثے مناسب نہیں ہیں۔
مزید اشارے شامل کریں جیسے آر ایس آئی، کے ڈی رجحانات کی تصدیق کرنے اور جھوٹے بریکآؤٹس سے بچنے کے لئے.
بہترین مجموعہ تلاش کرنے کے لئے اثاثوں کی خصوصیات کی بنیاد پر ایم اے کی مدت کو بہتر بنائیں.
پوزیشن سائزنگ کے خطرات کو کنٹرول کرنے کے لئے بہترین پرامڈ ماڈلز کی تحقیق کریں.
منافع میں تالا لگانے اور واپسی کو کم کرنے کے لئے جزوی منافع لینے پر غور کریں.
اثاثوں کی عدم استحکام کی بنیاد پر سٹاپ نقصان مقرر کریں تاکہ تحفظ کو متوازن کیا جا سکے اور وِپساؤ سے بچا جا سکے۔
یہ حکمت عملی وسیع تر ایم اے رینج کے ساتھ رجحانات کی نشاندہی کرتی ہے ، رجحانات سے فائدہ اٹھانے کے لئے اہرام کی پوزیشنیں ، اور خطرات پر قابو پانے کے لئے فلوٹنگ اسٹاپ نقصان طے کرتی ہے۔ یہ رجحانات میں اچھی واپسی حاصل کرسکتا ہے ، لیکن مختلف اثاثوں میں زیادہ مضبوط ہونے کے لئے انٹری سگنلز ، اہرام سازی ، اسٹاپ نقصان وغیرہ پر مزید اصلاح کی ضرورت ہے۔
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy(title='Super Simple Martingale Buying', shorttitle="Martingale v5",overlay=true, pyramiding = 10, initial_capital=1, calc_on_order_fills = true) // Revision: 1 // Author: @ToS_MavericK // === INPUT SMA === EMA1 = input(55) EMA2 = input(89) Amount = input(defval = 6, type = float, title = "Max open Orders", minval = 1, step = 1) Multiplier = input(defval = 2 , type = float, title = "Multiplier", minval = 1, step = 0.1) BuyLvl = input(defval = 1, type = float, title = "BuyLvl", minval = 0, step = 0.1) Profit = input(3) DoubleUpLimit = input(2) // === INPUT BACKTEST RANGE === FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear = input(defval = 2019, title = "From Year", minval = 2012) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 2020, title = "To Year", minval = 2012) RSIFilter = input(false) minRSI = input(defval = 35, title = "RSI", minval = 1, step = 1) lengthRSI = input(14, minval=1) src = input(close, title="RSI Source") StochRSIFilter = input(false) lengthStoch = input(14, minval=1) smoothK = input(3, minval=1) smoothD = input(3, minval=1) rsi = rsi(src, lengthRSI) k = sma(stoch(rsi, rsi, rsi, lengthStoch), smoothK) d = sma(k, smoothD) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // === SERIES SETUP === vEMA1 = ema(close, EMA1) vEMA2 = ema(close, EMA2) buy = (rsi < minRSI or RSIFilter == false) and ((crossover(k,d) and k < 20) or StochRSIFilter == false) and ((close < vEMA1 * (1 - BuyLvl/100) and vEMA1 < vEMA2) or (close < vEMA2 * (1 - BuyLvl/100) and vEMA2 < vEMA1)) BuyPrice = strategy.position_avg_price * (1 - DoubleUpLimit/50) SellPrice = strategy.position_avg_price * (1 + Profit/(100*strategy.opentrades)) // Exit first, due to the limit orders, which can be hit on the same bar strategy.exit("EMA1", limit = SellPrice, when = window() and strategy.opentrades > 0) strategy.close("EMA1",when = time > finish) // close positions at the end of the specified time period // Normal entry strategy.entry("EMA1", strategy.long,qty = strategy.equity/ (close * pow(2,Amount - 1)), when = window() and strategy.opentrades == 0 and buy) // Martingale strategy.entry("EMA1", strategy.long,qty = strategy.position_size, limit = strategy.position_avg_price * (1 - DoubleUpLimit/100), when = window() and strategy.opentrades == 1) strategy.entry("EMA1", strategy.long,qty = strategy.position_size, limit = BuyPrice, when = window() and strategy.opentrades > 1 and strategy.opentrades < Amount) plot(vEMA1, title = 'EMA1', color = orange, linewidth = 2, style = line) plot(vEMA2, title = 'EMA2', color = yellow, linewidth = 2, style = line) plot(BuyPrice[1], title = 'BuyPrice', color = red, linewidth = 2, style = line) plot(SellPrice[1], title = 'SellPrice', color = green, linewidth = 2, style = line)