M

#### Max911

##### New member

Also I don't know, if that script bug doesn't count the trade of the last 'exit bar' or the trade of new 'entry bar'.

def nan = Double.NaN;

def bn = if !IsNaN(close) and !IsNaN(close[1]) and !IsNaN(close[-1]) then BarNumber() else bn[1];

def entry = EntryPrice();

def entryPrice = if !IsNaN(entry) then entry else entryPrice[1];

def hasEntry = !IsNaN(entry);

def isNewEntry = entryPrice != entryPrice[1];

def highFPL = HighestAll(FPL);

def lowFPL = LowestAll(FPL);

def entryBarsTemp = if hasEntry then bn else nan;

def entryBarNum = if hasEntry and isNewEntry then bn else entryBarNum[1];

def isEntryBar = entryBarNum != entryBarNum[1];

def entryBarPL = if isEntryBar then FPL else entryBarPL[1];

def exitBarsTemp = if !hasEntry and bn > entryBarsTemp[1] then bn else nan;

def exitBarNum = if !hasEntry and !IsNaN(exitBarsTemp[1]) then bn else exitBarNum[1];

def isExitBar = exitBarNum != exitBarNum[1];

def exitBarPL = if isExitBar then FPL else exitBarPL[1];

def entryReturn = if isExitBar then exitBarPL - exitBarPL[1] else entryReturn[1];

def isWin = if isExitBar and entryReturn >= 0 then 1 else 0;

def isLoss = if isExitBar and entryReturn < 0 then 1 else 0;

def entryReturnWin = if isWin then entryReturn else entryReturnWin[1];

def entryReturnLoss = if isLoss then entryReturn else entryReturnLoss[1];

def entryFPLWins = if isWin then entryReturn else 0;

def entryFPLLosses = if isLoss then entryReturn else 0;

def entryFPLAll = if isLoss or isWin then entryReturn else 0;