Der t-Wert ist
trail_price
(series int/float) Ein optionales Argument. Trailing stop-Aktivierungsniveau (erfordert einen bestimmten Preis). Wenn dies angegeben ist, wird ein Trailing stop-Auftrag platziert, wenn das angegebene Preisniveau erreicht wird. Der Offset (in Ticks), um den Anfangspreis des Trailing stop-Auftrags zu bestimmen, wird im Argument trail_points
(series int/float) Ein optionales Argument. Trailing stop Aktivierungsniveau (in Tick angegeben Gewinn). Wenn dies angegeben ist, wird ein Trailing stop-Order platziert, wenn das berechnete Preisniveau (gegebene Gewinnmenge) erreicht wird. Der Offset (in Tick) zur Bestimmung des Anfangspreises des Trailing stop-Orders wird im Argument trail_offset
(serie int/float) Ein optionales Argument. Trailing-Stop-Preis (in Ticks angegeben). Der Offset in Ticks, um den Anfangspreis der Trailing-Stop-Order zu bestimmen: X tickt niedriger als oca_name
comment
(Serienreihe) Ein optionales Argument. Zusätzliche Anweisungen für die Reihenfolge.when
(serie bool) Ein optionaler Argument. Bedingung der Bestellung. Die Bestellung wird platziert, wenn die Bedingung alert_message
(Serienfolge) Ein optionales Argument, wenn der Platzhalter {{strategy.order.alert_message}} im Feld Es handelt sich um einen Befehl zur Stornierung/Deaktivierung von ausstehenden Aufträgen, indem auf deren Namen verwiesen wird, die durch die Funktionen: strategy.order, strategy.entry undstrategy.exit.
strategy.cancel(id, when)
Beispiel
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
Argumente
id
(Seriezeichenfolge) Ein erforderliches Argument. Die Bestellkennung. Es ist möglich, eine Bestellung zu stornieren, indem man auf ihre Kennung verweist.when
(series bool) Ein optionaler Argument. Bedingung zur Stornierung einer Bestellung mit angegebener ID. Wenn die Bedingung Es handelt sich um einen Befehl zur Stornierung/Deaktivierung aller ausstehenden Aufträge, die durch die Funktionen: strategy.order, strategy.entry undstrategy.exit.
strategy.cancel_all(when)
Beispiel
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
Argumente
when
(series bool) Ein optionaler Argument. Bedingung, alle Aufträge zu stornieren. Wenn die Bedingung wahr ist, werden alle aktiven Aufträge storniert. Der Standardwert ist Es handelt sich um einen Befehl, um eine Bestellung zu platzieren. Wenn eine Bestellung mit der gleichen ID bereits aussteht, ist es möglich, die Bestellung zu ändern. Wenn keine Bestellung mit der angegebenen ID vorliegt, wird eine neue Bestellung platziert. Um die Bestellung zu deaktivieren, sollte der Befehl strategy.cancel oder strategy.cancel_all verwendet werden. Im Vergleich zur Funktion strategy.entry wird die Funktion strategy.order nicht durch Pyramiden beeinflusst. Wenn sowohl die
strategy.order(id, direction, qty, limit, stop, oca_name, oca_type, comment, when, alert_message)
Beispiel
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
Argumente
id
(Serie-String) Ein erforderlicher Parameter. Die Auftrags-Identifikator. Es ist möglich, eine Bestellung zu stornieren oder zu ändern, indem man sich auf ihre Identifikator.direction
(Strategie_Richtung) Ein erforderlicher Parameter. Orderrichtung: qty
(series int/float) Ein optioner Parameter. Anzahl der zu handelnden Verträge/Aktien/Lotten/Einheiten. Der Standardwert ist limit
(series int/float) Ein optioner Parameter. Grenzpreis der Bestellung. Wenn er angegeben ist, ist der Bestelltyp entweder stop
(series int/float) Ein optionaler Parameter. Stop-Preis des Auftrags. Wenn er angegeben ist, ist der Auftragstyp entweder oca_name
oca_type
comment
(Serienreihe) Ein optionale Parameter. Zusätzliche Hinweise zur Reihenfolge.when
(series bool) Ein optioner Parameter. Bedingung der Bestellung. Die Bestellung wird platziert, wenn die Bedingung alert_message
(Serienfolge) Ein optioner Parameter, der den Platzhalter {{strategy.order.alert_message}} ersetzt, wenn er im Dialogfeld Gibt den Bar_index des Eintrags des offenen Handels zurück.
strategy.opentrades.entry_bar_index(trade_num)
Warten Sie auf 10 Bar und schließen Sie die Position.
Beispiel
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")
Argumente
trade_num
(Serie int) Die Handelsnummer des offenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.entry_bar_index
strategy.closedtrades.exit_bar_index
Gibt die ID des Eintrags des offenen Handels zurück.
strategy.opentrades.entry_id(trade_num)
Beispiel
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))
RückkehrGibt die ID des Eintrags des offenen Handels zurück.
Argumente
trade_num
(Serie int) Die Handelsnummer des offenen Handels. Die Nummer des ersten Handels ist Null.AnmerkungenDie Funktion gibt na zurück, wenn trade_num nicht im Bereich liegt: 0 bis strategy.opentrades-1.
Siehe auch
strategy.opentrades.entry_bar_index
strategy.opentrades.entry_time
Gibt den Preis des Eintrags des offenen Handels zurück.
strategy.opentrades.entry_price(trade_num)
Beispiel
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")
Berechnen Sie den durchschnittlichen Preis der offenen Position.
Beispiel
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())
Argumente
trade_num
(Serie int) Die Handelsnummer des offenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.exit_price
Gibt die UNIX-Zeit des Eintrags des offenen Handels zurück.
strategy.opentrades.entry_time(trade_num)
Beispiel
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")
Argumente
trade_num
(Serie int) Die Handelsnummer des offenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.entry_time
strategy.closedtrades.exit_time
Er gibt den Gewinn/Verlust des offenen Handels an. Verluste werden als negative Werte ausgedrückt.
strategy.opentrades.profit(trade_num)
Rückgabe des Gewinns des letzten geöffneten Handels.
Beispiel
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")
Berechnen Sie den Gewinn aller offenen Positionen.
Beispiel
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")
Argumente
trade_num
(Serie int) Die Handelsnummer des offenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.profit
strategy.openprofit
strategy.netprofit
strategy.grossprofit
Gibt die Richtung und die Anzahl der im offenen Handel gehandelten Verträge zurück. Wenn der Wert > 0 beträgt, war die Marktposition lang. Wenn der Wert < 0, war die Marktposition kurz.
strategy.opentrades.size(trade_num)
Beispiel
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")
Berechnen Sie den durchschnittlichen Gewinnanteil der offenen Positionen.
Beispiel
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)
Argumente
trade_num
(Serie int) Die Handelsnummer des offenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.size
strategy.position_size
strategy.opentrades
strategy.closedtrades
Gibt den Bar_Index des geschlossenen Handels zurück.
strategy.closedtrades.entry_bar_index(trade_num)
Beispiel
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())
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.exit_bar_index
strategy.opentrades.entry_bar_index
Gibt den Ausgangspreis eines geschlossenen Handels zurück.
strategy.closedtrades.exit_price(trade_num)
Beispiel
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")
Berechnen Sie den durchschnittlichen Gewinnprozentsatz für alle geschlossenen Geschäfte.
Beispiel
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)
Argumente
trade_num
(Serie int) Transaktionsnummer der abgeschlossenen Transaktion. Die Nummer der ersten Transaktion ist Null.Siehe auch
strategy.closedtrades.entry_price
Gibt den Bar_index des geschlossenen Handelsausgangs zurück.
strategy.closedtrades.exit_bar_index(trade_num)
Beispiel
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")
Berechnen Sie die durchschnittliche Anzahl von K-Linien pro Transaktion.
Beispiel
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())
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
bar_index
Gibt die ID des geschlossenen Handels-Eintrags zurück.
strategy.closedtrades.entry_id(trade_num)
Beispiel
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))
RückkehrGibt die ID des geschlossenen Handels-Eintrags zurück.
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.AnmerkungenDie Funktion gibt na zurück, wenn trade_num nicht im Bereich liegt: 0 bis strategy.closedtrades-1.
Siehe auch
strategy.closedtrades.entry_bar_index
strategy.closedtrades.entry_time
Gibt den Preis für den geschlossenen Handel zurück.
strategy.closedtrades.entry_price(trade_num)
Beispiel
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")
Berechnen Sie den durchschnittlichen Gewinnprozentsatz für alle geschlossenen Geschäfte.
Beispiel
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)
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.exit_price
strategy.closedtrades.size
strategy.closedtrades
Gibt die UNIX-Zeit des geschlossenen Handels-Eintrags zurück.
strategy.closedtrades.entry_time(trade_num)
Beispiel
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")
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.opentrades.entry_time
strategy.closedtrades.exit_time
time
Er gibt den Gewinn/Verlust des geschlossenen Handels zurück.
strategy.closedtrades.profit(trade_num)
Beispiel
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")
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.opentrades.profit
strategy.closedtrades.commission
Gibt die Richtung und die Anzahl der im geschlossenen Handel gehandelten Verträge zurück. Wenn der Wert > 0 ist, war die Marktposition lang. Wenn der Wert < 0 ist, war die Marktposition kurz.
strategy.closedtrades.size(trade_num)
Beispiel
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")
Berechnen Sie den durchschnittlichen Gewinnanteil bei geschlossenen Geschäften.
Beispiel
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)
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.opentrades.size
strategy.position_size
strategy.closedtrades
strategy.opentrades
Gibt die UNIX-Zeit des geschlossenen Handels zurück.
strategy.closedtrades.exit_time(trade_num)
Beispiel
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")
Nach X Sekunden geschlossene Trades neu eröffnen.
Beispiel
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)
Argumente
trade_num
(Serie int) Die Handelsnummer des geschlossenen Handels. Die Nummer des ersten Handels ist Null.Siehe auch
strategy.closedtrades.entry_time
Diese Funktion kann verwendet werden, um festzulegen, in welcher Marktrichtung die Strategie.Eintrittsfunktion Positionen eröffnen darf.
strategy.risk.allow_entry_in(value)
Beispiel
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)
Argumente
value
(einfache Zeichenfolge) Die zulässige Richtung. Mögliche Werte:strategy.direction.all
, strategy.direction.long
, strategy.direction.short
Diese Regel dient der Bestimmung der Höchstgröße einer Marktposition und betrifft folgende Funktion:strategy.entry
. Die
strategy.risk.max_position_size(contracts)
Beispiel
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
Argumente
contracts
(simple int/float) Ein erforderlicher Parameter. Höchstzahl der Verträge/Aktien/Lotes/Einheiten in einer Position.Absoluter Wert vonnumber
istnumber
wennnumber
>= 0, oder -number
otherwise.
math.abs(number)
RückkehrDer absolute Wert vonnumber
.
Die Funktion acos gibt das Arccosinus (in Radianen) einer Zahl zurück, so dass cos ((acos(y)) = y für y im Bereich [-1, 1].
math.acos(angle)
RückkehrDer Bogenkosinus eines Wertes; der zurückgegebene Winkel liegt im Bereich [0, Pi] oder na, wenn y außerhalb des Bereichs [-1, 1] liegt.
Gibt einen pseudo-zufälligen Wert zurück. Die Funktion erzeugt eine andere Sequenz von Werten für jede Skriptdurchführung. Die Verwendung des gleichen Wertes für das optionale Seed-Argument erzeugt eine wiederholbare Sequenz.
math.random(min, max, seed)
RückkehrEin zufälliger Wert.
Argumente
min
(series int/float) Die untere Grenze des Bereichs der zufälligen Werte. Der Wert ist nicht in den Bereich aufgenommen. Der Standardwert ist 0.max
(series int/float) Die obere Grenze des Bereichs der zufälligen Werte. Der Wert ist nicht im Bereich enthalten. Der Standardwert ist 1.seed
(Input int) Optional, wenn der gleiche Seed verwendet wird, ermöglicht es aufeinanderfolgenden Aufrufen der Funktion, einen wiederholbaren Wertsatz zu erzeugen.Die Asin-Funktion gibt das Arcsinus (in Radianen) einer Zahl zurück, so dass sin ((asin(y)) = y für y im Bereich [-1, 1].
math.asin(angle)
RückkehrDas Bogenzeichen eines Wertes; der zurückgegebene Winkel liegt im Bereich [-Pi/2, Pi/2] oder na, wenn y außerhalb des Bereichs [-1, 1] liegt.
Die atan-Funktion gibt die Arctangente (in Radianen) einer Zahl zurück, so dass tan ((atan ((y)) = y für jedes y.
math.atan(angle)
RückkehrDie Bogentangente eines Wertes; der zurückgegebene Winkel liegt im Bereich [-Pi/2, Pi/2].
Die Ceiling-Funktion gibt die kleinste (negativ unendlichste) ganze Zahl zurück, die größer oder gleich dem Argument ist.
math.ceil(number)
RückkehrDie kleinste ganze Zahl kleiner oder gleich der angegebenen Zahl.
Siehe auch
math.floor
math.round
Die Cos-Funktion gibt das trigonometrische Cosinus eines Winkels zurück.
math.cos(angle)
RückkehrDas trigonometrische Kosinus eines Winkels.
Argumente
angle
(Serie int/float) Winkel in Radianen.Die Funktion exp vonnumber
ist erhoben zu der Macht dernumber
, wo e die Euler-Zahl ist.
math.exp(number)
RückkehrEin Wert, der e auf die Potenz vonnumber
.
Siehe auch
math.pow
math.floor(number)
RückkehrDie größte ganze Zahl kleiner oder gleich der angegebenen Zahl.
Siehe auch
math.ceil
math.round
Natürlicher Logarithmus einesnumber
> 0 ist das einzigartige y, so dass e^y =number
.
math.log(number)
RückkehrDer natürliche Logarithmus vonnumber
.
Siehe auch
math.log10
Der gemeinsame (oder Basis 10) Logarithmus vonnumber
ist die Potenz, auf die 10 erhöht werden muss, um dienumber
. 10 ^ y =number
.
math.log10(number)
RückkehrDer Logarithmus in der Basis 10 vonnumber
.
Siehe auch
math.log
Mathematische Leistungsfunktion.
math.pow(base, exponent)
Beispiel
// math.pow
plot(math.pow(close, 2))
Rückkehr
base
Erhöht zur Macht derexponent
Wenn.base
ist eine Reihe, wird elementar berechnet.
Argumente
base
(Serie int/float) Die zu verwendende Basis angeben.exponent
(Serie int/float) Geben Sie den Exponenten an.Siehe auch
math.sqrt
math.exp
Das Zeichen (signum) von
math.sign(number)
RückkehrDas Zeichen des Streits.
Die Sin-Funktion gibt den trigonometrischen Sinus eines Winkels zurück.
math.sin(angle)
RückkehrDer trigonometrische Sinus eines Winkels.
Argumente
angle
(Serie int/float) Winkel in Radianen.Quadratwurzel von jedemnumber
>= 0 ist das einzigartige y >= 0 so dass y^2 =number
.
math.sqrt(number)
RückkehrDie Quadratwurzel vonnumber
.
Siehe auch
math.pow
Die Tan-Funktion gibt die trigonometrische Tangente eines Winkels zurück.
math.tan(angle)
RückkehrDie trigonometrische Tangente eines Winkels.
Argumente
angle
(Serie int/float) Winkel in Radianen.Gibt den Wert vonnumber
Wenn die Anzahl der Zahlen auf die nächste ganze Zahl gerundet wird, werden die Zahlen auf die nächste ganze Zahl gerundet.precision
Wenn ein Parameter verwendet wird, wird ein auf diese Anzahl von Dezimalstellen gerundeter Floatwert zurückgegeben.
math.round(number)
math.round(number, precision)
RückkehrDer Wert vonnumber
auf die nächstgelegene ganze Zahl gerundet oder nach Präzision.
Argumente
number
(Serie int/float) Der zu abrundende Wert.precision
(Serie int) Optionales Argument.number
Wenn kein Argument angegeben wird, wird auf die nächstgelegene ganze Zahl gerundet.AnmerkungenBeachten Sie, dass für
Siehe auch
math.ceil
math.floor
Gibt den größten der mehrfachen Werte zurück.
math.max(number0, number1, ...)
Beispiel
// math.max
plot(math.max(close, open))
plot(math.max(close, math.max(open, 42)))
RückkehrDer größte von mehreren gegebenen Werten.
Siehe auch
math.min
Gibt den kleinsten von mehrfachen Werten zurück.
math.min(number0, number1, ...)
Beispiel
// math.min
plot(math.min(close, open))
plot(math.min(close, math.min(open, 42)))
RückkehrDer kleinste von mehreren gegebenen Werten.
Siehe auch
math.max
Berechnet den Durchschnitt aller gegebenen Reihen (elementweise).
math.avg(number0, number1, ...)
Rückkehr Average.
Siehe auch
math.sum
ta.cum
ta.sma
Gibt den auf das Mintick des Symbols abgerundeten Wert zurück, d. h. den nächstgelegenen Wert, der durch syminfo.mintick geteilt werden kann, ohne den Rest, wobei die Verbindungen nach oben abgerundet werden.
math.round_to_mintick(number)
RückkehrDienumber
Sie ist auf die Präzision des Ticks abgestimmt.
Argumente
number
(Serie int/float) Der zu abrundende Wert.Siehe auch
math.ceil
math.floor
Die Summe-Funktion gibt die gleitende Summe der letzten y-Werte von x zurück.
math.sum(source, length)
RückkehrSumme vonsource
fürlength
Zurück mit den Stangen.
Argumente
source
(Serie int/float) Zu verarbeitende Werte.length
(Serie int) Anzahl der Balken (Länge).Siehe auch
ta.cum
for
Gibt einen etwa gleichwertigen Winkel in Grad von einem in Radianen gemessenen Winkel zurück.
math.todegrees(radians)
RückkehrDer Winkelwert in Grad.
Argumente
radians
(Serie int/float) Winkel in Radianen.Gibt einen in Grad gemessenen Winkel in Radianen zurück.
math.toradians(degrees)
RückkehrDer Winkelwert in Radianen.
Argumente
degrees
(Serie int/float) Winkel in Grad.Für eine bestimmte Reihe ersetzt NaN-Werte durch den vorherigen nächstgelegenen Nicht-NaN-Wert.
fixnan(source)
RückkehrEine Serie ohne Lücken.
Argumente
source
(Serie int/float/bool/color)Siehe auch
na
nz
Ersetzt NaN-Werte durch Nullen (oder einen gegebenen Wert) in einer Reihe.
nz(source, replacement)
nz(source)
Beispiel
// nz
plot(nz(ta.sma(close, 100)))
RückkehrDer Wert vonsource
wenn nichtna
. Wenn der Wert vonsource
istna
, gibt Null zurück, oder diereplacement
Ein Argument, wenn man es benutzt.
Argumente
source
(Serie int/float/bool/color) Zu verarbeitende Werte.replacement
(Serie int/float/bool/color) Wert, der alle source
series.Siehe auch
na
fixnan
Testwert, wenn es sich um einen NaN handelt.
na(x)
Rückkehrwahr, wenn x keine gültige Zahl ist (x ist NaN), andernfalls falsch.
Siehe auch
fixnan
nz
Wirft den Flotwert auf int ein oder verkürzt ihn.
int(x)
RückkehrDer Wert des Arguments nach dem Casting in int.
Siehe auch
float
bool
color
string
Das kann nicht schweben.
float(x)
RückkehrDer Wert des Arguments nach dem Einlegen in Float.
Siehe auch
int
bool
color
string
Auslöst ein Warnereignis, wenn es während der Echtzeitleiste aufgerufen wird und eine Warnung basierend auf Warnfunktionsereignissen für den Indikator oder die Strategie durch das Dialogfeld
alert(message, freq)
Beispiel
// 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)
Argumente
message
Nachricht gesendet, wenn der Alarm ausgelöst wird.freq
(Eingabezeile) Auslösfrequenz. Die möglichen Werte sind: alert.freq_all (alle Funktionsanrufe lösen die Warnung aus), alert.freq_once_per_bar (der erste Funktionsanruf während der Bar löst die Warnung aus), alert.freq_once_per_bar_close (der Funktionsanruf löst die Warnung nur aus, wenn er während der letzten Skript-Iteration der Echtzeitleiste auftritt, wenn sie geschlossen wird).AnmerkungenDas Help Center erklärt, wie man solche Warnungen erstellt.
Im Gegensatz zur Alarmbedingung zählen Alarmanrufe NICHT als zusätzliche Plot.
Funktionsaufrufe können sowohl in globalen als auch in lokalen Bereichen angezeigt werden.
Funktionsaufrufe zeigen nichts auf der Tabelle an.
Das Argument
Siehe auch
alertcondition
Erstellt Alarm-Bedingung, die im Alert-Dialog erhältlich ist. Bitte beachten Sie, dass die Alarm-Bedingung keine Alarm erstellt, sondern Ihnen nur mehr Optionen im Alert-Dialog eröffnet.
alertcondition(condition, title, message)
Beispiel
// alertcondition
alertcondition(close >= open, title='Alert on Green Bar', message='Green Bar!')
Argumente
condition
(Serie bool) Reihe von Boolean-Werten, die für Alarm verwendet werden.title
(Const string) Titel der Alarmbedingung.message
(Const-String) Nachricht, die angezeigt werden soll, wenn Alarm ausgelöst wird.AnmerkungenBitte beachten Sie, dass in Pine Script v4/v5 ein Alarmcondition-Aufruf ein zusätzliches Plot erzeugt. Alle solche Aufrufe werden berücksichtigt, wenn wir die Anzahl der Ausgabe-Reihen pro Skript berechnen.
Siehe auch
alert
Um mit demTrading View
Strategie-Code, es ist nicht wirklich erforderlich, aufgerufen werden.
Siehe auch
strategy
Die Zeitfunktion gibt die UNIX-Zeit der aktuellen Leiste für den angegebenen Zeitrahmen und die Sitzung oder NaN zurück, wenn der Zeitpunkt außerhalb der Sitzung ist.session
arguments.
time(timeframe, session, timezone)
time(timeframe, session)
time(timeframe)
Beispiel
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"))
Bei der Einrichtung einer Sitzung können Sie nicht nur die Stunden und Minuten, sondern auch die Tage der Woche angeben, die in diese Sitzung einbezogen werden.
Wenn die Tage nicht angegeben sind, gilt die Sitzung als von Sonntag (1) bis Samstag (7) festgelegt, d. h.
Beispiel
// Time
t1 = time(timeframe.period, "0000-0000:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
Einersession
Das Argument kann mehrere verschiedene Sitzungen umfassen, die durch Kommas getrennt sind. Zum Beispiel wird das folgende Skript die Balken von 10:00 bis 11:00 und von 14:00 bis 15:00 (nur an Werktagen) hervorheben:
Beispiel
// Time
t1 = time(timeframe.period, "1000-1100,1400-1500:23456")
bgcolor(t1 ? color.new(color.blue, 90) : na)
RückkehrUNIX Zeit.
Argumente
timeframe
(einfache Zeichenfolge) Zeitrahmen. Eine leere Zeichenfolge wird als der aktuelle Zeitrahmen des Diagramms interpretiert.session
timezone
(einfache Zeichenfolge) Zeitzone dersession
Die Angabe von AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC am 1. Januar 1970 vergangen sind.
year(time)
year(time, timezone)
RückkehrJahr (in der Austauschzeitzone) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) UNIX-Zeit in Millisekunden.timezone
Ein optionales Argument, Zeitzone.AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind. Beachten Sie, dass diese Funktion das Jahr zurückgibt, basierend auf der Zeit, zu der die Bar öffnet ist. Für Übernachtungsgespräche (z. B. EURUSD, bei denen die Montagssitzung am Sonntag, 17:00 UTC-4 beginnt) kann dieser Wert um 1 niedriger sein als das Jahr des Handelstages.
Siehe auch
year
time
month
dayofmonth
dayofweek
hour
minute
second
month(time)
month(time, timezone)
RückkehrMonat (in der Austauschzeitzone) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) UNIX-Zeit in Millisekunden.timezone
Ein optionales Argument, Zeitzone.AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind. Beachten Sie, dass diese Funktion den Monat basierend auf der Zeit, in der die Bars geöffnet sind, zurückgibt. Für Übernachtungen (z. B. EURUSD, bei denen die Montagssitzung am Sonntag, 17:00 UTC-4 beginnt) kann dieser Wert um 1 niedriger sein als der Monat des Handelstages.
Siehe auch
month
time
year
dayofmonth
dayofweek
hour
minute
second
hour(time)
hour(time, timezone)
RückkehrStunde (in der Zeitzone des Austauschs) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) UNIX-Zeit in Millisekunden.timezone
(Serienstring) Ein optionales Parameter.AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind.
Siehe auch
hour
time
year
month
dayofmonth
dayofweek
minute
second
minute(time)
minute(time, timezone)
RückkehrMinute (in Austauschzeitzone) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) UNIX-Zeit in Millisekunden.timezone
Ein optionales Argument, Zeitzone.AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind.
Siehe auch
minute
time
year
month
dayofmonth
dayofweek
hour
second
second(time)
second(time, timezone)
RückkehrSekunde (in Austauschzeitzone) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) UNIX-Zeit in Millisekunden.timezone
(Serienstring) Ein optionales Parameter.AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind.
Siehe auch
second
time
year
month
dayofmonth
dayofweek
hour
minute
weekofyear(time)
weekofyear(time, timezone)
RückkehrWoche des Jahres (in der Austauschzeitzone) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) UNIX-Zeit in Millisekunden.timezone
(Serienstring) Ein optionales Parameter.AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind. Beachten Sie, dass diese Funktion die Woche zurückgibt, die auf der Zeit der Öffnung der Bar basiert. Für Übernachtungsgespräche (z. B. EURUSD, bei der die Montagssitzung am Sonntag, 17:00 Uhr, beginnt) kann dieser Wert um 1 niedriger sein als die Woche des Handelstages.
Siehe auch
weekofyear
time
year
month
dayofmonth
dayofweek
hour
minute
second
dayofweek(time)
dayofweek(time, timezone)
RückkehrTag der Woche (in der Austauschzeitzone) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) UNIX-Zeit in Millisekunden.timezone
(Serienstring) Ein optionales Parameter.AnmerkungenBeachten Sie, dass diese Funktion den Tag basierend auf der Öffnungszeit der Bar zurückgibt. Für Übernacht-Sitzungen (z. B. EURUSD, bei denen die Montagssitzung am Sonntag, 17:00 Uhr, beginnt) kann dieser Wert um 1 niedriger sein als der Tag des Handelstages. UNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind.
Siehe auch
time
dayofmonth
dayofmonth(time)
dayofmonth(time, timezone)
RückkehrTag des Monats (in der Austauschzeitzone) für die angegebene UNIX-Zeit.
Argumente
time
(Serie int) Unix-Zeit in Millisekunden.timezone
(Serienstring) Ein optionales Parameter.AnmerkungenUNIX-Zeit ist die Anzahl der Millisekunden, die seit 00:00:00 UTC, 1. Januar 1970 vergangen sind. Beachten Sie, dass diese Funktion den Tag basierend auf der Uhrzeit der Öffnungszeiten zurückgibt. Für Übernacht-Sitzungen (z. B. EURUSD, bei denen die Montagssitzung am Sonntag, 17:00 UTC-4 beginnt) kann dieser Wert um 1 niedriger sein als der Tag des Handelstages.
Siehe auch
time
dayofweek
Die Funktion Timestamp gibt UNIX-Zeit des angegebenen Datums und der angegebenen Zeit zurück.
timestamp(dateString)
timestamp(year, month, day, hour, minute, second)
timestamp(timezone, year, month, day, hour, minute, second)
Beispiel
// 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"))
Die BettlerWarum kann die Strategie der Quadrat-Kopie die Strategie der Pine nicht realisieren?
Die Erfinder quantifizieren - Kleine TräumeDas ist eine sehr schlechte Idee.
Die BettlerDer Optimierte Trend-Tracker von Zhang Ziyi
Die Erfinder quantifizieren - Kleine TräumeHallo, was ist die Strategie?