因為電腦是OS的作業系統,所以使用TradingView。但目前沒有交易的經驗,所以改良方面沒有比較具體的想法,主要針對: 1.中間價格計算:加入了開盤範圍的中間價格,以便更好地理解開盤範圍的位置。 2.範圍寬度計算:計算開盤範圍的寬度,用於進一步濾波和定義突破條件。 3.突破條件修改:突破條件進行了修改,不再僅依賴於價格是否超出開盤範圍,而是加入了一個寬度的概念,以減少虛假信號的出現。 目前也是第一次使用TradingView 還在摸索怎麼使用其回測,還請各位海涵🙏 以下是程式碼的部分 //@version=5 indicator(title="Improved Opening Range Breakout", shorttitle="Improved ORB", overlay=true) // 定義開盤範圍時間 orb_length = input.int(30, title="開盤範圍時間(分鐘)") // 計算開盤範圍 var float orb_high = na var float orb_low = na if (bar_index % orb_length == 0) orb_high := high orb_low := low else orb_high := math.max(orb_high, high) orb_low := math.min(orb_low, low) // 計算開盤範圍的中間價格 orb_mid = (orb_high + orb_low) / 2 // 計算開盤範圍的寬度 orb_range = orb_high - orb_low // 定義突破條件 long_breakout_condition = high > orb_high + 0.5 * orb_range short_breakout_condition = low < orb_low - 0.5 * orb_range // 繪製開盤範圍高點和低點 plot(orb_high, color=color.green, title="開盤範圍高點", linewidth=2) plot(orb_low, color=color.red, title="開盤範圍低點", linewidth=2) // 繪製突破信號 plotshape(long_breakout_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Long Signal") plotshape(short_breakout_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Short Signal") // 標記買入和賣出信號 if (long_breakout_condition) label.new(x=bar_index, y=low, text="Buy", style=label.style_label_up, color=color.green, size=size.small) if (short_breakout_condition) label.new(x=bar_index, y=high, text="Sell", style=label.style_label_down, color=color.red, size=size.small)