Okay, there are two things I can't seem to do.
I need to calculate the time between all trades of the strategy (from each individual trade's entry to exit), then out of all of these, average them. Then, convert that output to minutes. Let's call it AverageTradeDurationTime =
Next, similarly, calculate the time between the trades inactive period: Aka, when the trade was "flat" and there weren't any trades going on. Average all of them together, to get an average amount, in days, between all trades. The average. So let's call it TotalDaysBetweenAveraged =
How?
So, from arrays, to i loops, to persistent vars .... nothing I am doing is working here.
FirstTradeTime = strategy.opentrades.entry_time(0)
LastTradeTime = strategy.closedtrades.exit_time(99999) //What do I even put here?
DaysElapsed = (LastTradeTime - FirstTradeTime) / 86400000
DaysConvertedToWholeNumber = math.round((DaysElapsed / 86400000), 2)
plot(DaysConvertedToWholeNumber, "Total Days Between First And Last Trades", color=color.purple)
LastTradeTimeClose = strategy.closedtrades.exit_time(99999) //What do I even put here?
NextTradeTimeEntry = strategy.opentrades.entry_time(0)
DaysBetween = (LastTradeTime - FirstTradeTime) / 86400000
var TotalDaysBetween = 0
if DaysBetween > 0
TotalDaysBetween := +1
TotalDaysBetweenAveraged = (TotalDaysBetween / DaysBetween)
DaysBetweenConvertedToWholeNumber = math.round((TotalDaysBetweenAveraged / 86400000), 2)
plot(TotalDaysBetweenAveraged, "Total Days Between Trades", color=color.purple)
Here is a piece of code I use to do this :
MeanDuratinOfATrade_m is the average duration of the closed trades.
MeanDurationBetweenTrade_m is the average duration between the closed trades : if there are 2 trades, it is the unique duration between the end of the first closed trade and the beginning of the ast closed trade.
var Affichage = table.new(position=position.top_right, columns=3, rows=25, border_color = color.black, border_width = 1)
if barstate.isrealtime
// Mean duration of trades
DurationInTrade_ms = 0
MeanDuratinOfATrade_m = 0.0
MeanDurationBetweenTrade_m = 0.0
if strategy.closedtrades > 0
for i = 0 to strategy.closedtrades - 1
DurationInTrade_ms := DurationInTrade_ms + strategy.closedtrades.exit_time(i) - strategy.closedtrades.entry_time(i) // Duration in milliseconds (from UNIX time)
MeanDuratinOfATrade_m := (DurationInTrade_ms / strategy.closedtrades) / 1000 / 60
// Mean duration between trades
if strategy.closedtrades > 1
TotalTimeBetweenFirstAndLastTrade_ms = strategy.closedtrades.exit_time(strategy.closedtrades-1) - strategy.closedtrades.entry_time(0)
MeanDurationBetweenTrade_m := (TotalTimeBetweenFirstAndLastTrade_ms - DurationInTrade_ms)/(strategy.closedtrades -1) / 1000 / 60
// Affichage
table.cell(Affichage, 0, 0, "Duration of a trade [m]")
table.cell(Affichage, 1, 0, str.tostring(MeanDuratinOfATrade_m, "#.##"))
table.cell(Affichage, 0, 1, "Duration Betweentrade [m]")
table.cell(Affichage, 1, 1, str.tostring(MeanDurationBetweenTrade_m, "#.##"))