MACD اشارے پر مبنی رجحان کی پیروی کرنے والی تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-27 16:46:38 آخر میں ترمیم کریں: 2023-09-27 16:46:38
کاپی: 1 کلکس کی تعداد: 651
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

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

  1. MACD اشارے کا استعمال کرتے ہوئے بڑے رجحانات کی سمت کا تعین کرنا

    • لمبی مدت EMA تیز لائن ، سست لائن اور MACD کالم لائن کا حساب لگائیں

    • رجحانات کی سمت کا تعین کرنے کے لئے مختلف ادوار کے MACD میں تبدیلیوں کا موازنہ کریں

  2. اسٹوک اشارے کا استعمال کرتے ہوئے مخصوص خرید و فروخت کے مقامات کا تعین کرنا

    • %K لائن اور %D لائن کا حساب لگائیں

    • اسٹوک نے اوورلوڈ اوورلوڈ کے قریب اسٹیک کو ہٹا دیا اور خرید و فروخت کے اشارے کے طور پر واپس اٹھایا

  3. رجحان کی سمت اور اسٹوک سگنل کے ساتھ خرید و فروخت کا آپریشن

    • سٹوک خریدنے کا اشارہ ظاہر ہوتا ہے جب بڑے دورانیے کی MACD اوپر جاتی ہے ، اور اس سے زیادہ ہوتا ہے

    • جب بڑے دورانیہ MACD گرتا ہے تو ، اسٹوک نے سگنل فروخت کیا اور اس میں کمی کردی

  4. سٹاپ نقصان کی روک تھام اور فنڈ مینجمنٹ کو بہتر بنائیں

طاقت کا تجزیہ

  • اس حکمت عملی میں ٹرینڈ ٹریکنگ اور اوور بیئر اوور سیلنگ اشارے شامل ہیں ، جو وسط اور لمبی لائن کے رجحانات کو مؤثر طریقے سے پکڑنے میں مدد کرتے ہیں۔

  • MACD بڑی سمت کا تعین کرتا ہے ، اسٹوک تجارت کی تفصیلات ، خطرے کو مؤثر طریقے سے کنٹرول کرتا ہے

  • انڈیکیٹرز کے مابین مجموعوں کا فائدہ اٹھائیں اور انڈیکیٹرز کی حکمت عملی بنائیں

  • ٹریڈنگ کے خطرے کے انتظام کے لئے سٹاپ نقصان کی روک تھام کا نظام قائم کرنا

  • حکمت عملی کے پیرامیٹرز مختلف مارکیٹ کے حالات کے لئے مرضی کے مطابق ہیں

خطرے کا تجزیہ

  • مڈل اور لانگ لائن رجحان کا اندازہ لگانے میں غلطیاں ہوسکتی ہیں ، جس کی وجہ سے منفی تجارت میں نقصان ہوتا ہے۔

  • اسٹوک اشارے غلط سگنل دیتے ہیں ، جس سے کم منافع ہوتا ہے یا نقصان ہوتا ہے

  • ٹرینڈ میں تبدیلی کے ساتھ ، اسٹاپ نقصان کا نقطہ توڑ سکتا ہے اور نقصان کو بڑھا سکتا ہے

  • منافع کا ہدف بڑا یا چھوٹا ہونا حکمت عملی پر اثر انداز ہوتا ہے

  • غیر مناسب پیرامیٹرز اور مارکیٹ کے ماحول میں تبدیلیوں کو اپنانے میں ناکامی ، حکمت عملی کی ناکامی کا سبب بن سکتی ہے

  • رجحانات کا اندازہ لگانے کے طریقوں کو بہتر بنانے ، اسٹوک سگنل کی توثیق کرنے ، اسٹاپ نقصان کی پوزیشن کو ایڈجسٹ کرنے وغیرہ کے ذریعہ خطرے کو کم کیا جاسکتا ہے

