Biểu tượng giao dịch Kích thước nến Ngưỡng Chiến lược giao dịch

TICKS CST ES NQ CL
Ngày tạo: 2025-02-21 10:17:23 sửa đổi lần cuối: 2025-02-27 17:17:35
sao chép: 1 Số nhấp chuột: 277
2
tập trung vào
319
Người theo dõi

Biểu tượng giao dịch Kích thước nến Ngưỡng Chiến lược giao dịch Biểu tượng giao dịch Kích thước nến Ngưỡng Chiến lược giao dịch

Tổng quan

Chiến lược này dựa trên kích thước của đường dây để xác định và giao dịch các biến động giá quan trọng. Nó có thể kiểm soát chính xác bằng cách thiết lập ngưỡng điểm cụ thể, cửa sổ thời gian giao dịch và giới hạn số lần giao dịch mỗi ngày. Chiến lược được tối ưu hóa đặc biệt cho thị trường tương lai, có thể bắt được sự thay đổi giá đáng kể trong thời gian có tính thanh khoản cao.

Nguyên tắc chiến lược

Lý luận cốt lõi của chiến lược là tính toán chênh lệch điểm cao và thấp của mỗi đường dây và so sánh với ngưỡng dự kiến. Khi đường dây lớn hơn ngưỡng và trong cửa sổ thời gian giao dịch được chỉ định, hệ thống sẽ kích hoạt tín hiệu giao dịch đa không gian theo hướng của đường dây. Để kiểm soát rủi ro, chiến lược giới hạn chỉ thực hiện một giao dịch mỗi ngày và đặt điểm dừng lỗ.

Lợi thế chiến lược

  1. Kiểm soát điểm chính xác - đảm bảo tính chính xác của giao dịch bằng cách tính toán mức tick
  2. Bộ lọc thời gian - tập trung giao dịch vào những thời điểm hoạt động của thị trường cao nhất
  3. Quản lý rủi ro - thiết lập điểm dừng lỗ rõ ràng để bảo vệ tiền
  4. Kiểm soát tần số giao dịch - hạn chế một giao dịch mỗi ngày để tránh giao dịch quá mức
  5. Ghi chú trực quan - Các sợi dây kích hoạt giao dịch sẽ được hiển thị sáng hơn để dễ dàng phân tích
  6. Khả năng khôi phục - bao gồm các tính năng như lọc ngày và thực hiện thời gian để khôi phục lịch sử dễ dàng

Rủi ro chiến lược

  1. Rủi ro biến động thị trường - có thể gây ra tín hiệu sai trong thời gian biến động mạnh
  2. Rủi ro trượt điểm - giao dịch tốc độ cao trong thị trường tương lai có thể dẫn đến giá giao dịch thực tế lệch
  3. Chi phí cơ hội - giới hạn một giao dịch mỗi ngày có thể bỏ lỡ các cơ hội giao dịch tốt khác
  4. Tùy thuộc thời gian - hiệu quả của chiến lược phụ thuộc rất nhiều vào cửa sổ thời gian giao dịch được chọn

Hướng tối ưu hóa chiến lược

  1. Hạn chế động - Hạn chế kích thước dây chuyền tự động điều chỉnh theo biến động của thị trường
  2. Nhiều chu kỳ thời gian - Tăng tín hiệu xác nhận nhiều chu kỳ
  3. Bộ lọc khối lượng giao dịch - Thêm chỉ số khối lượng giao dịch để hỗ trợ phán đoán
  4. Chỉ số tâm trạng thị trường - đánh giá môi trường thị trường kết hợp với các chỉ số như tỷ lệ biến động
  5. Đơn vị dừng tự điều chỉnh - Đơn vị dừng tự điều chỉnh dựa trên các biến động của thị trường

Tóm tắt

Chiến lược này cung cấp một hệ thống giao dịch đáng tin cậy cho giao dịch tương lai thông qua kiểm soát điểm chính xác và lọc thời gian nghiêm ngặt. Ưu điểm của nó nằm ở độ chính xác và kiểm soát rủi ro khi thực hiện, nhưng cũng đòi hỏi các nhà giao dịch tối ưu hóa các tham số theo các giống cụ thể và tình hình thị trường. Bằng hướng tối ưu hóa được đề xuất, chiến lược có thể nâng cao hơn nữa khả năng thích ứng và ổn định của nó.

Mã nguồn chiến lược
/*backtest
start: 2025-02-15 01:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omnipadme

//@version=5
strategy("Futures Candle Size Strategy (Start Trading on Jan 1, 2025)", overlay=true)

// Input for candle size threshold in ticks
candleSizeThresholdTicks = input.float(25, title="Candle Size Threshold (Ticks)", minval=1)

// Input for take profit and stop loss in ticks
takeProfitTicks = input.float(50, title="Take Profit (Ticks)", minval=1)
stopLossTicks = input.float(40, title="Stop Loss (Ticks)", minval=1)

// Time filter for trading (e.g., 7:00 AM to 9:15 AM CST)
startHour = input.int(7, title="Start Hour (CST)", minval=0, maxval=23)
startMinute = input.int(0, title="Start Minute (CST)", minval=0, maxval=59)
endHour = input.int(9, title="End Hour (CST)", minval=0, maxval=23)
endMinute = input.int(15, title="End Minute (CST)", minval=0, maxval=59)

// Tick size of the instrument (e.g., ES = 0.25)
tickSize = syminfo.mintick

// Convert tick inputs to price levels
candleSizeThreshold = candleSizeThresholdTicks * tickSize
takeProfit = takeProfitTicks * tickSize
stopLoss = stopLossTicks * tickSize

// Time range calculation
startTime = timestamp("GMT-6", year(timenow), month(timenow), dayofmonth(timenow), startHour, startMinute)
endTime = timestamp("GMT-6", year(timenow), month(timenow), dayofmonth(timenow), endHour, endMinute)
inTimeRange = (time >= startTime and time <= endTime)

// Filter to start trading only from January 1, 2025
startTradingDate = timestamp("GMT-6", 2025, 1, 1, 0, 0)
isValidStartDate = time >= startTradingDate

// Calculate the candle size for the current candle
candleSize = math.abs(high - low)

// Track whether a trade has been executed for the day
var hasTradedToday = false
isNewDay = dayofweek != dayofweek[1]  // Detect new day

// Reset `hasTradedToday` at the start of a new day
if isNewDay
    hasTradedToday := false

// Trigger condition for futures trading (only if no trade has been executed today)
triggerCondition = isValidStartDate and inTimeRange and candleSize >= candleSizeThreshold and not hasTradedToday

// Entry logic: If condition is met, enter a trade
if triggerCondition
    hasTradedToday := true  // Mark as traded for the day
    if close > open  // Bullish candle
        strategy.entry("Buy", strategy.long)
    if close < open  // Bearish candle
        strategy.entry("Sell", strategy.short)

// Set take profit and stop loss
strategy.exit("Exit Long", from_entry="Buy", limit=close + takeProfit, stop=close - stopLoss)
strategy.exit("Exit Short", from_entry="Sell", limit=close - takeProfit, stop=close + stopLoss)

// Alerts for triggered condition
if triggerCondition
    alert("Candle size is " + str.tostring(candleSizeThresholdTicks) + " ticks or greater. Trade initiated.", alert.freq_once_per_bar)

// Color the alert candle white
barcolor(triggerCondition ? color.white : na)

// Visual aids for backtesting
bgcolor(isValidStartDate and inTimeRange ? color.new(color.green, 90) : na, title="Time and Date Range Highlight")