MACD اور RSI پر مبنی طویل اور مختصر دو طرفہ تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-10-09 15:33:17 آخر میں ترمیم کریں: 2023-10-09 15:33:17
کاپی: 0 کلکس کی تعداد: 701
1
پر توجہ دیں
1617
پیروکار

جائزہ

اس حکمت عملی میں MACD اور RSI دونوں اشارے شامل ہیں ، جو اس صورت میں لاگو ہوتے ہیں جب رجحان کی سمت واضح نہیں ہوتی ہے ، جبکہ اضافی منافع حاصل کرنے کے لئے زیادہ سے زیادہ ڈراپ ٹریڈنگ کی جاتی ہے۔

حکمت عملی کا اصول

  1. تیز رفتار ای ایم اے ((12 دن لائن) اور سست رفتار ای ایم اے ((26 دن لائن) کا حساب لگائیں
  2. MACD convergence کے فاصلے کا حساب لگائیں ((فاسٹ EMA مائنس سست EMA)
  3. MACD کی 9 روزہ منتقل اوسط کو سگنل لائن signal کے طور پر شمار کریں
  4. 14 دن RSI حساب
  5. جب MACD <-0.1 ، RSI <27 اور فاسٹ EMA سست EMA سے کم ہو تو زیادہ کام کریں
  6. جب MACD> 0.125 ، RSI> 81 اور فاسٹ EMA فاسٹ EMA سے زیادہ ہو تو ، خالی کریں
  7. پوزیشنوں کا انتظام کرنے کے لئے اسٹاپ ، اسٹاپ نقصان اور متحرک اسٹاپ کو ترتیب دیں

طاقت کا تجزیہ

  1. ایک ہی وقت میں فاریکس ٹریڈنگ ، غیر رجحان کے حالات میں اضافی منافع حاصل کرنے کے لئے
  2. رجحان سازی اشارے EMA اور ریورس اشارے RSI کے ساتھ مل کر ، سگنل کے معیار کو بہتر بنایا جاسکتا ہے
  3. منافع کو لاک کرنے کے لئے متحرک روکنے کا استعمال ، نقصان کے خطرے کو مؤثر طریقے سے کنٹرول کرتا ہے

خطرے کا تجزیہ

  1. دو طرفہ لین دین کے لئے زیادہ رقم درکار ہے تاکہ ضمانت کی ضرورت کو پورا کیا جاسکے
  2. اس کے علاوہ، یہ بھی ممکن ہے کہ آپ کو ایک ہی وقت میں آپ کی کھلی پوزیشنوں کو نقصان پہنچایا جائے.
  3. پیرامیٹرز کی غلط ترتیب سے زیادہ بار بار تجارت ہوسکتی ہے

خطرے سے نمٹنے کے طریقے:

  1. مناسب مالی اعانت اور پوزیشن کے سائز پر قابو پانے کے لئے
  2. معقول طور پر سٹاپ نقصان کا فاصلہ طے کریں تاکہ زیادہ سے زیادہ اسٹاپ نقصان سے بچا جا سکے
  3. پیرامیٹرز کو بہتر بنانے اور ٹرانزیکشن کی تعدد کو کم کرنے کے لئے

اصلاح کی سمت

  1. انڈسٹری میں داخلے کے وقت کو بہتر بنانے کے لئے اتار چڑھاؤ کے اشارے کے ساتھ مل کر غور کیا جاسکتا ہے
  2. مختلف پیرامیٹرز کے مجموعے کی جانچ کر سکتے ہیں بہترین پیرامیٹرز تلاش کرنے کے لئے
  3. مارکیٹ کے حالات کے مطابق نقصان کی روک تھام کی حکمت عملی کو بہتر بنانا ، جیسے کہ تعاقب میں نقصان کی روک تھام
  4. خود کار طریقے سے اصلاح کے پیرامیٹرز جو مشین لرننگ الگورتھم کے ساتھ مل سکتے ہیں

خلاصہ کریں۔

یہ حکمت عملی MACD اور RSI کے امتزاج کے ذریعے دو طرفہ تجارت کو قابل بناتی ہے۔ منافع کو مقفل کرنے کے لئے متحرک اسٹاپ کا استعمال کرتے ہوئے ، غیر رجحان کے حالات میں اضافی منافع حاصل کیا جاسکتا ہے۔ اس حکمت عملی سے پیرامیٹرز کی ترتیب کو مزید بہتر بنایا جاسکتا ہے ، اسٹاپ نقصان کی حکمت عملی وغیرہ ، زیادہ مستحکم اضافی منافع حاصل کرنے کے لئے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Revision:        290
// Author:          @Hugo_Moriceau
//study("Moriceau_Crypto_strategies_Long_short_indicator_thesis",overlay=true)

// Pyramide 10 order size 100, every tick

strategy("Moriceau_Crypto_strategies_Long_short_indicator",overlay=true)

// === GENERAL INPUTS ===

fast = 12, slow = 26
fastMA = ema(close, fast)
slowMA = ema(close, slow)

macd = fastMA - slowMA
signal = sma(macd, 9)
rsi = rsi(close,14)

dataB = macd < -0.1  and rsi<27 and fastMA < slowMA
// data1 = macd > 0.125  and rsi>81 and fastMA> slowMA
dataS = macd > 0.125 and rsi > 81 and fastMA > slowMA

tradeInvert     = input(defval = false, title = "Invert Trade Direction?")

// === LOGIC ===

// is fast ma above slow ma?
Achat = macd < -0.1  and rsi < 27 and fastMA < slowMA ? true : false
vente = macd > 0.125 and rsi > 81 and fastMA > slowMA ? true : false

// are we inverting our trade direction?
tradeDirection = vente ? Achat ? false : true : Achat ? true : false

// === Plot Setting ===

plot(fastMA,color=red)
plot(slowMA,color=blue)
barcolor(color=iff(fastMA > slowMA, yellow, na))
barcolor(color=iff(fastMA < slowMA, black, na))
//barcolor(color=iff(macd > 0.12*close , fuchsia, na))
//barcolor(color=iff(macd < -0.1*close , lime, na))
plotchar(dataB, char='B',color=black,size = size.auto,location = location.belowbar,transp= 0)  
plotchar(dataS, char='S',color=black,size = size.auto,location = location.abovebar,transp= 0)

//fast = plot(maFast, title = "FastMA", color = yellow, linewidth = 2, style = line, transp = 50)
//slow = plot(maSlow, title = "SlowMA", color = black, linewidth = 2, style = line, transp = 50)

// === BACKTEST RANGE ===
FromMonth = input(defval = 05, title = "From Month", minval = 1)
FromDay   = input(defval = 23, title = "From Day", minval = 1)
FromYear  = input(defval = 2021, title = "From Year", minval = 2017)
ToMonth   = input(defval = 5, title = "To Month", minval = 1)
ToDay     = input(defval = 25, title = "To Day", minval = 1)
ToYear    = input(defval = 2021, title = "To Year", minval = 2017)


// === STRATEGY RELATED INPUTS ===+
// the risk management inputs
inpTakeProfit   = input(defval = 2500, title = "Take Profit", minval = 28)
inpStopLoss     = input(defval = 600, title = "Stop Loss", minval = 15)
inpTrailStop    = input(defval = 300, title = "Trailing Stop Loss", minval = 5)
inpTrailOffset  = input(defval = 50, title = "Trailing Stop Loss Offset", minval = 1)

// === RISK MANAGEMENT VALUE PREP ===

// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.

useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na


// === STRATEGY - LONG POSITION EXECUTION ===

enterLong() => not tradeDirection[1] and tradeDirection 
exitLong() => tradeDirection[1] and not tradeDirection
strategy.entry(id = "Achat", long = true, when = enterLong()) // use function or simple condition to decide when to get in
strategy.close(id = "TP 50% Sell", when = exitLong()) // ...and when to get out

// === STRATEGY - SHORT POSITION EXECUTION ===

enterShort() => tradeDirection[1] and not tradeDirection
exitShort() => not tradeDirection[1] and tradeDirection
strategy.entry(id = "Vente", long = false, when = enterShort())
strategy.close(id = "Vente", when = exitShort())

// === STRATEGY RISK MANAGEMENT EXECUTION ===

// finally, make use of all the earlier values we got prepped
strategy.exit("Vente", from_entry = "Vente", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Short", from_entry = "Achat", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)