اصلاح کی سمت

  • MACD پیرامیٹرز کے مجموعے کو بہتر بنانا تاکہ رجحانات کی درستگی کو بہتر بنایا جاسکے

  • غلط سگنل سے بچنے کے لئے ایک سے زیادہ وقت کی مدت کے ساتھ اسٹوک اشارے پر غور کریں

  • مارکیٹ میں اتار چڑھاو کے مطابق اسٹاپ نقصان اور اسٹاپ بند تناسب کو متحرک طور پر ایڈجسٹ کرنا

  • دوسرے اشارے سگنل کے ساتھ مل کر verifies ، سگنل کی افادیت میں اضافہ

  • مختلف قسم کی خصوصیات اور ٹرانزیکشن کے وقت کے مطابق پیرامیٹرز کو بہتر بنائیں

  • مشین لرننگ الگورتھم کا اضافہ، رجحانات کا اندازہ لگانے میں مدد کرتا ہے

  • کم یا زیادہ سے زیادہ پیچھا کرنے سے بچنے کے لئے مجموعی توانائی کے اشارے

خلاصہ کریں۔

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

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

//@version=4

// strategy(title="自用策略v0.2",calc_on_order_fills=false,calc_on_every_tick =false, initial_capital=10000,commission_type=strategy.commission.percent, commission_value=0.00,overlay = true,default_qty_type = strategy.cash, default_qty_value = 10000)



