Giá trị t là
trail_price
(series int/float) Một đối số tùy chọn. Trailing stop level activation (requires a specific price). Nếu được chỉ định, lệnh trailing stop sẽ được đặt khi đạt đến mức giá đã chỉ định. Tiền offset (trong tick) để xác định giá ban đầu của lệnh trailing stop được chỉ định trong đối số trail_points
(series int/float) Một đối số tùy chọn. Mức kích hoạt dừng theo dõi (lợi nhuận được chỉ định bằng dấu chấm). Nếu được chỉ định, lệnh dừng theo dõi sẽ được đặt khi mức giá được tính toán (lượng lợi nhuận được chỉ định) đạt được. Sự thay đổi (trong dấu chấm) để xác định giá ban đầu của lệnh dừng theo dõi được chỉ định trong đối số trail_offset
(series int/float) Một đối số tùy chọn. Giá dừng theo dõi (được chỉ định bằng dấu chấm). Sự thay đổi trong dấu chấm để xác định giá ban đầu của lệnh dừng theo dõi: X đánh dấu thấp hơn oca_name
comment
Một đối số tùy chọn, hướng dẫn bổ sung cho thứ tự.when
(series bool) Một đối số tùy chọn. Điều kiện của lệnh. Trật tự được đặt nếu điều kiện là alert_message
(dòng chuỗi) Một đối số tùy chọn khi sử dụng {{strategy.order.alert_message}} giữ vị trí trong trường Nó là một lệnh để hủy bỏ / vô hiệu hóa các lệnh đang chờ bằng cách tham chiếu tên của họ, được tạo ra bởi các chức năng: strategy.order, strategy.entry vàstrategy.exit.
strategy.cancel(id, when)
Ví dụ
strategy(title = "simple order cancellation example")
conditionForBuy = open > high[1]
strategy.entry("long", strategy.long, 1, limit = low, when = conditionForBuy) // enter long using limit order at low price of current bar if conditionForBuy is true
strategy.cancel("long", when = not conditionForBuy) // cancel the entry order with name "long" if conditionForBuy is false
Các lập luận
id
(serial string) Một đối số bắt buộc. Trình nhận dạng đơn đặt hàng. Có thể hủy một đơn đặt hàng bằng cách tham chiếu đến mã nhận dạng của nó.when
(series bool) Một đối số tùy chọn. Điều kiện để hủy lệnh với ID xác định. Nếu điều kiện là Nó là một lệnh để hủy bỏ / vô hiệu hóa tất cả các lệnh đang chờ, được tạo ra bởi các chức năng: strategy.order, strategy.entry vàstrategy.exit.
strategy.cancel_all(when)
Ví dụ
strategy(title = "simple all orders cancellation example")
conditionForBuy1 = open > high[1]
strategy.entry("long entry 1", strategy.long, 1, limit = low, when = conditionForBuy1) // enter long by limit if conditionForBuy1 is true
conditionForBuy2 = conditionForBuy1 and open[1] > high[2]
strategy.entry("long entry 2", strategy.long, 1, limit = ta.lowest(low, 2), when = conditionForBuy2) // enter long by limit if conditionForBuy2 is true
conditionForStopTrading = open < ta.lowest(low, 2)
strategy.cancel_all(conditionForStopTrading) // cancel both limit orders if the conditon conditionForStopTrading is true
Các lập luận
when
(series bool) Một đối số tùy chọn. Điều kiện hủy tất cả các lệnh. Nếu điều kiện là đúng, thì tất cả các lệnh đang hoạt động sẽ bị hủy. Giá trị mặc định là Nó là một lệnh đặt lệnh. Nếu một lệnh với cùng một ID đã đang chờ xử lý, có thể sửa đổi lệnh. Nếu không có lệnh với ID được chỉ định, một lệnh mới được đặt. Để vô hiệu hóa lệnh, lệnh strategy.cancel hoặc strategy.cancel_all nên được sử dụng. So với hàm strategy.entry, hàm strategy.order không bị ảnh hưởng bởi kim tự tháp. Nếu cả hai tham số
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Ví dụ
strategy(title = "simple strategy order example")
strategy.order("buy", strategy.long, 1, when = open > high[1]) // buy by market if current open great then previous high
strategy.order("sell", strategy.short, 1, when = open < low[1]) // sell by market if current open less then previous low
Các lập luận
id
(serial string) Một tham số cần thiết. Trình nhận dạng đơn đặt hàng. Có thể hủy hoặc sửa đổi một đơn đặt hàng bằng cách tham chiếu đến mã nhận dạng của nó.direction
(strategy_direction) Một tham số cần thiết. Hướng lệnh: qty
(series int/float) Một tham số tùy chọn. Số lượng hợp đồng/đồng phiếu/lô/đơn vị được giao dịch. Giá trị mặc định là limit
(series int/float) Một tham số tùy chọn. Giá giới hạn của lệnh. Nếu được chỉ định, loại lệnh là stop
(series int/float) Một tham số tùy chọn. Giá dừng của lệnh. Nếu được chỉ định, loại lệnh là oca_name
oca_type
comment
Một tham số tùy chọn.when
(series bool) Một tham số tùy chọn. Điều kiện của lệnh. Lệnh được đặt nếu điều kiện là alert_message
(serial string) Một tham số tùy chọn thay thế vị trí {{strategy.order.alert_message}} khi nó được sử dụng trong hộp thoại Trả về bar_index của mục giao dịch mở.
strategy.opentrades.entry_bar_index(trade_num)
Chờ 10 bar và đóng vị trí.
Ví dụ
strategy("`strategy.opentrades.entry_bar_index` Example")
barsSinceLastEntry() =>
strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na
// Enter a long position if there are no open positions.
if strategy.opentrades == 0
strategy.entry("Long", strategy.long)
// Close the long position after 10 bars.
if barsSinceLastEntry() >= 10
strategy.close("Long")
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch mở. Số giao dịch đầu tiên là 0.Xem thêm
strategy.closedtrades.entry_bar_index
strategy.closedtrades.exit_bar_index
Trả về ID của mục giao dịch mở.
strategy.opentrades.entry_id(trade_num)
Ví dụ
strategy("`strategy.opentrades.entry_id` Example", overlay = true)
// We enter a long position when 14 period sma crosses over 28 period sma.
// We enter a short position when 14 period sma crosses under 28 period sma.
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
// Strategy calls to enter a long or short position when the corresponding condition is met.
if longCondition
strategy.entry("Long entry at bar #" + str.tostring(bar_index), strategy.long)
if shortCondition
strategy.entry("Short entry at bar #" + str.tostring(bar_index), strategy.short)
// Display ID of the latest open position.
if barstate.islastconfirmedhistory
runtime.log("Last opened position is " + strategy.opentrades.entry_id(strategy.opentrades - 1))
Quay lạiTrả về ID của mục giao dịch mở.
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch mở. Số giao dịch đầu tiên là 0.Nhận xétChức năng trả về na nếu trade_num không nằm trong phạm vi: 0 đến strategy.opentrades-1.
Xem thêm
strategy.opentrades.entry_bar_index
strategy.opentrades.entry_time
Trả về giá của mục giao dịch mở.
strategy.opentrades.entry_price(trade_num)
Ví dụ
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest closed trade.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
Tính toán giá trung bình của vị trí mở.
Ví dụ
strategy("strategy.opentrades.entry_price Example 2", pyramiding = 2)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average open position price.
avgOpenPositionPrice() =>
sumOpenPositionPrice = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumOpenPositionPrice += strategy.opentrades.entry_price(tradeNo) * strategy.opentrades.size(tradeNo) / strategy.position_size
result = nz(sumOpenPositionPrice / strategy.opentrades)
plot(avgOpenPositionPrice())
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch mở. Số giao dịch đầu tiên là 0.Xem thêm
strategy.closedtrades.exit_price
Trả về thời gian UNIX của mục nhập giao dịch mở.
strategy.opentrades.entry_time(trade_num)
Ví dụ
strategy("strategy.opentrades.entry_time Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculates duration in milliseconds since the last position was opened.
timeSinceLastEntry()=>
strategy.opentrades > 0 ? (time - strategy.opentrades.entry_time(strategy.opentrades - 1)) : na
plot(timeSinceLastEntry() / 1000 * 60 * 60 * 24, "Days since last entry")
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch mở. Số giao dịch đầu tiên là 0.Xem thêm
strategy.closedtrades.entry_time
strategy.closedtrades.exit_time
Trả về lợi nhuận / lỗ của giao dịch mở.
strategy.opentrades.profit(trade_num)
Trả lại lợi nhuận của giao dịch mở cuối cùng.
Ví dụ
strategy("`strategy.opentrades.profit` Example 1", commission_type = strategy.commission.percent, commission_value = 0.1)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
plot(strategy.opentrades.profit(strategy.opentrades - 1), "Profit of the latest open trade")
Tính toán lợi nhuận của tất cả các vị trí mở.
Ví dụ
strategy("`strategy.opentrades.profit` Example 2", pyramiding = 5)
// Strategy calls to enter 5 long positions every 2 bars.
if bar_index % 2 == 0
strategy.entry("Long", strategy.long, qty = 5)
// Calculate open profit or loss for the open positions.
tradeOpenPL() =>
sumProfit = 0.0
for tradeNo = 0 to strategy.opentrades - 1
sumProfit += strategy.opentrades.profit(tradeNo)
result = sumProfit
plot(tradeOpenPL(), "Profit of all open trades")
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch mở. Số giao dịch đầu tiên là 0.Xem thêm
strategy.closedtrades.profit
strategy.openprofit
strategy.netprofit
strategy.grossprofit
Trả về hướng và số lượng hợp đồng giao dịch trong giao dịch mở. Nếu giá trị > 0, vị trí thị trường là dài. Nếu giá trị < 0, vị trí thị trường là ngắn.
strategy.opentrades.size(trade_num)
Ví dụ
strategy("`strategy.opentrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts in the latest open trade.
plot(strategy.opentrades.size(strategy.opentrades - 1), "Amount of contracts in latest open trade")
Tính toán tỷ lệ lợi nhuận trung bình của các vị trí mở.
Ví dụ
strategy("`strategy.opentrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for all open trades.
profitPct = 0.0
for tradeNo = 0 to strategy.opentrades - 1
entryP = strategy.opentrades.entry_price(tradeNo)
exitP = close
profitPct += (exitP - entryP) / entryP * strategy.opentrades.size(tradeNo) * 100
// Calculate average profit percent for all open trades.
avgProfitPct = nz(profitPct / strategy.opentrades)
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch mở. Số giao dịch đầu tiên là 0.Xem thêm
strategy.closedtrades.size
strategy.position_size
strategy.opentrades
strategy.closedtrades
Trả về bar_index của mục giao dịch đóng.
strategy.closedtrades.entry_bar_index(trade_num)
Ví dụ
strategy("strategy.closedtrades.entry_bar_index Example")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars in a trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Xem thêm
strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_bar_index
Trả về giá thoát của một giao dịch đóng.
strategy.closedtrades.exit_price(trade_num)
Ví dụ
strategy("strategy.closedtrades.exit_price Example 1")
// We are creating a long trade every 5 bars
if bar_index % 5 == 0
strategy.entry("Long", strategy.long)
strategy.close("Long")
// Return the exit price from the latest closed trade.
exitPrice = strategy.closedtrades.exit_price(strategy.closedtrades - 1)
plot(exitPrice, "Long exit price")
Tính toán tỷ lệ phần trăm lợi nhuận trung bình cho tất cả các giao dịch đã hoàn thành.
Ví dụ
strategy("strategy.closedtrades.exit_price Example 2")
// Strategy calls to create single short and long trades.
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch đã hoàn thành. Số giao dịch đầu tiên là 0.Xem thêm
strategy.closedtrades.entry_price
Trả lại bar_index của lối ra thương mại đóng.
strategy.closedtrades.exit_bar_index(trade_num)
Ví dụ
strategy("strategy.closedtrades.exit_bar_index Example 1")
// Strategy calls to place a single short trade. We enter the trade at the first bar and exit the trade at 10 bars before the last chart bar.
if bar_index == 0
strategy.entry("Short", strategy.short)
if bar_index == last_bar_index - 10
strategy.close("Short")
// Calculate the amount of bars since the last closed trade.
barsSinceClosed = strategy.closedtrades > 0 ? bar_index - strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) : na
plot(barsSinceClosed, "Bars since last closed trade")
Tính toán số lượng trung bình các dòng K cho mỗi giao dịch.
Ví dụ
strategy("strategy.closedtrades.exit_bar_index Example 2")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Function that calculates the average amount of bars per trade.
avgBarsPerTrade() =>
sumBarsPerTrade = 0
for tradeNo = 0 to strategy.closedtrades - 1
// Loop through all closed trades, starting with the oldest.
sumBarsPerTrade += strategy.closedtrades.exit_bar_index(tradeNo) - strategy.closedtrades.entry_bar_index(tradeNo) + 1
result = nz(sumBarsPerTrade / strategy.closedtrades)
plot(avgBarsPerTrade())
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Xem thêm
bar_index
Trả về ID của mục giao dịch đã đóng.
strategy.closedtrades.entry_id(trade_num)
Ví dụ
strategy("strategy.closedtrades.entry_id Example", overlay = true)
var isOpen = false
var openIndex = -1
// Enter a short position and close at the previous to last bar.
if not barstate.ishistory and not isOpen
strategy.entry("Short at bar #" + str.tostring(bar_index), strategy.short)
isOpen := true
openIndex := bar_index
if openIndex != -1 and bar_index > openIndex + 100
strategy.close_all()
// Display ID of the last entry position.
if barstate.islastconfirmedhistory
runtime.log("Last Entry ID is: " + strategy.closedtrades.entry_id(strategy.closedtrades - 1))
Quay lạiTrả về ID của mục giao dịch đã đóng.
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Nhận xétChức năng trả về na nếu trade_num không nằm trong phạm vi: 0 đến strategy.closedtrades-1.
Xem thêm
strategy.closedtrades.entry_bar_index
strategy.closedtrades.entry_time
Trả về giá của mục giao dịch đóng.
strategy.closedtrades.entry_price(trade_num)
Ví dụ
strategy("strategy.closedtrades.entry_price Example 1")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Return the entry price for the latest entry.
entryPrice = strategy.closedtrades.entry_price(strategy.closedtrades - 1)
plot(entryPrice, "Long entry price")
Tính toán tỷ lệ phần trăm lợi nhuận trung bình cho tất cả các giao dịch đã hoàn thành.
Ví dụ
strategy("strategy.closedtrades.entry_price Example 2")
// Strategy calls to create single short and long trades
if bar_index == last_bar_index - 15
strategy.entry("Long Entry", strategy.long)
else if bar_index == last_bar_index - 10
strategy.close("Long Entry")
strategy.entry("Short", strategy.short)
else if bar_index == last_bar_index - 5
strategy.close("Short")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Xem thêm
strategy.closedtrades.exit_price
strategy.closedtrades.size
strategy.closedtrades
Trả về thời gian UNIX của mục giao dịch đóng.
strategy.closedtrades.entry_time(trade_num)
Ví dụ
strategy("strategy.closedtrades.entry_time Example", overlay = true)
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points
if barstate.islastconfirmedhistory
runtime.log(str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Xem thêm
strategy.opentrades.entry_time
strategy.closedtrades.exit_time
time
Trả về lợi nhuận / lỗ của giao dịch đóng cửa. Loss được thể hiện dưới dạng giá trị âm.
strategy.closedtrades.profit(trade_num)
Ví dụ
strategy("`strategy.closedtrades.profit` Example")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate average gross profit by adding the difference between gross profit and commission.
avgGrossProfit() =>
sumGrossProfit = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
sumGrossProfit += strategy.closedtrades.profit(tradeNo) - strategy.closedtrades.commission(tradeNo)
result = nz(sumGrossProfit / strategy.closedtrades)
plot(avgGrossProfit(), "Average gross profit")
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Xem thêm
strategy.opentrades.profit
strategy.closedtrades.commission
Trả về hướng và số lượng hợp đồng giao dịch trong giao dịch khép kín. Nếu giá trị là > 0, vị trí thị trường là dài. Nếu giá trị là < 0, vị trí thị trường là ngắn.
strategy.closedtrades.size(trade_num)
Ví dụ
strategy("`strategy.closedtrades.size` Example 1")
// We calculate the max amt of shares we can buy.
amtShares = math.floor(strategy.equity / close)
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars
if bar_index % 15 == 0
strategy.entry("Long", strategy.long, qty = amtShares)
if bar_index % 20 == 0
strategy.close("Long")
// Plot the number of contracts traded in the last closed trade.
plot(strategy.closedtrades.size(strategy.closedtrades - 1), "Number of contracts traded")
Tính toán tỷ lệ phần trăm lợi nhuận trung bình trên các giao dịch đóng cửa.
Ví dụ
strategy("`strategy.closedtrades.size` Example 2")
// Strategy calls to enter long trades every 15 bars and exit long trades every 20 bars.
if bar_index % 15 == 0
strategy.entry("Long", strategy.long)
if bar_index % 20 == 0
strategy.close("Long")
// Calculate profit for both closed trades.
profitPct = 0.0
for tradeNo = 0 to strategy.closedtrades - 1
entryP = strategy.closedtrades.entry_price(tradeNo)
exitP = strategy.closedtrades.exit_price(tradeNo)
profitPct += (exitP - entryP) / entryP * strategy.closedtrades.size(tradeNo) * 100
// Calculate average profit percent for both closed trades.
avgProfitPct = nz(profitPct / strategy.closedtrades)
plot(avgProfitPct)
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Xem thêm
strategy.opentrades.size
strategy.position_size
strategy.closedtrades
strategy.opentrades
Trả về thời gian UNIX của giao dịch đóng cửa.
strategy.closedtrades.exit_time(trade_num)
Ví dụ
strategy("strategy.closedtrades.exit_time Example 1")
// Enter long trades on three rising bars; exit on two falling bars.
if ta.rising(close, 3)
strategy.entry("Long", strategy.long)
if ta.falling(close, 2)
strategy.close("Long")
// Calculate the average trade duration.
avgTradeDuration() =>
sumTradeDuration = 0
for i = 0 to strategy.closedtrades - 1
sumTradeDuration += strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i)
result = nz(sumTradeDuration / strategy.closedtrades)
// Display average duration converted to seconds and formatted using 2 decimal points.
if barstate.islastconfirmedhistory
label.new(bar_index, high, str.tostring(avgTradeDuration() / 1000, "#.##") + " seconds")
Mở lại các giao dịch sau X giây.
Ví dụ
strategy("strategy.closedtrades.exit_time Example 2")
// Strategy calls to emulate a single long trade at the first bar.
if bar_index == 0
strategy.entry("Long", strategy.long)
reopenPositionAfter(timeSec) =>
if strategy.closedtrades > 0
if time - strategy.closedtrades.exit_time(strategy.closedtrades - 1) >= timeSec * 1000
strategy.entry("Long", strategy.long)
// Reopen last closed position after 120 sec.
reopenPositionAfter(120)
if ta.change(strategy.opentrades)
strategy.exit("Long", stop = low * 0.9, profit = high * 2.5)
Các lập luận
trade_num
(series int) Số giao dịch của giao dịch được đóng.Xem thêm
strategy.closedtrades.entry_time
Chức năng này có thể được sử dụng để chỉ định hướng thị trường mà chức năng strategy.entry được phép mở các vị trí.
strategy.risk.allow_entry_in(value)
Ví dụ
strategy("strategy.risk.allow_entry_in")
strategy.risk.allow_entry_in(strategy.direction.long)
strategy.entry("Long", strategy.long, when = open > close)
// Instead of opening a short position with 10 contracts, this command will close long entries.
strategy.entry("Short", strategy.short, when = open < close, qty = 10)
Các lập luận
value
(dòng chuỗi đơn giản) Hướng dẫn được phép.strategy.direction.all
, strategy.direction.long
, strategy.direction.short
Mục đích của quy tắc này là xác định kích thước tối đa của một vị trí thị trường.strategy.entry
. Số lượng
strategy.risk.max_position_size(contracts)
Ví dụ
strategy("risk.max_position_size Demo", default_qty_value = 100)
strategy.risk.max_position_size(10)
strategy.entry("buy", strategy.long, when = open > close)
plot(strategy.position_size) // max plot value will be 10
Các lập luận
contracts
(simple int/float) Một thông số cần thiết. Số lượng hợp đồng/đồng phiếu/lô/đơn vị trong một vị trí.Giá trị tuyệt đối củanumber
lànumber
nếunumber
>= 0, hoặc -number
otherwise.
math.abs(number)
Quay lạiGiá trị tuyệt đối củanumber
.
Chức năng acos trả về arccosine (trong radian) của số như là cos ((acos ((y)) = y cho y trong phạm vi [-1, 1].
math.acos(angle)
Quay lạiVàng cosinus của một giá trị; góc trả về nằm trong phạm vi [0, Pi], hoặc na nếu y nằm ngoài phạm vi [-1, 1].
Trả về một giá trị giả ngẫu nhiên. Chức năng sẽ tạo ra một chuỗi giá trị khác nhau cho mỗi lần thực thi kịch bản. Sử dụng cùng một giá trị cho đối số seed tùy chọn sẽ tạo ra một chuỗi lặp lại.
math.random(min, max, seed)
Quay lạiMột giá trị ngẫu nhiên.
Các lập luận
min
(series int/float) Ranh giới dưới của phạm vi các giá trị ngẫu nhiên. Giá trị không được bao gồm trong phạm vi. mặc định là 0.max
(series int/float) Biên giới trên của phạm vi các giá trị ngẫu nhiên. Giá trị không được bao gồm trong phạm vi. mặc định là 1.seed
(input int) Đối số tùy chọn. Khi cùng một hạt giống được sử dụng, cho phép các cuộc gọi liên tiếp đến hàm để tạo ra một tập hợp các giá trị có thể lặp lại.Chức năng asin trả về arcsinus (trong radian) của số như sin ((asin ((y)) = y cho y trong phạm vi [-1, 1].
math.asin(angle)
Quay lạiArcsinus của một giá trị; góc trả về nằm trong phạm vi [-Pi/2, Pi/2], hoặc na nếu y nằm ngoài phạm vi [-1, 1].
Chức năng atan trả về arctangent (trong radian) của số như tan ((atan ((y)) = y cho bất kỳ y nào.
math.atan(angle)
Quay lạiVòng chạm cung của một giá trị; góc được trả lại nằm trong phạm vi [-Pi/2, Pi/2].
Chức năng trần nhà trả về số nguyên nhỏ nhất (gần nhất với vô hạn âm) lớn hơn hoặc bằng đối số.
math.ceil(number)
Quay lạiSố nguyên nhỏ nhất nhỏ hơn hoặc bằng với số được đưa ra.
Xem thêm
math.floor
math.round
Chức năng cos trả về cosinus tam giác của một góc.
math.cos(angle)
Quay lạiTrigonometric cosine của một góc.
Các lập luận
angle
(series int/float) góc, trong radian.Chức năng exp củanumber
được nâng lên sức mạnh củanumber
, trong đó e là số Euler.
math.exp(number)
Quay lạiMột giá trị đại diện cho e nâng lênnumber
.
Xem thêm
math.pow
math.floor(number)
Quay lạiSố nguyên lớn nhất nhỏ hơn hoặc bằng số được đưa ra.
Xem thêm
math.ceil
math.round
Logarithm tự nhiên của bất kỳnumber
> 0 là y duy nhất như vậy mà e ^ y =number
.
math.log(number)
Quay lạiLogarit tự nhiên củanumber
.
Xem thêm
math.log10
Logarithm chung (hoặc cơ sở 10) củanumber
là công suất mà 10 phải được nâng lên để có đượcnumber
. 10 ^ y =number
.
math.log10(number)
Quay lạiLogarithm căn 10 củanumber
.
Xem thêm
math.log
Chức năng toán học.
math.pow(base, exponent)
Ví dụ
// math.pow
plot(math.pow(close, 2))
Quay lại
base
được nâng lên sức mạnh củaexponent
Nếu.base
là một chuỗi, nó được tính theo phần tử.
Các lập luận
base
(series int/float) Xác định cơ sở được sử dụng.exponent
(series int/float) Xác định đại số.Xem thêm
math.sqrt
math.exp
Dấu hiệu (signum) của
math.sign(number)
Quay lạiDấu hiệu của cuộc tranh luận.
Chức năng sin trả về sinus tam giác của một góc.
math.sin(angle)
Quay lạiTrigonometric sinus của một góc.
Các lập luận
angle
(series int/float) góc, trong radian.gốc vuông của bất kỳnumber
>= 0 là y duy nhất >= 0 như vậy mà y ^ 2 =number
.
math.sqrt(number)
Quay lạiNguồn vuông củanumber
.
Xem thêm
math.pow
Chức năng tan trả về đường tiếp xúc tam giác của một góc.
math.tan(angle)
Quay lạiChiều chạm tam giác của một góc.
Các lập luận
angle
(series int/float) góc, trong radian.Trả về giá trị củanumber
tròn đến số nguyên gần nhất, với mối quan hệ tròn lên.precision
tham số được sử dụng, trả về một giá trị nổi tròn đến số lượng vị trí thập phân đó.
math.round(number)
math.round(number, precision)
Quay lạiGiá trị củanumber
được làm tròn đến số nguyên gần nhất, hoặc theo độ chính xác.
Các lập luận
number
(series int/float) Giá trị được làm tròn.precision
(series int) Đối số tùy chọn.number
sẽ được làm tròn. Khi không có lập luận được cung cấp, làm tròn là số nguyên gần nhất.Nhận xétLưu ý rằng cho các giá trị
Xem thêm
math.ceil
math.floor
Trả về giá trị lớn nhất trong số nhiều giá trị.
math.max(number0, number1, ...)
Ví dụ
// math.max
plot(math.max(close, open))
plot(math.max(close, math.max(open, 42)))
Quay lạiGiá trị lớn nhất trong số nhiều giá trị được đưa ra.
Xem thêm
math.min
Trả về giá trị nhỏ nhất trong số nhiều giá trị.
math.min(number0, number1, ...)
Ví dụ
// math.min
plot(math.min(close, open))
plot(math.min(close, math.min(open, 42)))
Quay lạiGiá trị nhỏ nhất trong số nhiều giá trị được đưa ra.
Xem thêm
math.max
Tính toán trung bình của tất cả các chuỗi được đưa ra (theo các yếu tố).
math.avg(number0, number1, ...)
Quay lại Average.
Xem thêm
math.sum
ta.cum
ta.sma
Trả về giá trị tròn xuống biểu tượng mintick, tức là giá trị gần nhất có thể được chia cho syminfo.mintick, không có phần còn lại, với các mối quan hệ tròn lên.
math.round_to_mintick(number)
Quay lạiCácnumber
tròn để đánh dấu chính xác.
Các lập luận
number
(series int/float) Giá trị được làm tròn.Xem thêm
math.ceil
math.floor
Chức năng tổng trả về tổng trượt của các giá trị y cuối cùng của x.
math.sum(source, length)
Quay lạiTổng sốsource
cholength
Bắt lại.
Các lập luận
source
(series int/float) Dòng các giá trị để xử lý.length
(series int) Số thanh (chiều dài).Xem thêm
ta.cum
for
Trả về một góc tương đương khoảng bằng độ từ một góc đo bằng radian.
math.todegrees(radians)
Quay lạiGiá trị góc bằng độ.
Các lập luận
radians
(series int/float) góc trong radian.Trả về một góc tương đương khoảng trong radian từ một góc đo bằng độ.
math.toradians(degrees)
Quay lạiGiá trị góc trong radian.
Các lập luận
degrees
(series int/float) góc bằng độ.Đối với một chuỗi nhất định thay thế các giá trị NaN bằng giá trị không phải NaN gần nhất trước đó.
fixnan(source)
Quay lạiSeries không có lỗ hổng.
Các lập luận
source
(dòng int/float/bool/color)Xem thêm
na
nz
Thay thế các giá trị NaN bằng số không (hoặc giá trị được đưa ra) trong một chuỗi.
nz(source, replacement)
nz(source)
Ví dụ
// nz
plot(nz(ta.sma(close, 100)))
Quay lạiGiá trị củasource
nếu khôngna
Nếu giá trị củasource
làna
, trả về không, hoặcreplacement
một lập luận khi một được sử dụng.
Các lập luận
source
(dòng int/float/bool/color) Dòng các giá trị để xử lý.replacement
(series int/float/bool/color) Giá trị thay thế tất cả các giá trị source
series.Xem thêm
na
fixnan
Giá trị thử nghiệm nếu nó là NaN.
na(x)
Quay lạiđúng nếu x không phải là một số hợp lệ (x là NaN), nếu không sai.
Xem thêm
fixnan
nz
Trả ra hoặc cắt giảm giá trị float thành int.
int(x)
Quay lạiGiá trị của đối số sau khi casting vào int.
Xem thêm
float
bool
color
string
Không thể trôi nổi.
float(x)
Quay lạiGiá trị của đối số sau khi đúc lên float.
Xem thêm
int
bool
color
string
Khởi động một sự kiện cảnh báo khi được gọi trong thanh thời gian thực và cảnh báo dựa trên các sự kiện chức năng cảnh báo đã được tạo trước đó cho chỉ số hoặc chiến lược thông qua hộp thoại
alert(message, freq)
Ví dụ
// alert() example
ma = ta.sma(close, 14)
xUp = ta.crossover(close, ma)
if xUp
// Trigger the alert the first time a cross occurs during the real-time bar.
alert("Price (" + str.tostring(close) + ") crossed over MA (" + str.tostring(ma) + ").", alert.freq_once_per_bar)
plot(ma)
plotchar(xUp, "xUp", "▲", location.top, size = size.tiny)
Các lập luận
message
Thông điệp được gửi khi báo động được kích hoạt.freq
(dòng vào) Tần số kích hoạt. Các giá trị có thể là: alert.freq_all (tất cả các cuộc gọi chức năng kích hoạt cảnh báo), alert.freq_once_per_bar (cuộc gọi chức năng đầu tiên trong thanh kích hoạt cảnh báo), alert.freq_once_per_bar_close (cuộc gọi chức năng kích hoạt cảnh báo chỉ khi nó xảy ra trong lần lặp kịch bản cuối cùng của thanh thời gian thực, khi đóng). mặc định là alert.freq_once_per_bar.Nhận xétTrung tâm trợ giúp giải thích cách tạo cảnh báo như vậy.
Trái ngược với cảnh báo, các cuộc gọi cảnh báo KHÔNG được tính là một đoạn thêm.
Các cuộc gọi chức năng có thể được đặt ở cả phạm vi toàn cầu và địa phương.
Các cuộc gọi chức năng không hiển thị bất cứ điều gì trên biểu đồ.
Đối số
Xem thêm
alertcondition
Tạo điều kiện cảnh báo, có sẵn trong hộp thoại Tạo cảnh báo. Xin lưu ý, rằng alertcondition không tạo cảnh báo, nó chỉ cung cấp cho bạn nhiều tùy chọn hơn trong hộp thoại Tạo cảnh báo. Ngoài ra, hiệu ứng alertcondition không hiển thị trên biểu đồ.
alertcondition(condition, title, message)
Ví dụ
// alertcondition
alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')
Các lập luận
condition
(series bool) Dòng các giá trị boolean được sử dụng cho cảnh báo. True nghĩa là cảnh báo lửa, false - không cảnh báo.title
(const string) Tên của điều kiện cảnh báo.message
(const string) Thông báo để hiển thị khi báo động bắn.Nhận xétVui lòng lưu ý rằng trong Pine Script v4/v5 một alertcondition call tạo ra một plot bổ sung.
Xem thêm
alert
Để tương thích vớiTrading View
mã chiến lược, nó không thực sự cần phải được gọi.
Xem thêm
strategy
Chức năng thời gian trả về thời gian UNIX của thanh hiện tại cho khung thời gian và phiên đã chỉ định hoặc NaN nếu thời điểm không có phiên.session
arguments.
time(timeframe, session, timezone)
time(timeframe, session)
time(timeframe)
Ví dụ
timeinrange(res, sess) => not na(time(res, sess, "America/New_York")) ? 1 : 0
plot(timeinrange("1", "1300-1400"), color=color.red)
// This plots 1.0 at every start of 10 minute bar on a 1 minute chart:
newbar(res) => ta.change(time(res)) == 0 ? 0 : 1
plot(newbar("10"))
Khi thiết lập một phiên, bạn có thể chỉ định không chỉ giờ và phút mà còn là ngày trong tuần sẽ được bao gồm trong phiên đó.
Nếu ngày không được chỉ định, phiên họp được coi là đã được thiết lập từ Chủ nhật (1) đến thứ Bảy (7), tức là
Ví dụ
// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Một.session
argument có thể bao gồm một số phiên khác nhau, được tách bằng dấu phẩy. Ví dụ, kịch bản sau sẽ làm nổi bật các thanh từ 10:00 đến 11:00 và từ 14:00 đến 15:00 (chỉ trong ngày làm việc):
Ví dụ
// Time
t1 = time(timeframe.period, "1000-1100,1400-1500:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Quay lạiThời gian UNIX.
Các lập luận
timeframe
(dây đơn giản) khung thời gian. Dây trống được giải thích là khung thời gian hiện tại của biểu đồ.session
timezone
(dây đơn giản) Khu vực giờ củasession
argument. Nó chỉ có thể được sử dụng khi Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970.
year(time)
year(time, timezone)
Quay lạiNăm (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) UNIX thời gian trong mili giây.timezone
Một lập luận tùy chọn.Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970. Lưu ý rằng hàm này trả về năm dựa trên thời gian các thanh mở. Đối với các phiên qua đêm (ví dụ EURUSD, nơi phiên thứ Hai bắt đầu vào Chủ nhật, 17:00 UTC-4) giá trị này có thể thấp hơn 1 so với năm ngày giao dịch.
Xem thêm
year
time
month
dayofmonth
dayofweek
hour
minute
second
month(time)
month(time, timezone)
Quay lạiTháng (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) UNIX thời gian trong mili giây.timezone
Một lập luận tùy chọn.Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970. Lưu ý rằng hàm này trả về tháng dựa trên thời gian các thanh mở. Đối với các phiên qua đêm (ví dụ EURUSD, nơi phiên thứ Hai bắt đầu vào Chủ nhật, 17:00 UTC-4) giá trị này có thể thấp hơn 1 so với tháng của ngày giao dịch.
Xem thêm
month
time
year
dayofmonth
dayofweek
hour
minute
second
hour(time)
hour(time, timezone)
Quay lạiGiờ (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) UNIX thời gian trong mili giây.timezone
Một tham số tùy chọn.Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970.
Xem thêm
hour
time
year
month
dayofmonth
dayofweek
minute
second
minute(time)
minute(time, timezone)
Quay lạiphút (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) UNIX thời gian trong mili giây.timezone
Một lập luận tùy chọn.Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970.
Xem thêm
minute
time
year
month
dayofmonth
dayofweek
hour
second
second(time)
second(time, timezone)
Quay lạiThứ hai (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) UNIX thời gian trong mili giây.timezone
Một tham số tùy chọn.Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970.
Xem thêm
second
time
year
month
dayofmonth
dayofweek
hour
minute
weekofyear(time)
weekofyear(time, timezone)
Quay lạiTuần của năm (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) UNIX thời gian trong mili giây.timezone
Một tham số tùy chọn.Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970. Lưu ý rằng hàm này trả về tuần dựa trên thời gian các thanh mở. Đối với các phiên qua đêm (ví dụ EURUSD, nơi phiên thứ Hai bắt đầu vào Chủ nhật, 17:00) giá trị này có thể thấp hơn 1 so với tuần của ngày giao dịch.
Xem thêm
weekofyear
time
year
month
dayofmonth
dayofweek
hour
minute
second
dayofweek(time)
dayofweek(time, timezone)
Quay lạiNgày trong tuần (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) UNIX thời gian trong mili giây.timezone
Một tham số tùy chọn.Nhận xétLưu ý rằng hàm này trả về ngày dựa trên thời gian các thanh mở. Đối với các phiên qua đêm (ví dụ EURUSD, nơi phiên thứ Hai bắt đầu vào Chủ nhật, 17:00) giá trị này có thể thấp hơn 1 so với ngày giao dịch. Thời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970.
Xem thêm
time
dayofmonth
dayofmonth(time)
dayofmonth(time, timezone)
Quay lạiNgày của tháng (trong múi giờ trao đổi) cho thời gian UNIX được cung cấp.
Các lập luận
time
(series int) thời gian Unix trong mili giây.timezone
Một tham số tùy chọn.Nhận xétThời gian UNIX là số millisecond đã trôi qua kể từ 00:00:00 UTC, ngày 1 tháng 1 năm 1970. Lưu ý rằng hàm này trả về ngày dựa trên thời gian các thanh mở. Đối với các phiên qua đêm (ví dụ EURUSD, nơi phiên thứ Hai bắt đầu vào Chủ nhật, 17:00 UTC-4) giá trị này có thể thấp hơn 1 so với ngày giao dịch.
Xem thêm
time
dayofweek
Chức năng timestamp trả về thời gian UNIX của ngày và thời gian được chỉ định.
timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)
Ví dụ
// timestamp
plot(timestamp(2016, 01, 19, 09, 30), linewidth=3, color=color.green)
plot(timestamp(syminfo.timezone, 2016, 01, 19, 09, 30), color=color.blue)
plot(timestamp(2016, 01, 19, 09, 30), color=color.yellow)
plot(timestamp("GMT+6", 2016, 01, 19, 09, 30))
plot(timestamp(2019, 06, 19, 09, 30, 15), color=color.lime)
plot(timestamp("GMT+3", 2019, 06, 19, 09, 30, 15), color=color.fuchsia)
plot(timestamp("Feb 01 2020 22:10:05"))
plot(timestamp("2011-10-10T14:48:00"))
Người ăn xinTại sao chiến lược quảng trường sao chép chiến lược của Pine không thể thực hiện
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, chúng ta kiểm tra xem.
Người ăn xinTheo dõi xu hướng được tối ưu hóa của Zhang Giang
Những nhà phát minh định lượng - những giấc mơ nhỏXin chào, tôi muốn hỏi chiến lược cụ thể của bạn là gì?