class Jiji::Model::Trading::Brokers::AbstractBroker

Attributes

account[R]

口座情報

Public Instance Methods

cancel_order(order) click to toggle source

注文をキャンセルします。

order

注文

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 93
def cancel_order(order)
  result = securities.cancel_order(order.internal_id)
  @orders_is_dirty = true
  result
end
close_position(position) click to toggle source

建玉を決済します。

position

建玉

戻り値

ClosedPosition

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 112
def close_position(position)
  result = securities.close_trade(position.internal_id)
  @positions.apply_close_result(result)
  @positions_is_dirty = true
  ClosedPosition.new(result.internal_id,
    position.units, result.price, result.timestamp, result.profit_or_loss)
end
load_positions() click to toggle source

建玉情報を更新します。

証券会社へのアクセスを削減するため、建玉情報は1分間キャッシュされます。 最新の情報を参照したい場合、このAPIを呼び出しください。

戻り値

Positions

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 145
def load_positions
  positions = securities.retrieve_trades
  @positions.update(positions)
  @positions.update_price(tick, pairs)
  @positions_is_dirty = false
  @positions.each { |p| p.attach_broker(self) }
  @positions
end
modify_order(order) click to toggle source

注文の変更を反映します。

order

注文

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 85
def modify_order(order)
  securities.modify_order(
    order.internal_id, order.extract_options_for_modify)
  order
end
modify_position(position) click to toggle source

建玉の変更を反映します。

position

建玉

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 101
def modify_position(position)
  securities.modify_trade(
    position.internal_id,
    position.closing_policy.extract_options_for_modify)
  position.save
  position
end
orders() click to toggle source

注文一覧を取得します

戻り値

Order の配列

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 67
def orders
  return @orders if !@orders_is_dirty && @orders

  load_orders
end
pairs() click to toggle source

通貨ペアの一覧を取得します

戻り値

Pair の配列

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 22
def pairs
  @pairs_cache ||= securities.retrieve_pairs
end
positions() click to toggle source

建玉一覧を取得します

戻り値

Positions

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 58
def positions
  return @positions unless @positions_is_dirty

  load_positions
end
refresh_account() click to toggle source

for internal use.

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 137
def refresh_account; end
retrieve_rates(pair_name, interval, start_time, end_time) click to toggle source

指定した期間、通貨ペアのレート情報(4本値 + 出来高)を取得します。 一度に最大5000件のデータを取得できます。

pair_name

取得対象の通貨ペア名 例) :USDJPY, :EURJPY

interval

レートを集計する期間。以下のいずれかを指定できます。

  • :fifteen_seconds .. 15秒足

  • :one_minute .. 分足

  • :fifteen_minutes .. 15分足

  • :thirty_minutes .. 30分足

  • :one_hour .. 1時間足

  • :six_hours .. 6時間足

  • :one_day .. 日足

start_time

取得開始日時。 Time 型で指定します。

end_time

取得終了日時。 Time 型で指定します。

戻り値

Rate の配列

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 49
def retrieve_rates(pair_name,
  interval, start_time, end_time)
  securities.retrieve_rate_history(pair_name,
    interval, start_time, end_time)
end
tick() click to toggle source

現在のレートを取得します

戻り値

Tick

# File src/jiji/model/trading/brokers/abstract_broker.rb, line 29
def tick
  @rates_cache ||= securities.retrieve_current_tick
end