//STOCH
periodD = input(3, title="%D Smoothing", minval=1)
periodK = input(14, title="%K Length", minval=1)
periodK2 = input(42, title="%K2 Length", minval=1)
periodK3 = input(126, title="%K3 Length", minval=1)
periodK4 = input(378, title="%K4 Length", minval=1)
periodK5 = input(14, title="%K5 Length", minval=1)
periodK6 = input(30, title="%K6 Length", minval=1)
smoothK = input(1, title="%K Smoothing", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
k2 = sma(stoch(close, high, low, periodK2), smoothK*3)
k3 = sma(stoch(close, high, low, periodK3), smoothK*3*3)
k4 = sma(stoch(close, high, low, periodK4), smoothK*3*3*3)
d = sma(k, periodD)
all = (k+k2*3+k3*9+k4*18)/31
allp = sma(all, periodK6)



buffer = input(title="buffer", type=input.float, defval=0.3, minval = 0, step = 0.1)
b1 = close[1]* (1+buffer/100)
b2 = close[1]* (1-buffer/100)

//MACD
fast_length = input(title="Fast Length", defval=144)
slow_length = input(title="Slow Length", defval=312)

src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing",  minval = 1, maxval = 200, defval = 108)
sma_source = input(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Calculating
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
MACDCHA = input(title="MACDCHA步长", defval=30)
MACDCHA2 = input(title="MACDCHA步长2", defval=20)
MACDCHA3 = input(title="MACDCHA步长3", defval=10)
MACDCHA4 = input(title="MACDCHA步长4", defval=5)
MACDCHA5 = input(title="MACDCHA步长5", defval=3)
MACDCHA6 = input(title="MACDCHA步长6", defval=1)
HISTCHA = input(title="hist步长", defval=50)
macdcha = hist - hist[MACDCHA]
macdcha2 = hist - hist[MACDCHA2]
macdcha3 = hist - hist[MACDCHA3]
macdcha4 = hist - hist[MACDCHA4]
macdcha5 = hist - hist[MACDCHA5]
macdcha6 = hist - hist[MACDCHA6]
histcha = hist[HISTCHA]
var true2 = 0
var true2_1 = 0
var true2_2 = 0
var true2_3 = 0
var true2_4 = 0//延伸
var fangxiang =0
//确认方向
if(macdcha>=0 and macdcha2>=0 and macdcha3>=0 and macdcha4>=0 and macdcha5>=0 and macdcha6>=0)
    fangxiang := 1
    true2_2 := 0
if(macdcha<=0 and macdcha2<=0 and macdcha3<=0 and macdcha4<=0 and macdcha5<=0 and macdcha6<=0)
    fangxiang :=-1
    true2_1 := 1
//k3min = min(k3,k3[1],k3[2],k3[3],k3[4],k3[5],k3[6],k3[7],k3[8],k3[9],k3[10],k3[11],k3[12],k3[13],k3[14],k3[15],k3[16],k3[17],k3[18],k3[19],k3[20],k3[21],k3[22],k3[23],k3[24],k3[25],k3[26],k3[27],k3[28],k3[29],k3[30],k3[31],k3[32],k3[33],k3[34],k3[35],k3[36],k3[37],k3[38],k3[39],k3[40],k3[41],k3[42],k3[43],k3[44],k3[45],k3[46],k3[47],k3[48],k3[49],k3[50])
//k3max = max(k3,k3[1],k3[2],k3[3],k3[4],k3[5],k3[6],k3[7],k3[8],k3[9],k3[10],k3[11],k3[12],k3[13],k3[14],k3[15],k3[16],k3[17],k3[18],k3[19],k3[20],k3[21],k3[22],k3[23],k3[24],k3[25],k3[26],k3[27],k3[28],k3[29],k3[30],k3[31],k3[32],k3[33],k3[34],k3[35],k3[36],k3[37],k3[38],k3[39],k3[40],k3[41],k3[42],k3[43],k3[44],k3[45],k3[46],k3[47],k3[48],k3[49],k3[50])
allpmax = max(allp[1],allp[2],allp[3],allp[4],allp[5],allp[6])
allpmin = min(allp[1],allp[2],allp[3],allp[4],allp[5],allp[6])
if(histcha < 0 and macdcha>=0 and macdcha2>=0 and macdcha3>=0 and macdcha4>=0 and macdcha5>=0 and macdcha6>=0 and d < 20 and volume > volume[1] and true2_1 == 1 and allp>allp[1] and allp <80)//and k3max < 80  //and k3min < 30 and k3 >20 and k2<50
    strategy.entry("开多", true, comment = "开多") // and close > close[1] and cci1> MEA1
    true2_1 :=0
if(d >80)
    strategy.close( "开多", comment = "平多")
    true2_1 :=1

stop_loss=input(4, "做多止损 %", minval = 1, step = 1)
sl = strategy.position_avg_price * (1-stop_loss/100)
close_Stop = close < sl
if(close_Stop or(allp<20 and allp[1]>20))
    strategy.close( "开多", comment = "做多止损")
    true2_1 :=1
Target_profit=input(10, "做多止盈 %", minval = 1, step = 1)
tp = strategy.position_avg_price * (1+Target_profit/100)
close_Target = close > tp
strategy.close("开多", when = close_Target, comment ="做多盈利")


//空
if(histcha > 0 and macdcha<=0 and macdcha2<=0 and macdcha3<=0 and macdcha4<=0 and macdcha5<=0 and macdcha6<=0 and d > 80 and volume > volume[1] and true2_2 == 1 and allp<allp[1] and allp >20) // and k3max>70 and k3<80
    //strategy.entry("开空", comment = "开空") 
    strategy.entry("开空", strategy.short,comment ="开空")
    true2_2 := 0
if( d <20)
   // strategy.close(  comment = "平空")
    strategy.close("开空",  comment = "平空")
    true2_2 := 1

stop_loss2=input(4, "做空止损 %", minval = 1, step = 1)
sl2 = strategy.position_avg_price * (1+stop_loss2/100)
close_Stop2 = close > sl2
if(close_Stop2 or(allp>80 and allp[1]<80))
    strategy.close( "开空", comment = "做空止损")
    true2_2 == 1
Target_profit2=input(10, "做空止盈 %", minval = 1, step = 1)
tp2 = strategy.position_avg_price * (1-Target_profit2/100)
close_Target2 = close < tp2
strategy.close("开空", when = close_Target2, comment ="做空盈利")