Class: Qc::Backtest

Inherits:
Struct
  • Object
show all
Defined in:
lib/qc/backtest.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#completedObject

Returns the value of attribute completed

Returns:

  • (Object)

    the current value of completed



2
3
4
# File 'lib/qc/backtest.rb', line 2

def completed
  @completed
end

#idObject

Returns the value of attribute id

Returns:

  • (Object)

    the current value of id



2
3
4
# File 'lib/qc/backtest.rb', line 2

def id
  @id
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



2
3
4
# File 'lib/qc/backtest.rb', line 2

def name
  @name
end

#progressObject

Returns the value of attribute progress

Returns:

  • (Object)

    the current value of progress



2
3
4
# File 'lib/qc/backtest.rb', line 2

def progress
  @progress
end

#resultObject

Returns the value of attribute result

Returns:

  • (Object)

    the current value of result



2
3
4
# File 'lib/qc/backtest.rb', line 2

def result
  @result
end

#successObject Also known as: success?

Returns the value of attribute success

Returns:

  • (Object)

    the current value of success



2
3
4
# File 'lib/qc/backtest.rb', line 2

def success
  @success
end

Instance Method Details

#completed?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/qc/backtest.rb', line 13

def completed?
  completed && (error? || (success? && result && result['TotalPerformance']))
end

#error?Boolean

Returns:

  • (Boolean)


5
6
7
# File 'lib/qc/backtest.rb', line 5

def error?
  !success?
end

#started?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/qc/backtest.rb', line 9

def started?
  progress > 0
end

#to_sObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/qc/backtest.rb', line 17

def to_s
  description = "Backtest #{id}"
  return "Backtest #{id} (not finished)" unless completed?
  statistics = result['TotalPerformance']['PortfolioStatistics']
  max_length = statistics.collect {|key, value| key.length}.max

  description << "\n\n"
  statistics.each do |key, value|
    formatted_key = "#{key}: #{' ' * (max_length - key.length)}"
    description << "#{formatted_key}#{value}\n"
  end

  description
end