اسٹاک ٹریڈنگ کے لئے توسیع شدہ چلتی اوسط رینج کے ساتھ مارٹنگیل حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-02 17:16:08
ٹیگز:

img

جائزہ

یہ حکمت عملی چلتی اوسط کے درمیان وقفے کو بڑھا کر رجحانات کی نشاندہی کرتی ہے۔ جب ایک بڑھتے ہوئے رجحان کی نشاندہی کی جاتی ہے تو ، یہ آہستہ آہستہ رجحان سے فائدہ اٹھانے کے لئے طویل پوزیشنیں بناتا ہے۔ اسی وقت ، خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان کے مقامات مرتب کیے جاتے ہیں۔

حکمت عملی منطق

  1. دو حرکت پذیر اوسط ، ای ایم اے 1 اور ای ایم اے 2 ، کو تھوڑا سا مختلف ادوار کے ساتھ ترتیب دیں ، مثال کے طور پر 55 اور 89۔ اس سے ایم اے کے مابین وسیع تر حد پیدا ہوتی ہے۔

  2. جب قیمت ایم اے کے اوپر ٹوٹ جاتی ہے تو ، اس سے بڑھتی ہوئی رجحان کا اشارہ ہوتا ہے۔ اس کے بعد طویل پوزیشنیں بتدریج تعمیر کی جاسکتی ہیں۔

  3. پوزیشن لینے کے بعد ، جب قیمت بڑھتی رہتی ہے تو اہرام سازی جاری رکھیں۔ اس سے رجحان سے زیادہ منافع ملتا ہے۔

  4. ایم اے کے نیچے اسٹاپ نقصان کا نقطہ مقرر کریں۔ جب قیمت ایم اے سے نیچے آجاتی ہے تو ، اسٹاپ نقصان کو روکنے کے لئے طویل عرصے سے بند ہوجاتا ہے۔ اسٹاپ نقصان انٹری قیمت کے ساتھ تیرتا ہے۔

  5. اس سے Pyramiding پوزیشنوں کو ایک رجحان سے منافع حاصل کرنے کی اجازت ملتی ہے، جبکہ خطرات کو کنٹرول کرنے کے لئے سٹاپ نقصان کی ترتیب.

فوائد کا تجزیہ

  1. ایم اے کی وسیع رینج رجحانات کو واضح طور پر شناخت کرنے میں مدد کرتی ہے۔

  2. پرامڈائزنگ رجحانات سے زیادہ منافع پیدا کرتی ہے۔

  3. متحرک سٹاپ نقصان نقصانات کو محدود کرتے ہوئے رجحانات سے منافع لیتا ہے.

  4. طویل مدتی رجحان ٹریڈنگ کے لئے موزوں.

خطرے کا تجزیہ

  1. رجحان کو درست طریقے سے پہچانا جانا چاہیے، ورنہ نقصانات میں تیزی آئے گی۔

  2. مارجن کال کے خطرات سے بچنے کے لئے پرامڈائڈنگ کو کنٹرول کیا جانا چاہئے۔

  3. سٹاپ نقصان معقول حد تک مقرر کیا جانا چاہئے، بہت وسیع نقصانات کو بڑھا سکتا ہے، بہت تنگ whipsaws کا سبب بن سکتا ہے.

  4. لیکویڈیٹی پر غور کرنا ضروری ہے، کم لیکویڈیٹی کے اثاثے مناسب نہیں ہیں۔

اصلاح کے لیے تجاویز

  1. مزید اشارے شامل کریں جیسے آر ایس آئی، کے ڈی رجحانات کی تصدیق کرنے اور جھوٹے بریکآؤٹس سے بچنے کے لئے.

  2. بہترین مجموعہ تلاش کرنے کے لئے اثاثوں کی خصوصیات کی بنیاد پر ایم اے کی مدت کو بہتر بنائیں.

  3. پوزیشن سائزنگ کے خطرات کو کنٹرول کرنے کے لئے بہترین پرامڈ ماڈلز کی تحقیق کریں.

  4. منافع میں تالا لگانے اور واپسی کو کم کرنے کے لئے جزوی منافع لینے پر غور کریں.

  5. اثاثوں کی عدم استحکام کی بنیاد پر سٹاپ نقصان مقرر کریں تاکہ تحفظ کو متوازن کیا جا سکے اور وِپساؤ سے بچا جا سکے۔

خلاصہ

یہ حکمت عملی وسیع تر ایم اے رینج کے ساتھ رجحانات کی نشاندہی کرتی ہے ، رجحانات سے فائدہ اٹھانے کے لئے اہرام کی پوزیشنیں ، اور خطرات پر قابو پانے کے لئے فلوٹنگ اسٹاپ نقصان طے کرتی ہے۔ یہ رجحانات میں اچھی واپسی حاصل کرسکتا ہے ، لیکن مختلف اثاثوں میں زیادہ مضبوط ہونے کے لئے انٹری سگنلز ، اہرام سازی ، اسٹاپ نقصان وغیرہ پر مزید اصلاح کی ضرورت ہے۔


/*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)

مزید