class Cross
交差状態を判定するユーティリティ¶ ↑
先行指標と遅行指標を受け取って、クロスアップ/クロスダウンを判定するユーティリティです。
require 'cross' cross = Cross.new # 先行指標、遅行指標を受け取って状態を返す。 # :cross .. クロスアップ、クロスダウン状態かどうかを返す。 # - クロスアップ(:up) # - クロスダウン(:down) # - どちらでもない(:none) # :trend .. 現在の指標が上向きか下向きかを返す。 # 「先行指標 <=> 遅行指標」した値。 # trend >= 1なら上向き、trned <= -1なら下向き p cross.next_data( 100, 90 ) # {:trend=>1, :cross=>:none} p cross.next_data( 110, 100 ) # {:trend=>1, :cross=>:none} p cross.next_data( 100, 100 ) # {:trend=>0, :cross=>:none} p cross.next_data( 90, 100 ) # {:trend=>-1, :cross=>:down} p cross.next_data( 80, 90 ) # {:trend=>-1, :cross=>:none} p cross.next_data( 90, 90 ) # {:trend=>0, :cross=>:none} p cross.next_data( 100, 100 ) # {:trend=>0, :cross=>:none} p cross.next_data( 110, 100 ) # {:trend=>1, :cross=>:up}
Attributes
cross[R]
交差状態( :up, :down, :none )
trend[R]
トレンド ( 直近の falst <=> lazy 値。)
Public Class Methods
new()
click to toggle source
コンストラクタ
# File src/jiji/model/agents/builtin_files/cross.rb, line 30 def initialize @cross_prev = nil @cross = :none @trend = 0 end
Public Instance Methods
cross_down?()
click to toggle source
クロスダウン状態かどうか判定します。
- 戻り値
-
「先行指標 > 遅行指標」 から 「先行指標 < 遅行指標」 になったらtrue
# File src/jiji/model/agents/builtin_files/cross.rb, line 55 def cross_down? @cross == :down end
cross_up?()
click to toggle source
クロスアップ状態かどうか判定します。
- 戻り値
-
「先行指標 < 遅行指標」 から 「先行指標 > 遅行指標」 になったらtrue
# File src/jiji/model/agents/builtin_files/cross.rb, line 49 def cross_up? @cross == :up end
down?()
click to toggle source
下降トレンド中かどうか判定します。
- 戻り値
-
「先行指標 < 遅行指標」 ならtrue
# File src/jiji/model/agents/builtin_files/cross.rb, line 67 def down? @trend < 0 end
next_data(fast, lazy)
click to toggle source
次の値を渡し、状態を更新します。
- fast
-
先行指標
- lazy
-
遅行指標
# File src/jiji/model/agents/builtin_files/cross.rb, line 39 def next_data(fast, lazy) return unless fast && lazy # 交差状態を算出 calculate_state(fast, lazy) { cross: @cross, trend: @trend } end
up?()
click to toggle source
上昇トレンド中かどうか判定します。
- 戻り値
-
「先行指標 > 遅行指標」 ならtrue
# File src/jiji/model/agents/builtin_files/cross.rb, line 61 def up? @trend > 0 end