یہ حکمت عملی MACD اشارے کی بنیاد پر رجحان کی سمت کی نشاندہی کرتی ہے اور اسٹاک اشارے کا استعمال کرتے ہوئے مخصوص خرید و فروخت کے فیصلے کرتی ہے۔ اس میں داخلے اور باہر نکلنے کے لئے اہم رجحان اور مختصر سائیکل اسٹاک کا تعین کرنے کے لئے طویل سائیکل MACD اپنایا جاتا ہے۔
MACD اشارے کا استعمال کرتے ہوئے اہم رجحان کی سمت کا اندازہ
تیز رفتار ای ایم اے، سست ای ایم اے اور ایم اے سی ڈی ہسٹوگرام کا حساب لگانا
رجحان کا تعین کرنے کے لئے مختلف سائیکلوں میں MACD کی نقل و حرکت کا موازنہ
اسٹاک اشارے کا استعمال کرتے ہوئے مخصوص خرید و فروخت کے مقامات کی نشاندہی کرنا
%K لائن اور %D لائن کا حساب لگائیں
زیادہ خرید یا زیادہ فروخت زون کے قریب تغیر، اسٹاکس ٹریڈنگ سگنل کے طور پر واپس آنے کے ساتھ
رجحان کی سمت اور اسٹاک سگنلز کی بنیاد پر خرید و فروخت کے فیصلے کرنا
جب بڑے سائیکل MACD بڑھتا ہے اور اسٹاک خریدنے کا اشارہ ظاہر ہوتا ہے تو طویل عرصے تک جائیں
جب بڑے سائیکل MACD گرتا ہے اور اسٹاک فروخت سگنل ظاہر ہوتا ہے تو مختصر ہوجائیں
خطرہ مینجمنٹ کو بہتر بنانے کے لئے سٹاپ نقصان اور منافع حاصل کرنا
رجحان کی پیروی کرنے والے اور زیادہ خریدنے والے اشارے کو یکجا کرنے سے درمیانی اور طویل مدتی رجحانات کو مؤثر طریقے سے پکڑنے میں مدد ملتی ہے
MACD اہم سمت کا تعین کرتا ہے جبکہ اسٹاک تجارت کی تفصیلات پر کام کرتا ہے جو خطرات کو کم کرتا ہے
منظم حکمت عملی بنانے کے لئے اشارے کے مجموعوں کا مکمل استعمال
اسٹاپ نقصان اور منافع لینے کا تعین تجارت کے خطرات کو کنٹرول کرتا ہے
بہتر بنانے کے قابل پیرامیٹرز مختلف مارکیٹ کے حالات کے مطابق
درمیانی اور طویل مدتی رجحان کا غلط اندازہ ٹریڈنگ کے نقصانات کا باعث بن سکتا ہے
اسٹاک سے غلط سگنل ناکافی منافع یا نقصان کا سبب بنتے ہیں
سٹاپ نقصان کا نقطہ ٹرینڈ تبدیلیوں کے بعد توڑ دیا جا سکتا ہے، نقصانات میں توسیع
غیر مناسب منافع کے ہدف کی سطح حکمت عملی کی کارکردگی کو متاثر کرتی ہے
غیر موثر پیرامیٹرز اور بدلتے ماحول کے مطابق ڈھالنے میں ناکامی حکمت عملی کو باطل کر سکتی ہے
خطرات کو ٹرینڈ فیصلے کو بہتر بنانے ، اسٹاک سگنلز کی تصدیق ، اسٹاپ نقصان اور منافع حاصل کرنے وغیرہ کو ایڈجسٹ کرکے کم کیا جاسکتا ہے۔
رجحان کی تشخیص کی درستگی کو بہتر بنانے کے لئے MACD پیرامیٹر مکس کو بہتر بنائیں
غلط سگنل سے بچنے کے لئے کثیر سائیکل اسٹاک پر غور کریں
مارکیٹ کی اتار چڑھاؤ کو ایڈجسٹ کرنے کے لئے اسٹاپ نقصان اور منافع لینے کے تناسب کو متحرک طور پر ایڈجسٹ کریں
توثیق اور توثیق کو بہتر بنانے کے لئے دیگر اشارے سگنل شامل کریں
مختلف مصنوعات کی خصوصیات اور تجارتی سیشنوں کی بنیاد پر پیرامیٹرز کو بہتر بنائیں
رجحان کی سمت کے فیصلے میں مدد کے لئے مشین لرننگ ماڈل متعارف کروائیں
ناکافی پیچھا یا زیادہ پیروی سے بچنے کے لئے حجم اشارے شامل کریں
یہ حکمت عملی خطرات کو کنٹرول کرتے ہوئے درمیانی سے طویل مدتی رجحانات کو حاصل کرنے کے لئے ایم اے سی ڈی اور اسٹاک اشارے کی طاقت کو مربوط کرتی ہے۔ یہ پیرامیٹرز کو بہتر بنانے ، اسٹاپ نقصان اور منافع حاصل کرنے ، سگنلز کی توثیق وغیرہ کی ترتیب سے مختلف مارکیٹ کے حالات میں موثر ثابت ہوسکتا ہے۔ پیرامیٹرز کو مزید ٹوننگ ، سگنل کی درستگی کو بہتر بنانے اور مشین لرننگ کو شامل کرنے سے ابھی بھی بہتری کی گنجائش ہے۔ حکمت عملی زیادہ جامع اور ذہین ہوسکتی ہے۔
/*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 ="做空盈利")