Max Draw Down Report (multiple positions)
stableDescription
Add this code to your existing script to report max draw down of positions after a back test completes. You will have to supply the trading code and save the position IDs after you open positions.
HaasScript
local maxDrawDownAmount = Load('maxDrawDownAmount', 0)
local maxDrawDownPercent = Load('maxDrawDownPercent', 0)
local longPositionId = Load('longPositionId', '')
local shortPositionId = Load('shortPositionId', '')
local longContainer = PositionContainer(longPositionId)
local shortContainer = PositionContainer(shortPositionId)
function CheckMaxDrawDown()
if longPositionId == '' and shortPositionId == '' then
return
end
local longDrawDownAmount = 0
local longDrawDownPercent = 0
local shortDrawDownAmount = 0
local shortDrawDownPercent = 0
if longPositionId != '' then
longDrawDownAmount = longContainer.profit
longDrawDownPercent = longContainer.roi
end
if shortPositionId != '' then
shortDrawDownAmount = shortContainer.profit
shortDrawDownPercent = shortContainer.roi
end
maxDrawDownAmount = ArrayGet(Min(maxDrawDownAmount, longDrawDownAmount, shortDrawDownAmount), 1)
maxDrawDownPercent = ArrayGet(Min(maxDrawDownPercent, longDrawDownPercent, shortDrawDownPercent), 1)
Save('maxDrawDownAmount', maxDrawDownAmount)
Save('maxDrawDownPercent', maxDrawDownPercent)
end
CheckMaxDrawDown()
Finalize(function()
CustomReport('Max. Draw Down Amount', maxDrawDownAmount..' '..QuoteCurrency(), 'Draw Down Report')
CustomReport('Max. Draw Down Percent', maxDrawDownPercent..' %', 'Draw Down Report')
end)
1 Comment
Sign in to leave a comment.
Draw Down was an inaccurate term for this. Please use the new one here: https://www.haasscripts.com/t/max-risk-point-report-multiple-positions/