یہ حکمت عملی متعدد ٹائم فریموں سے MACD کراس سگنلز کو متحرک سپورٹ اور مزاحمت کی سطحوں کے ساتھ جوڑتی ہے جو 52 ہفتوں کی اونچائیوں اور اونچائیوں پر مبنی ہے۔ یہ منافع کو یقینی بناتے ہوئے خطرہ کو مؤثر طریقے سے کنٹرول کرنے کے لئے متحرک اسٹاپ نقصان میکانزم کو استعمال کرتی ہے۔
یہ حکمت عملی مندرجہ ذیل بنیادی منطق پر مبنی ہے:
یہ حکمت عملی 52 ہفتوں کی اونچائیوں اور نچلی سطحوں پر مبنی متحرک سپورٹ اور مزاحمت کی لائنوں کے ساتھ ملٹی ٹائم فریم ایم اے سی ڈی کراس سگنلز کو ملا کر ایک مکمل ٹرینڈ فالونگ ٹریڈنگ سسٹم تیار کرتی ہے۔ اس کی طاقت سگنل کی تصدیق کی وشوسنییتا اور جامع رسک کنٹرول میں ہے ، حالانکہ مارکیٹ اور تاخیر کے خطرات پر توجہ دینی ہوگی۔ مسلسل اصلاح اور بہتری کے ذریعے ، یہ حکمت عملی رجحان سازی کی منڈیوں میں مستحکم واپسی کے حصول کے لئے وعدہ کرتی ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD Bitcoin strategy con 52W High/Low (linee estese)", overlay=true) // === MACD SETTINGS === fastLength = 12 slowLength = 26 signalSmoothing = 9 // Funzione per ottenere i valori MACD getMACD(source, timeframe) => [macdLine, signalLine, _] = ta.macd(source, fastLength, slowLength, signalSmoothing) [macdLine, signalLine] // Valori MACD Settimanali [macdWeekly, signalWeekly] = request.security(syminfo.tickerid, "W", getMACD(close, "W"), lookahead=barmerge.lookahead_on) // Valori MACD Giornalieri [macdDaily, signalDaily] = getMACD(close, "D") // Variabile per lo stop loss var float lowOfSignalCandle = na // Condizione per l'ingresso longConditionWeekly = ta.crossover(macdWeekly, signalWeekly) exitConditionDaily = ta.crossunder(macdDaily, signalDaily) // Imposta Stop Loss sulla candela giornaliera if (exitConditionDaily) lowOfSignalCandle := low // Condizione di ingresso nel trade enterTradeCondition = macdWeekly > signalWeekly and ta.crossover(macdDaily, signalDaily) if (enterTradeCondition) strategy.entry("MACD Long", strategy.long) if (not na(lowOfSignalCandle)) strategy.exit("Stop Loss", "MACD Long", stop=lowOfSignalCandle) if (strategy.position_size == 0) lowOfSignalCandle := na // // === 52 WEEK HIGH/LOW SETTINGS === // // Input per selezionare tra Highs/Lows o Close // high_low_close = input.string(defval="Highs/Lows", title="Base 52 week values on candle:", options=["Highs/Lows", "Close"]) // // Calcolo dei valori delle 52 settimane // weekly_hh = request.security(syminfo.tickerid, "W", ta.highest(high, 52), lookahead=barmerge.lookahead_on) // weekly_ll = request.security(syminfo.tickerid, "W", ta.lowest(low, 52), lookahead=barmerge.lookahead_on) // weekly_hc = request.security(syminfo.tickerid, "W", ta.highest(close, 52), lookahead=barmerge.lookahead_on) // weekly_lc = request.security(syminfo.tickerid, "W", ta.lowest(close, 52), lookahead=barmerge.lookahead_on) // // Selezione dei valori in base all'input // high_plot = high_low_close == "Highs/Lows" ? weekly_hh : weekly_hc // low_plot = high_low_close == "Highs/Lows" ? weekly_ll : weekly_lc // // === LINEE ORIZZONTALI ESTESE FINO AL PREZZO ATTUALE === // var line highLine = na // var line lowLine = na // // Linea Orizzontale per il 52W High // if (na(highLine)) // highLine := line.new(bar_index, high_plot, bar_index + 1, high_plot, color=color.green, width=2, style=line.style_dashed, extend=extend.right) // else // line.set_y1(highLine, high_plot) // line.set_y2(highLine, high_plot) // // Linea Orizzontale per il 52W Low // if (na(lowLine)) // lowLine := line.new(bar_index, low_plot, bar_index + 1, low_plot, color=color.red, width=2, style=line.style_dashed, extend=extend.right) // else // line.set_y1(lowLine, low_plot) // line.set_y2(lowLine, low_plot) // // Etichette per le linee orizzontali // var label highLabel = na // var label lowLabel = na // if (na(highLabel)) // highLabel := label.new(bar_index, high_plot, "52W High", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.small) // else // label.set_y(highLabel, high_plot) // label.set_x(highLabel, bar_index) // if (na(lowLabel)) // lowLabel := label.new(bar_index, low_plot, "52W Low", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.small) // else // label.set_y(lowLabel, low_plot) // label.set_x(lowLabel, bar_index) // // Tracciamento delle Linee Estese // plot(high_plot, title="52W High", color=color.green, style=plot.style_linebr) // plot(low_plot, title="52W Low", color=color.red, style=plot.style_linebr)